diff --git a/.changes/1.34.126.json b/.changes/1.34.126.json new file mode 100644 index 0000000000..f2f6b12bad --- /dev/null +++ b/.changes/1.34.126.json @@ -0,0 +1,27 @@ +[ + { + "category": "``cloudhsmv2``", + "description": "Added support for hsm type hsm2m.medium. Added supported for creating a cluster in FIPS or NON_FIPS mode.", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "This release adds support for configuration of evaluation method for composite rules in Glue Data Quality rulesets.", + "type": "api-change" + }, + { + "category": "``iotwireless``", + "description": "Add RoamingDeviceSNR and RoamingDeviceRSSI to Customer Metrics.", + "type": "api-change" + }, + { + "category": "``kms``", + "description": "This feature allows customers to use their keys stored in KMS to derive a shared secret which can then be used to establish a secured channel for communication, provide proof of possession, or establish trust with other parties.", + "type": "api-change" + }, + { + "category": "``mediapackagev2``", + "description": "This release adds support for CMAF ingest (DASH-IF live media ingest protocol interface 1)", + "type": "api-change" + } +] \ No newline at end of file diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8117a1fa68..0daec7bd45 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,16 @@ CHANGELOG ========= +1.34.126 +======== + +* api-change:``cloudhsmv2``: Added support for hsm type hsm2m.medium. Added supported for creating a cluster in FIPS or NON_FIPS mode. +* api-change:``glue``: This release adds support for configuration of evaluation method for composite rules in Glue Data Quality rulesets. +* api-change:``iotwireless``: Add RoamingDeviceSNR and RoamingDeviceRSSI to Customer Metrics. +* api-change:``kms``: This feature allows customers to use their keys stored in KMS to derive a shared secret which can then be used to establish a secured channel for communication, provide proof of possession, or establish trust with other parties. +* api-change:``mediapackagev2``: This release adds support for CMAF ingest (DASH-IF live media ingest protocol interface 1) + + 1.34.125 ======== diff --git a/botocore/__init__.py b/botocore/__init__.py index 561cf471af..d4f4c78a56 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.34.125' +__version__ = '1.34.126' class NullHandler(logging.Handler): diff --git a/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json b/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json index e866a7977e..84e75cdaf0 100644 --- a/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json +++ b/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -351,9 +349,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/botocore/data/cloudhsmv2/2017-04-28/service-2.json b/botocore/data/cloudhsmv2/2017-04-28/service-2.json index 02c5960077..5bd69c0423 100644 --- a/botocore/data/cloudhsmv2/2017-04-28/service-2.json +++ b/botocore/data/cloudhsmv2/2017-04-28/service-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"cloudhsmv2", "jsonVersion":"1.1", "protocol":"json", + "protocols":["json"], "serviceAbbreviation":"CloudHSM V2", "serviceFullName":"AWS CloudHSM V2", "serviceId":"CloudHSM V2", @@ -325,6 +326,14 @@ "TagList":{ "shape":"TagList", "documentation":"

The list of tags for the backup.

" + }, + "HsmType":{ + "shape":"HsmType", + "documentation":"

The HSM type of the cluster that was backed up.

" + }, + "Mode":{ + "shape":"ClusterMode", + "documentation":"

The mode of the cluster that was backed up.

" } }, "documentation":"

Contains information about a backup of an AWS CloudHSM cluster. All backup objects contain the BackupId, BackupState, ClusterId, and CreateTimestamp parameters. Backups that were copied into a destination region additionally contain the CopyTimestamp, SourceBackup, SourceCluster, and SourceRegion parameters. A backup that is pending deletion will include the DeleteTimestamp parameter.

" @@ -382,7 +391,7 @@ "Boolean":{"type":"boolean"}, "Cert":{ "type":"string", - "max":5000, + "max":20000, "pattern":"[a-zA-Z0-9+-/=\\s]*" }, "Certificates":{ @@ -522,6 +531,10 @@ "TagList":{ "shape":"TagList", "documentation":"

The list of tags for the cluster.

