Skip to content

Commit 988aac9

Browse files
author
awstools
committed
feat(client-mediapackagev2): This release adds support for SPEKE V2 content key encryption in MediaPackage v2 Origin Endpoints.
1 parent fb2ca52 commit 988aac9

File tree

7 files changed

+109
-9
lines changed

7 files changed

+109
-9
lines changed

clients/client-mediapackagev2/src/commands/CreateOriginEndpointCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR
7777
* ],
7878
* RoleArn: "STRING_VALUE", // required
7979
* Url: "STRING_VALUE", // required
80+
* CertificateArn: "STRING_VALUE",
8081
* },
8182
* },
8283
* },
@@ -261,6 +262,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR
261262
* // ],
262263
* // RoleArn: "STRING_VALUE", // required
263264
* // Url: "STRING_VALUE", // required
265+
* // CertificateArn: "STRING_VALUE",
264266
* // },
265267
* // },
266268
* // },
@@ -510,6 +512,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR
510512
* },
511513
* KeyRotationIntervalSeconds: 300,
512514
* SpekeKeyProvider: {
515+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
513516
* DrmSystems: [
514517
* "CLEAR_KEY_AES_128"
515518
* ],
@@ -613,6 +616,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR
613616
* },
614617
* KeyRotationIntervalSeconds: 300,
615618
* SpekeKeyProvider: {
619+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
616620
* DrmSystems: [
617621
* "CLEAR_KEY_AES_128"
618622
* ],
@@ -817,6 +821,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR
817821
* },
818822
* KeyRotationIntervalSeconds: 300,
819823
* SpekeKeyProvider: {
824+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
820825
* DrmSystems: [
821826
* "PLAYREADY",
822827
* "WIDEVINE"
@@ -1027,6 +1032,7 @@ export interface CreateOriginEndpointCommandOutput extends CreateOriginEndpointR
10271032
* },
10281033
* KeyRotationIntervalSeconds: 300,
10291034
* SpekeKeyProvider: {
1035+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
10301036
* DrmSystems: [
10311037
* "PLAYREADY",
10321038
* "WIDEVINE"

clients/client-mediapackagev2/src/commands/GetOriginEndpointCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export interface GetOriginEndpointCommandOutput extends GetOriginEndpointRespons
8585
* // ],
8686
* // RoleArn: "STRING_VALUE", // required
8787
* // Url: "STRING_VALUE", // required
88+
* // CertificateArn: "STRING_VALUE",
8889
* // },
8990
* // },
9091
* // },
@@ -345,6 +346,7 @@ export interface GetOriginEndpointCommandOutput extends GetOriginEndpointRespons
345346
* },
346347
* KeyRotationIntervalSeconds: 300,
347348
* SpekeKeyProvider: {
349+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
348350
* DrmSystems: [
349351
* "CLEAR_KEY_AES_128"
350352
* ],

clients/client-mediapackagev2/src/commands/UpdateOriginEndpointCommand.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR
7777
* ],
7878
* RoleArn: "STRING_VALUE", // required
7979
* Url: "STRING_VALUE", // required
80+
* CertificateArn: "STRING_VALUE",
8081
* },
8182
* },
8283
* },
@@ -258,6 +259,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR
258259
* // ],
259260
* // RoleArn: "STRING_VALUE", // required
260261
* // Url: "STRING_VALUE", // required
262+
* // CertificateArn: "STRING_VALUE",
261263
* // },
262264
* // },
263265
* // },
@@ -507,6 +509,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR
507509
* },
508510
* KeyRotationIntervalSeconds: 300,
509511
* SpekeKeyProvider: {
512+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
510513
* DrmSystems: [
511514
* "CLEAR_KEY_AES_128"
512515
* ],
@@ -605,6 +608,7 @@ export interface UpdateOriginEndpointCommandOutput extends UpdateOriginEndpointR
605608
* },
606609
* KeyRotationIntervalSeconds: 300,
607610
* SpekeKeyProvider: {
611+
* CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e",
608612
* DrmSystems: [
609613
* "CLEAR_KEY_AES_128"
610614
* ],

clients/client-mediapackagev2/src/models/enums.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,16 @@ export type ResourceTypeNotFound = (typeof ResourceTypeNotFound)[keyof typeof Re
6262
export const ValidationExceptionType = {
6363
BATCH_GET_SECRET_VALUE_DENIED: "BATCH_GET_SECRET_VALUE_DENIED",
6464
CENC_IV_INCOMPATIBLE: "CENC_IV_INCOMPATIBLE",
65+
CERTIFICATE_ACCESS_DENIED: "CERTIFICATE_ACCESS_DENIED",
66+
CERTIFICATE_RESOURCE_NOT_FOUND: "CERTIFICATE_RESOURCE_NOT_FOUND",
6567
CLIP_START_TIME_WITH_START_OR_END: "CLIP_START_TIME_WITH_START_OR_END",
6668
CMAF_CONTAINER_TYPE_WITH_MSS_MANIFEST: "CMAF_CONTAINER_TYPE_WITH_MSS_MANIFEST",
6769
CMAF_EXCLUDE_SEGMENT_DRM_METADATA_INCOMPATIBLE_CONTAINER_TYPE:
6870
"CMAF_EXCLUDE_SEGMENT_DRM_METADATA_INCOMPATIBLE_CONTAINER_TYPE",
6971
CONTAINER_TYPE_IMMUTABLE: "CONTAINER_TYPE_IMMUTABLE",
7072
DASH_DVB_ATTRIBUTES_WITHOUT_DVB_DASH_PROFILE: "DASH_DVB_ATTRIBUTES_WITHOUT_DVB_DASH_PROFILE",
7173
DECRYPT_SECRET_FAILED: "DECRYPT_SECRET_FAILED",
74+
DESCRIBE_CERTIFICATE_FAILED: "DESCRIBE_CERTIFICATE_FAILED",
7275
DESCRIBE_SECRET_DENIED: "DESCRIBE_SECRET_DENIED",
7376
DIRECT_MODE_WITH_TIMING_SOURCE: "DIRECT_MODE_WITH_TIMING_SOURCE",
7477
DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS: "DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS",
@@ -90,6 +93,10 @@ export const ValidationExceptionType = {
9093
INCOMPATIBLE_DASH_COMPACTNESS_CONFIGURATION: "INCOMPATIBLE_DASH_COMPACTNESS_CONFIGURATION",
9194
INCOMPATIBLE_DASH_PROFILE_DVB_DASH_CONFIGURATION: "INCOMPATIBLE_DASH_PROFILE_DVB_DASH_CONFIGURATION",
9295
INCOMPATIBLE_XML_ENCODING: "INCOMPATIBLE_XML_ENCODING",
96+
INVALID_ARN: "INVALID_ARN",
97+
INVALID_CERTIFICATE_KEY_ALGORITHM: "INVALID_CERTIFICATE_KEY_ALGORITHM",
98+
INVALID_CERTIFICATE_SIGNATURE_ALGORITHM: "INVALID_CERTIFICATE_SIGNATURE_ALGORITHM",
99+
INVALID_CERTIFICATE_STATUS: "INVALID_CERTIFICATE_STATUS",
93100
INVALID_DRM_SETTINGS: "INVALID_DRM_SETTINGS",
94101
INVALID_HARVEST_JOB_DURATION: "INVALID_HARVEST_JOB_DURATION",
95102
INVALID_MANIFEST_FILTER: "INVALID_MANIFEST_FILTER",
@@ -118,6 +125,7 @@ export const ValidationExceptionType = {
118125
MEMBER_MIN_LENGTH: "MEMBER_MIN_LENGTH",
119126
MEMBER_MIN_VALUE: "MEMBER_MIN_VALUE",
120127
MEMBER_MISSING: "MEMBER_MISSING",
128+
MISSING_CERTIFICATE_DOMAIN_NAME: "MISSING_CERTIFICATE_DOMAIN_NAME",
121129
NONE_MODE_WITH_TIMING_SOURCE: "NONE_MODE_WITH_TIMING_SOURCE",
122130
NUM_MANIFESTS_HIGH: "NUM_MANIFESTS_HIGH",
123131
NUM_MANIFESTS_LOW: "NUM_MANIFESTS_LOW",
@@ -127,6 +135,7 @@ export const ValidationExceptionType = {
127135
ONLY_CMAF_INPUT_TYPE_ALLOW_MQCS_OUTPUT_CONFIGURATION: "ONLY_CMAF_INPUT_TYPE_ALLOW_MQCS_OUTPUT_CONFIGURATION",
128136
ONLY_CMAF_INPUT_TYPE_ALLOW_PREFERRED_INPUT_CONFIGURATION: "ONLY_CMAF_INPUT_TYPE_ALLOW_PREFERRED_INPUT_CONFIGURATION",
129137
PERIOD_TRIGGERS_NONE_SPECIFIED_WITH_ADDITIONAL_VALUES: "PERIOD_TRIGGERS_NONE_SPECIFIED_WITH_ADDITIONAL_VALUES",
138+
RESOURCE_NOT_IN_SAME_REGION: "RESOURCE_NOT_IN_SAME_REGION",
130139
ROLE_ARN_INVALID_FORMAT: "ROLE_ARN_INVALID_FORMAT",
131140
ROLE_ARN_LENGTH_OUT_OF_RANGE: "ROLE_ARN_LENGTH_OUT_OF_RANGE",
132141
ROLE_ARN_NOT_ASSUMABLE: "ROLE_ARN_NOT_ASSUMABLE",

clients/client-mediapackagev2/src/models/models_0.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1182,6 +1182,12 @@ export interface SpekeKeyProvider {
11821182
* @public
11831183
*/
11841184
Url: string | undefined;
1185+
1186+
/**
1187+
* <p>The ARN for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint. For this feature to work, your DRM key provider must support content key encryption.</p>
1188+
* @public
1189+
*/
1190+
CertificateArn?: string | undefined;
11851191
}
11861192

11871193
/**

clients/client-mediapackagev2/src/schemas/schemas_0.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const _BU = "BaseUrls";
77
const _C = "Compactness";
88
const _CA = "CreatedAt";
99
const _CAC = "CdnAuthConfiguration";
10+
const _CAe = "CertificateArn";
1011
const _CC = "CreateChannel";
1112
const _CCG = "CreateChannelGroup";
1213
const _CCGR = "CreateChannelGroupRequest";
@@ -1058,8 +1059,8 @@ export var SpekeKeyProvider$: StaticStructureSchema = [
10581059
n0,
10591060
_SKP,
10601061
0,
1061-
[_ECC, _RI, _DSrm, _RAo, _U],
1062-
[() => EncryptionContractConfiguration$, 0, 64 | 0, 0, 0],
1062+
[_ECC, _RI, _DSrm, _RAo, _U, _CAe],
1063+
[() => EncryptionContractConfiguration$, 0, 64 | 0, 0, 0, 0],
10631064
];
10641065
export var StartTag$: StaticStructureSchema = [3, n0, _ST, 0, [_TO, _Pre], [1, 2]];
10651066
export var TagResourceRequest$: StaticStructureSchema = [

codegen/sdk-codegen/aws-models/mediapackagev2.json

Lines changed: 79 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1595,7 +1595,8 @@
15951595
"ResourceId": "ResourceId",
15961596
"DrmSystems": ["CLEAR_KEY_AES_128"],
15971597
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
1598-
"Url": "https://foo.com"
1598+
"Url": "https://foo.com",
1599+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
15991600
}
16001601
}
16011602
},
@@ -1680,7 +1681,8 @@
16801681
"ResourceId": "ResourceId",
16811682
"DrmSystems": ["CLEAR_KEY_AES_128"],
16821683
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
1683-
"Url": "https://foo.com"
1684+
"Url": "https://foo.com",
1685+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
16841686
}
16851687
}
16861688
},
@@ -1767,7 +1769,8 @@
17671769
"ResourceId": "ResourceId",
17681770
"DrmSystems": ["PLAYREADY", "WIDEVINE"],
17691771
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
1770-
"Url": "https://foo.com"
1772+
"Url": "https://foo.com",
1773+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
17711774
}
17721775
}
17731776
},
@@ -1945,7 +1948,8 @@
19451948
"ResourceId": "ResourceId",
19461949
"DrmSystems": ["PLAYREADY", "WIDEVINE"],
19471950
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
1948-
"Url": "https://foo.com"
1951+
"Url": "https://foo.com",
1952+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
19491953
}
19501954
}
19511955
},
@@ -4595,7 +4599,8 @@
45954599
"ResourceId": "ResourceId",
45964600
"DrmSystems": ["CLEAR_KEY_AES_128"],
45974601
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
4598-
"Url": "https://foo.com"
4602+
"Url": "https://foo.com",
4603+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
45994604
}
46004605
}
46014606
},
@@ -7606,6 +7611,17 @@
76067611
},
76077612
"smithy.api#required": {}
76087613
}
7614+
},
7615+
"CertificateArn": {
7616+
"target": "smithy.api#String",
7617+
"traits": {
7618+
"smithy.api#documentation": "<p>The ARN for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint. For this feature to work, your DRM key provider must support content key encryption.</p>",
7619+
"smithy.api#length": {
7620+
"min": 20,
7621+
"max": 2048
7622+
},
7623+
"smithy.api#pattern": "^arn:([^:\\n]+):acm:([^:\\n]+):([0-9]+):certificate/[a-zA-Z0-9-_]+$"
7624+
}
76097625
}
76107626
},
76117627
"traits": {
@@ -8240,7 +8256,8 @@
82408256
"ResourceId": "ResourceId",
82418257
"DrmSystems": ["CLEAR_KEY_AES_128"],
82428258
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
8243-
"Url": "https://foo.com"
8259+
"Url": "https://foo.com",
8260+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
82448261
}
82458262
}
82468263
},
@@ -8321,7 +8338,8 @@
83218338
"ResourceId": "ResourceId",
83228339
"DrmSystems": ["CLEAR_KEY_AES_128"],
83238340
"RoleArn": "arn:aws:iam::123456789012:role/empRole",
8324-
"Url": "https://foo.com"
8341+
"Url": "https://foo.com",
8342+
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/0c6a65f1-7bd3-48ac-be17-f38675def22e"
83258343
}
83268344
}
83278345
},
@@ -9260,6 +9278,60 @@
92609278
"traits": {
92619279
"smithy.api#enumValue": "INVALID_SECRET"
92629280
}
9281+
},
9282+
"RESOURCE_NOT_IN_SAME_REGION": {
9283+
"target": "smithy.api#Unit",
9284+
"traits": {
9285+
"smithy.api#enumValue": "RESOURCE_NOT_IN_SAME_REGION"
9286+
}
9287+
},
9288+
"CERTIFICATE_RESOURCE_NOT_FOUND": {
9289+
"target": "smithy.api#Unit",
9290+
"traits": {
9291+
"smithy.api#enumValue": "CERTIFICATE_RESOURCE_NOT_FOUND"
9292+
}
9293+
},
9294+
"CERTIFICATE_ACCESS_DENIED": {
9295+
"target": "smithy.api#Unit",
9296+
"traits": {
9297+
"smithy.api#enumValue": "CERTIFICATE_ACCESS_DENIED"
9298+
}
9299+
},
9300+
"DESCRIBE_CERTIFICATE_FAILED": {
9301+
"target": "smithy.api#Unit",
9302+
"traits": {
9303+
"smithy.api#enumValue": "DESCRIBE_CERTIFICATE_FAILED"
9304+
}
9305+
},
9306+
"INVALID_CERTIFICATE_STATUS": {
9307+
"target": "smithy.api#Unit",
9308+
"traits": {
9309+
"smithy.api#enumValue": "INVALID_CERTIFICATE_STATUS"
9310+
}
9311+
},
9312+
"INVALID_CERTIFICATE_KEY_ALGORITHM": {
9313+
"target": "smithy.api#Unit",
9314+
"traits": {
9315+
"smithy.api#enumValue": "INVALID_CERTIFICATE_KEY_ALGORITHM"
9316+
}
9317+
},
9318+
"INVALID_CERTIFICATE_SIGNATURE_ALGORITHM": {
9319+
"target": "smithy.api#Unit",
9320+
"traits": {
9321+
"smithy.api#enumValue": "INVALID_CERTIFICATE_SIGNATURE_ALGORITHM"
9322+
}
9323+
},
9324+
"MISSING_CERTIFICATE_DOMAIN_NAME": {
9325+
"target": "smithy.api#Unit",
9326+
"traits": {
9327+
"smithy.api#enumValue": "MISSING_CERTIFICATE_DOMAIN_NAME"
9328+
}
9329+
},
9330+
"INVALID_ARN": {
9331+
"target": "smithy.api#Unit",
9332+
"traits": {
9333+
"smithy.api#enumValue": "INVALID_ARN"
9334+
}
92639335
}
92649336
}
92659337
},

0 commit comments

Comments
 (0)