" + }, + "Mode":{ + "shape":"ClusterMode", + "documentation":"

The mode of the cluster.

" } }, "documentation":"

Contains information about an AWS CloudHSM cluster.

" @@ -530,6 +543,13 @@ "type":"string", "pattern":"cluster-[2-7a-zA-Z]{11,16}" }, + "ClusterMode":{ + "type":"string", + "enum":[ + "FIPS", + "NON_FIPS" + ] + }, "ClusterState":{ "type":"string", "enum":[ @@ -596,7 +616,7 @@ }, "HsmType":{ "shape":"HsmType", - "documentation":"

The type of HSM to use in the cluster. Currently the only allowed value is hsm1.medium.

" + "documentation":"

The type of HSM to use in the cluster. The allowed values are hsm1.medium and hsm2m.medium.

" }, "SourceBackupId":{ "shape":"BackupId", @@ -609,6 +629,10 @@ "TagList":{ "shape":"TagList", "documentation":"

Tags to apply to the CloudHSM cluster during creation.

" + }, + "Mode":{ + "shape":"ClusterMode", + "documentation":"

The mode to use in the cluster. The allowed values are FIPS and NON_FIPS.

" } } }, @@ -826,7 +850,8 @@ "Filters":{ "type":"map", "key":{"shape":"Field"}, - "value":{"shape":"Strings"} + "value":{"shape":"Strings"}, + "max":30 }, "Hsm":{ "type":"structure", @@ -883,7 +908,8 @@ }, "HsmType":{ "type":"string", - "pattern":"(hsm1\\.medium)" + "max":32, + "pattern":"((p|)hsm[0-9][a-z.]*\\.[a-zA-Z]+)" }, "Hsms":{ "type":"list", diff --git a/botocore/data/glue/2017-03-31/service-2.json b/botocore/data/glue/2017-03-31/service-2.json index 3d9c0c27f8..aeec98bcb6 100644 --- a/botocore/data/glue/2017-03-31/service-2.json +++ b/botocore/data/glue/2017-03-31/service-2.json @@ -8393,6 +8393,13 @@ "key":{"shape":"AdditionalOptionKeys"}, "value":{"shape":"GenericString"} }, + "DQCompositeRuleEvaluationMethod":{ + "type":"string", + "enum":[ + "COLUMN", + "ROW" + ] + }, "DQDLAliases":{ "type":"map", "key":{"shape":"NodeName"}, @@ -8533,6 +8540,10 @@ "ResultsS3Prefix":{ "shape":"UriString", "documentation":"

Prefix for Amazon S3 to store results.

" + }, + "CompositeRuleEvaluationMethod":{ + "shape":"DQCompositeRuleEvaluationMethod", + "documentation":"

Set the evaluation method for composite rules in the ruleset to ROW/COLUMN

" } }, "documentation":"

Additional run options you can specify for an evaluation run.

" @@ -11570,7 +11581,7 @@ }, "RulesetNames":{ "shape":"RulesetNames", - "documentation":"

A list of ruleset names for the run.

" + "documentation":"

A list of ruleset names for the run. Currently, this parameter takes only one Ruleset name.

" }, "ResultIds":{ "shape":"DataQualityResultIdList", diff --git a/botocore/data/iotwireless/2020-11-22/service-2.json b/botocore/data/iotwireless/2020-11-22/service-2.json index abb9ee7f49..43ad9c1702 100644 --- a/botocore/data/iotwireless/2020-11-22/service-2.json +++ b/botocore/data/iotwireless/2020-11-22/service-2.json @@ -9,7 +9,8 @@ "serviceId":"IoT Wireless", "signatureVersion":"v4", "signingName":"iotwireless", - "uid":"iotwireless-2020-11-22" + "uid":"iotwireless-2020-11-22", + "auth":["aws.auth#sigv4"] }, "operations":{ "AssociateAwsAccountWithPartnerAccount":{ @@ -6632,6 +6633,8 @@ "enum":[ "DeviceRSSI", "DeviceSNR", + "DeviceRoamingRSSI", + "DeviceRoamingSNR", "DeviceUplinkCount", "DeviceDownlinkCount", "DeviceUplinkLostCount", diff --git a/botocore/data/kms/2014-11-01/service-2.json b/botocore/data/kms/2014-11-01/service-2.json index ff0997a021..8e4c88b3ee 100644 --- a/botocore/data/kms/2014-11-01/service-2.json +++ b/botocore/data/kms/2014-11-01/service-2.json @@ -11,7 +11,8 @@ "serviceId":"KMS", "signatureVersion":"v4", "targetPrefix":"TrentService", - "uid":"kms-2014-11-01" + "uid":"kms-2014-11-01", + "auth":["aws.auth#sigv4"] }, "operations":{ "CancelKeyDeletion":{ @@ -139,7 +140,7 @@ {"shape":"XksKeyAlreadyInUseException"}, {"shape":"XksKeyNotFoundException"} ], - "documentation":"

Creates a unique customer managed KMS key 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. For details, see Managing keys in the Key Management Service Developer Guide

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.

KMS has replaced the term customer master key (CMK) with KMS 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, 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. KMS keys with RSA or SM2 key pairs can be used to encrypt or decrypt data or sign and verify messages (but not both). KMS keys with ECC key pairs can be used only to sign and verify messages. For information about asymmetric KMS keys, see Asymmetric KMS keys 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
Imported key material

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 in the Key Management Service Developer Guide.

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 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 into multi-Region keys. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

Custom key store

A custom key store 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 backed by an CloudHSM cluster and external key stores 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.

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, 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, use the Origin parameter with a value of EXTERNAL_KEY_STORE and an XksKeyId parameter that identifies an existing external key.

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 (IAM policy). To use the Tags parameter, kms:TagResource (IAM policy). For examples and information about related permissions, see Allow a user to create KMS keys in the Key Management Service Developer Guide.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

Creates a unique customer managed KMS key 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. For details, see Managing keys in the Key Management Service Developer Guide

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.

KMS has replaced the term customer master key (CMK) with KMS 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, 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-recommended 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 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 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
Imported key material

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 in the Key Management Service Developer Guide.

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 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 into multi-Region keys. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

Custom key store

A custom key store 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 backed by an CloudHSM cluster and external key stores 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.

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, 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, use the Origin parameter with a value of EXTERNAL_KEY_STORE and an XksKeyId parameter that identifies an existing external key.

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 (IAM policy). To use the Tags parameter, kms:TagResource (IAM policy). For examples and information about related permissions, see Allow a user to create KMS keys in the Key Management Service Developer Guide.

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "Decrypt":{ "name":"Decrypt", @@ -212,6 +213,27 @@ ], "documentation":"

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 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.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys 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 (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, + "DeriveSharedSecret":{ + "name":"DeriveSharedSecret", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeriveSharedSecretRequest"}, + "output":{"shape":"DeriveSharedSecretResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"DisabledException"}, + {"shape":"KeyUnavailableException"}, + {"shape":"DependencyTimeoutException"}, + {"shape":"InvalidGrantTokenException"}, + {"shape":"InvalidKeyUsageException"}, + {"shape":"KMSInternalException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"DryRunOperationException"} + ], + "documentation":"

Derives a shared secret using a key agreement algorithm.

You must use an asymmetric NIST-recommended 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 (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 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-recommended 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-recommended 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.

    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-recommended elliptic curve or SM2 (China Regions only) KMS key pair, and the public key from your peer's NIST-recommended 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 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 (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + }, "DescribeCustomKeyStores":{ "name":"DescribeCustomKeyStores", "http":{ @@ -522,7 +544,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

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, an advanced feature that lets you generate and import the cryptographic key material for a KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

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 of any supported type. However, you can't import key material into a KMS key in a custom key store. You can also use GetParametersForImport to get a public key and import token to reimport the original 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 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:

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 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 (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

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, an advanced feature that lets you generate and import the cryptographic key material for a KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

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 of any supported type. However, you can't import key material into a KMS key in a custom key store. You can also use GetParametersForImport to get a public key and import token to reimport the original 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 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:

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 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 (key policy)

Related operations:

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "GetPublicKey":{ "name":"GetPublicKey", @@ -544,7 +566,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

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 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:

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.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys 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 (key policy)

Related operations: CreateKey

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" + "documentation":"

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 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:

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.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys 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 (key policy)

Related operations: CreateKey

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

" }, "ImportKeyMaterial":{ "name":"ImportKeyMaterial", @@ -1336,7 +1358,7 @@ }, "KeyUsage":{ "shape":"KeyUsageType", - "documentation":"

Determines the 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 value after the KMS key is created.

Select only one valid value.

" + "documentation":"

Determines the 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 value after the KMS key is created.

Select only one valid value.

" }, "CustomerMasterKeySpec":{ "shape":"CustomerMasterKeySpec", @@ -1346,7 +1368,7 @@ }, "KeySpec":{ "shape":"KeySpec", - "documentation":"

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 help choosing a key spec for your KMS key, see Choosing a KMS key type 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, kms:MacAlgorithm or kms:Signing Algorithm in the Key Management Service Developer Guide .

Amazon Web Services services that are integrated with KMS 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:

" + "documentation":"

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 help choosing a key spec for your KMS key, see Choosing a KMS key type 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, kms:MacAlgorithm or kms:Signing Algorithm in the Key Management Service Developer Guide .

Amazon Web Services services that are integrated with KMS 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:

" }, "Origin":{ "shape":"OriginType", @@ -1618,6 +1640,65 @@ "exception":true, "fault":true }, + "DeriveSharedSecretRequest":{ + "type":"structure", + "required":[ + "KeyId", + "KeyAgreementAlgorithm", + "PublicKey" + ], + "members":{ + "KeyId":{ + "shape":"KeyIdType", + "documentation":"

Identifies an asymmetric NIST-recommended 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:

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.

" + }, + "KeyAgreementAlgorithm":{ + "shape":"KeyAgreementAlgorithmSpec", + "documentation":"

Specifies the key agreement algorithm used to derive the shared secret. The only valid value is ECDH.

" + }, + "PublicKey":{ + "shape":"PublicKeyType", + "documentation":"

Specifies the public key in your peer's NIST-recommended 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.

GetPublicKey returns the public key of an asymmetric KMS key pair in the required DER-encoded format.

If you use Amazon Web Services CLI version 1, 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://<path-to-file>) or in-line using a Base64 encoded string.

" + }, + "GrantTokens":{ + "shape":"GrantTokenList", + "documentation":"

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 and Using a grant token in the Key Management Service Developer Guide.

" + }, + "DryRun":{ + "shape":"NullableBooleanType", + "documentation":"

Checks if your request will succeed. DryRun is an optional parameter.

To learn more about how to use this parameter, see Testing your KMS API calls in the Key Management Service Developer Guide.

" + }, + "Recipient":{ + "shape":"RecipientInfo", + "documentation":"

A signed attestation document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256.

This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web Services Nitro Enclaves, use the Amazon Web Services Nitro Enclaves SDK to generate the attestation document and then use the Recipient parameter from any Amazon Web Services SDK to provide the attestation document for the enclave.

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 enclave. 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, see How Amazon Web Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide.

" + } + } + }, + "DeriveSharedSecretResponse":{ + "type":"structure", + "members":{ + "KeyId":{ + "shape":"KeyIdType", + "documentation":"

Identifies the KMS key used to derive the shared secret.

" + }, + "SharedSecret":{ + "shape":"PlaintextType", + "documentation":"

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.

" + }, + "CiphertextForRecipient":{ + "shape":"CiphertextType", + "documentation":"

The plaintext shared secret encrypted with the public key in the attestation document.

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. For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see How Amazon Web Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide.

" + }, + "KeyAgreementAlgorithm":{ + "shape":"KeyAgreementAlgorithmSpec", + "documentation":"

Identifies the key agreement algorithm used to derive the shared secret.

" + }, + "KeyOrigin":{ + "shape":"OriginType", + "documentation":"

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.

" + } + } + }, "DescribeCustomKeyStoresRequest":{ "type":"structure", "members":{ @@ -1870,7 +1951,7 @@ }, "Recipient":{ "shape":"RecipientInfo", - "documentation":"

A signed attestation document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256.

This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this parameter, use the Amazon Web Services Nitro Enclaves SDK or any Amazon Web Services SDK.

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 enclave. 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, see How Amazon Web Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide.

" + "documentation":"

A signed attestation document from an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The only valid encryption algorithm is RSAES_OAEP_SHA_256.

This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To call DeriveSharedSecret for an Amazon Web Services Nitro Enclaves, use the Amazon Web Services Nitro Enclaves SDK to generate the attestation document and then use the Recipient parameter from any Amazon Web Services SDK to provide the attestation document for the enclave.

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 enclave. 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, see How Amazon Web Services Nitro Enclaves uses KMS in the Key Management Service Developer Guide.

" }, "DryRun":{ "shape":"NullableBooleanType", @@ -2208,11 +2289,11 @@ }, "WrappingAlgorithm":{ "shape":"AlgorithmSpec", - "documentation":"

The algorithm you will use with the asymmetric public key (PublicKey) in the response to protect your key material during import. For more information, see Select a 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. For SM2PKE wrapping algorithms, you encrypt your key material directly with the SM2 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, except in China Regions, where you must use the SM2PKE wrapping algorithm to import an RSA private key.

The SM2PKE wrapping algorithm is available only in China Regions. The RSA_AES_KEY_WRAP_SHA_256 and RSA_AES_KEY_WRAP_SHA_1 wrapping algorithms are not supported in China Regions.

" + "documentation":"

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 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.

" }, "WrappingKeySpec":{ "shape":"WrappingKeySpec", - "documentation":"

The type of 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 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.

The SM2 wrapping key spec is available only in China Regions.

" + "documentation":"

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.

" } } }, @@ -2274,7 +2355,7 @@ }, "KeyUsage":{ "shape":"KeyUsageType", - "documentation":"

The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or SIGN_VERIFY.

This information is critical. If a public key with SIGN_VERIFY key usage encrypts data outside of KMS, the ciphertext cannot be decrypted.

" + "documentation":"

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.

" }, "EncryptionAlgorithms":{ "shape":"EncryptionAlgorithmSpecList", @@ -2283,6 +2364,10 @@ "SigningAlgorithms":{ "shape":"SigningAlgorithmSpecList", "documentation":"

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.

" + }, + "KeyAgreementAlgorithms":{ + "shape":"KeyAgreementAlgorithmSpecList", + "documentation":"

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.

" } } }, @@ -2375,7 +2460,8 @@ "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", - "VerifyMac" + "VerifyMac", + "DeriveSharedSecret" ] }, "GrantOperationList":{ @@ -2505,7 +2591,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected for one of the following reasons:

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. 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.

", + "documentation":"

The request was rejected for one of the following reasons:

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. 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.

", "exception":true }, "InvalidMarkerException":{ @@ -2549,6 +2635,14 @@ "documentation":"

The request was rejected because the state of the specified resource is not valid for this request.

This exceptions means one of the following:

", "exception":true }, + "KeyAgreementAlgorithmSpec":{ + "type":"string", + "enum":["ECDH"] + }, + "KeyAgreementAlgorithmSpecList":{ + "type":"list", + "member":{"shape":"KeyAgreementAlgorithmSpec"} + }, "KeyEncryptionMechanism":{ "type":"string", "enum":["RSAES_OAEP_SHA_256"] @@ -2665,6 +2759,10 @@ "shape":"SigningAlgorithmSpecList", "documentation":"

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.

" }, + "KeyAgreementAlgorithms":{ + "shape":"KeyAgreementAlgorithmSpecList", + "documentation":"

The key agreement algorithm used to derive a shared secret.

" + }, "MultiRegion":{ "shape":"NullableBooleanType", "documentation":"

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 in the Key Management Service Developer Guide.

" @@ -2739,7 +2837,8 @@ "enum":[ "SIGN_VERIFY", "ENCRYPT_DECRYPT", - "GENERATE_VERIFY_MAC" + "GENERATE_VERIFY_MAC", + "KEY_AGREEMENT" ] }, "LimitExceededException":{ diff --git a/botocore/data/mediapackagev2/2022-12-25/service-2.json b/botocore/data/mediapackagev2/2022-12-25/service-2.json index 9b5efe8615..250b9ffaa3 100644 --- a/botocore/data/mediapackagev2/2022-12-25/service-2.json +++ b/botocore/data/mediapackagev2/2022-12-25/service-2.json @@ -2,9 +2,10 @@ "version":"2.0", "metadata":{ "apiVersion":"2022-12-25", + "auth":["aws.auth#sigv4"], "endpointPrefix":"mediapackagev2", - "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"mediapackagev2", "serviceFullName":"AWS Elemental MediaPackage v2", "serviceId":"MediaPackageV2", @@ -557,6 +558,10 @@ "Description":{ "shape":"ResourceDescription", "documentation":"

Any descriptive information that you want to add to the channel for future identification purposes.

" + }, + "InputType":{ + "shape":"InputType", + "documentation":"

The input type will be an immutable field which will be used to define whether the channel will allow CMAF ingest or HLS ingest. If unprovided, it will default to HLS to preserve current behavior.

The allowed values are:

" } }, "documentation":"

The configuration of the channel.

" @@ -694,6 +699,10 @@ "location":"header", "locationName":"x-amzn-client-token" }, + "InputType":{ + "shape":"InputType", + "documentation":"

The input type will be an immutable field which will be used to define whether the channel will allow CMAF ingest or HLS ingest. If unprovided, it will default to HLS to preserve current behavior.

The allowed values are:

" + }, "Description":{ "shape":"ResourceDescription", "documentation":"

Enter any descriptive text that helps you to identify the channel.

" @@ -740,6 +749,10 @@ "documentation":"

The description for your channel.

" }, "IngestEndpoints":{"shape":"IngestEndpointList"}, + "InputType":{ + "shape":"InputType", + "documentation":"

The input type will be an immutable field which will be used to define whether the channel will allow CMAF ingest or HLS ingest. If unprovided, it will default to HLS to preserve current behavior.

The allowed values are:

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource.

" @@ -965,6 +978,10 @@ "shape":"CreateDashManifests", "documentation":"

A DASH manifest configuration.

" }, + "ForceEndpointErrorConfiguration":{ + "shape":"ForceEndpointErrorConfiguration", + "documentation":"

The failover settings for the endpoint.

" + }, "Tags":{ "shape":"TagMap", "documentation":"

A comma-separated list of tag key:value pairs that you define. For example:

\"Key1\": \"Value1\",

\"Key2\": \"Value2\"

" @@ -1042,6 +1059,10 @@ "shape":"GetDashManifests", "documentation":"

A DASH manifest configuration.

" }, + "ForceEndpointErrorConfiguration":{ + "shape":"ForceEndpointErrorConfiguration", + "documentation":"

The failover settings for the endpoint.

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource.

" @@ -1321,6 +1342,19 @@ }, "documentation":"

The encryption type.

" }, + "EndpointErrorCondition":{ + "type":"string", + "enum":[ + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT" + ] + }, + "EndpointErrorConditions":{ + "type":"list", + "member":{"shape":"EndpointErrorCondition"} + }, "EntityTag":{ "type":"string", "max":256, @@ -1360,6 +1394,16 @@ "max":1209600, "min":0 }, + "ForceEndpointErrorConfiguration":{ + "type":"structure", + "members":{ + "EndpointErrorConditions":{ + "shape":"EndpointErrorConditions", + "documentation":"

The failover conditions for the endpoint. The options are:

" + } + }, + "documentation":"

The failover settings for the endpoint.

" + }, "GetChannelGroupRequest":{ "type":"structure", "required":["ChannelGroupName"], @@ -1516,6 +1560,10 @@ "documentation":"

The description for your channel.

" }, "IngestEndpoints":{"shape":"IngestEndpointList"}, + "InputType":{ + "shape":"InputType", + "documentation":"

The input type will be an immutable field which will be used to define whether the channel will allow CMAF ingest or HLS ingest. If unprovided, it will default to HLS to preserve current behavior.

The allowed values are:

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource.

" @@ -1798,6 +1846,14 @@ "shape":"GetLowLatencyHlsManifests", "documentation":"

A low-latency HLS manifest configuration.

" }, + "DashManifests":{ + "shape":"GetDashManifests", + "documentation":"

A DASH manifest configuration.

" + }, + "ForceEndpointErrorConfiguration":{ + "shape":"ForceEndpointErrorConfiguration", + "documentation":"

The failover settings for the endpoint.

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource.

" @@ -1805,10 +1861,6 @@ "Tags":{ "shape":"TagMap", "documentation":"

The comma-separated list of tag key:value pairs assigned to the origin endpoint.

" - }, - "DashManifests":{ - "shape":"GetDashManifests", - "documentation":"

A DASH manifest configuration.

" } } }, @@ -1837,6 +1889,13 @@ "member":{"shape":"IngestEndpoint"}, "documentation":"

The list of ingest endpoints.

" }, + "InputType":{ + "type":"string", + "enum":[ + "HLS", + "CMAF" + ] + }, "Integer":{ "type":"integer", "box":true @@ -2116,6 +2175,10 @@ "DashManifests":{ "shape":"ListDashManifests", "documentation":"

A DASH manifest configuration.

" + }, + "ForceEndpointErrorConfiguration":{ + "shape":"ForceEndpointErrorConfiguration", + "documentation":"

The failover settings for the endpoint.

" } }, "documentation":"

The configuration of the origin endpoint.

" @@ -2625,6 +2688,10 @@ "documentation":"

The description for your channel.

" }, "IngestEndpoints":{"shape":"IngestEndpointList"}, + "InputType":{ + "shape":"InputType", + "documentation":"

The input type will be an immutable field which will be used to define whether the channel will allow CMAF ingest or HLS ingest. If unprovided, it will default to HLS to preserve current behavior.

The allowed values are:

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource.

" @@ -2691,6 +2758,10 @@ "shape":"CreateDashManifests", "documentation":"

A DASH manifest configuration.

" }, + "ForceEndpointErrorConfiguration":{ + "shape":"ForceEndpointErrorConfiguration", + "documentation":"

The failover settings for the endpoint.

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The expected current Entity Tag (ETag) for the resource. If the specified ETag does not match the resource's current entity tag, the update request will be rejected.

", @@ -2766,6 +2837,10 @@ "shape":"GetLowLatencyHlsManifests", "documentation":"

A low-latency HLS manifest configuration.

" }, + "ForceEndpointErrorConfiguration":{ + "shape":"ForceEndpointErrorConfiguration", + "documentation":"

The failover settings for the endpoint.

" + }, "ETag":{ "shape":"EntityTag", "documentation":"

The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource.

" @@ -2840,7 +2915,9 @@ "TIMING_SOURCE_MISSING", "UPDATE_PERIOD_SMALLER_THAN_SEGMENT_DURATION", "PERIOD_TRIGGERS_NONE_SPECIFIED_WITH_ADDITIONAL_VALUES", - "DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS" + "DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS", + "ONLY_CMAF_INPUT_TYPE_ALLOW_FORCE_ENDPOINT_ERROR_CONFIGURATION", + "SOURCE_DISRUPTIONS_ENABLED_INCORRECTLY" ] } }, diff --git a/docs/source/conf.py b/docs/source/conf.py index c52a96b5bf..f2cb771072 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ # The short X.Y version. version = '1.34.1' # The full version, including alpha/beta/rc tags. -release = '1.34.125' +release = '1.34.126' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.