Skip to content

Commit d4fd321

Browse files
This release adds support for CDN Authentication using Static Headers in MediaPackage v2.
1 parent 09d5fc9 commit d4fd321

19 files changed

+1820
-874
lines changed

generator/ServiceModels/mediapackagev2/mediapackagev2-2022-12-25.api.json

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,32 @@
612612
"members":{
613613
}
614614
},
615+
"CdnAuthConfiguration":{
616+
"type":"structure",
617+
"required":[
618+
"CdnIdentifierSecretArns",
619+
"SecretsRoleArn"
620+
],
621+
"members":{
622+
"CdnIdentifierSecretArns":{"shape":"CdnAuthConfigurationCdnIdentifierSecretArnsList"},
623+
"SecretsRoleArn":{"shape":"CdnAuthConfigurationSecretsRoleArnString"}
624+
}
625+
},
626+
"CdnAuthConfigurationCdnIdentifierSecretArnsList":{
627+
"type":"list",
628+
"member":{"shape":"CdnIdentifierSecretArn"},
629+
"min":1
630+
},
631+
"CdnAuthConfigurationSecretsRoleArnString":{
632+
"type":"string",
633+
"max":2048,
634+
"min":20
635+
},
636+
"CdnIdentifierSecretArn":{
637+
"type":"string",
638+
"max":2048,
639+
"min":20
640+
},
615641
"ChannelGroupListConfiguration":{
616642
"type":"structure",
617643
"required":[
@@ -1813,7 +1839,8 @@
18131839
"ChannelGroupName":{"shape":"ResourceName"},
18141840
"ChannelName":{"shape":"ResourceName"},
18151841
"OriginEndpointName":{"shape":"ResourceName"},
1816-
"Policy":{"shape":"PolicyText"}
1842+
"Policy":{"shape":"PolicyText"},
1843+
"CdnAuthConfiguration":{"shape":"CdnAuthConfiguration"}
18171844
}
18181845
},
18191846
"GetOriginEndpointRequest":{
@@ -2370,7 +2397,8 @@
23702397
"location":"uri",
23712398
"locationName":"OriginEndpointName"
23722399
},
2373-
"Policy":{"shape":"PolicyText"}
2400+
"Policy":{"shape":"PolicyText"},
2401+
"CdnAuthConfiguration":{"shape":"CdnAuthConfiguration"}
23742402
}
23752403
},
23762404
"PutOriginEndpointPolicyResponse":{
@@ -2954,7 +2982,22 @@
29542982
"ISM_CONTAINER_TYPE_WITH_LL_HLS_MANIFEST",
29552983
"ISM_CONTAINER_TYPE_WITH_DASH_MANIFEST",
29562984
"ISM_CONTAINER_TYPE_WITH_SCTE",
2957-
"ISM_CONTAINER_WITH_KEY_ROTATION"
2985+
"ISM_CONTAINER_WITH_KEY_ROTATION",
2986+
"BATCH_GET_SECRET_VALUE_DENIED",
2987+
"GET_SECRET_VALUE_DENIED",
2988+
"DESCRIBE_SECRET_DENIED",
2989+
"INVALID_SECRET_FORMAT",
2990+
"SECRET_IS_NOT_ONE_KEY_VALUE_PAIR",
2991+
"INVALID_SECRET_KEY",
2992+
"INVALID_SECRET_VALUE",
2993+
"SECRET_ARN_RESOURCE_NOT_FOUND",
2994+
"DECRYPT_SECRET_FAILED",
2995+
"TOO_MANY_SECRETS",
2996+
"DUPLICATED_SECRET",
2997+
"MALFORMED_SECRET_ARN",
2998+
"SECRET_FROM_DIFFERENT_ACCOUNT",
2999+
"SECRET_FROM_DIFFERENT_REGION",
3000+
"INVALID_SECRET"
29583001
]
29593002
}
29603003
}

generator/ServiceModels/mediapackagev2/mediapackagev2-2022-12-25.docs.json

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
},
3636
"shapes": {
3737
"AccessDeniedException": {
38-
"base": "<p>You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access Management in the IAM User Guide.</p>",
38+
"base": "<p>Access is denied because either you don't have permissions to perform the requested operation or MediaPackage is getting throttling errors with CDN authorization. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access Management in the IAM User Guide. Or, if you're using CDN authorization, you will receive this exception if MediaPackage receives a throttling error from Secrets Manager.</p>",
3939
"refs": {
4040
}
4141
},
@@ -77,6 +77,31 @@
7777
"refs": {
7878
}
7979
},
80+
"CdnAuthConfiguration": {
81+
"base": "<p>The settings to enable CDN authorization headers in MediaPackage.</p>",
82+
"refs": {
83+
"GetOriginEndpointPolicyResponse$CdnAuthConfiguration": "<p>The settings for using authorization headers between the MediaPackage endpoint and your CDN. </p> <p>For information about CDN authorization, see <a href=\"https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html\">CDN authorization in Elemental MediaPackage</a> in the MediaPackage user guide.</p>",
84+
"PutOriginEndpointPolicyRequest$CdnAuthConfiguration": "<p>The settings for using authorization headers between the MediaPackage endpoint and your CDN. </p> <p>For information about CDN authorization, see <a href=\"https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html\">CDN authorization in Elemental MediaPackage</a> in the MediaPackage user guide. </p>"
85+
}
86+
},
87+
"CdnAuthConfigurationCdnIdentifierSecretArnsList": {
88+
"base": null,
89+
"refs": {
90+
"CdnAuthConfiguration$CdnIdentifierSecretArns": "<p>The ARN for the secret in Secrets Manager that your CDN uses for authorization to access the endpoint.</p>"
91+
}
92+
},
93+
"CdnAuthConfigurationSecretsRoleArnString": {
94+
"base": null,
95+
"refs": {
96+
"CdnAuthConfiguration$SecretsRoleArn": "<p>The ARN for the IAM role that gives MediaPackage read access to Secrets Manager and KMS for CDN authorization.</p>"
97+
}
98+
},
99+
"CdnIdentifierSecretArn": {
100+
"base": null,
101+
"refs": {
102+
"CdnAuthConfigurationCdnIdentifierSecretArnsList$member": null
103+
}
104+
},
80105
"ChannelGroupListConfiguration": {
81106
"base": "<p>The configuration of the channel group.</p>",
82107
"refs": {

generator/ServiceModels/mediapackagev2/mediapackagev2-2022-12-25.normal.json

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@
580580
"members":{
581581
"Message":{"shape":"String"}
582582
},
583-
"documentation":"<p>You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access Management in the IAM User Guide.</p>",
583+
"documentation":"<p>Access is denied because either you don't have permissions to perform the requested operation or MediaPackage is getting throttling errors with CDN authorization. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access Management in the IAM User Guide. Or, if you're using CDN authorization, you will receive this exception if MediaPackage receives a throttling error from Secrets Manager.</p>",
584584
"error":{
585585
"httpStatusCode":403,
586586
"senderFault":true
@@ -648,6 +648,39 @@
648648
"members":{
649649
}
650650
},
651+
"CdnAuthConfiguration":{
652+
"type":"structure",
653+
"required":[
654+
"CdnIdentifierSecretArns",
655+
"SecretsRoleArn"
656+
],
657+
"members":{
658+
"CdnIdentifierSecretArns":{
659+
"shape":"CdnAuthConfigurationCdnIdentifierSecretArnsList",
660+
"documentation":"<p>The ARN for the secret in Secrets Manager that your CDN uses for authorization to access the endpoint.</p>"
661+
},
662+
"SecretsRoleArn":{
663+
"shape":"CdnAuthConfigurationSecretsRoleArnString",
664+
"documentation":"<p>The ARN for the IAM role that gives MediaPackage read access to Secrets Manager and KMS for CDN authorization.</p>"
665+
}
666+
},
667+
"documentation":"<p>The settings to enable CDN authorization headers in MediaPackage.</p>"
668+
},
669+
"CdnAuthConfigurationCdnIdentifierSecretArnsList":{
670+
"type":"list",
671+
"member":{"shape":"CdnIdentifierSecretArn"},
672+
"min":1
673+
},
674+
"CdnAuthConfigurationSecretsRoleArnString":{
675+
"type":"string",
676+
"max":2048,
677+
"min":20
678+
},
679+
"CdnIdentifierSecretArn":{
680+
"type":"string",
681+
"max":2048,
682+
"min":20
683+
},
651684
"ChannelGroupListConfiguration":{
652685
"type":"structure",
653686
"required":[
@@ -2598,6 +2631,10 @@
25982631
"Policy":{
25992632
"shape":"PolicyText",
26002633
"documentation":"<p>The policy assigned to the origin endpoint.</p>"
2634+
},
2635+
"CdnAuthConfiguration":{
2636+
"shape":"CdnAuthConfiguration",
2637+
"documentation":"<p>The settings for using authorization headers between the MediaPackage endpoint and your CDN. </p> <p>For information about CDN authorization, see <a href=\"https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html\">CDN authorization in Elemental MediaPackage</a> in the MediaPackage user guide.</p>"
26012638
}
26022639
}
26032640
},
@@ -3426,6 +3463,10 @@
34263463
"Policy":{
34273464
"shape":"PolicyText",
34283465
"documentation":"<p>The policy to attach to the specified origin endpoint.</p>"
3466+
},
3467+
"CdnAuthConfiguration":{
3468+
"shape":"CdnAuthConfiguration",
3469+
"documentation":"<p>The settings for using authorization headers between the MediaPackage endpoint and your CDN. </p> <p>For information about CDN authorization, see <a href=\"https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html\">CDN authorization in Elemental MediaPackage</a> in the MediaPackage user guide. </p>"
34293470
}
34303471
}
34313472
},
@@ -4267,7 +4308,22 @@
42674308
"ISM_CONTAINER_TYPE_WITH_LL_HLS_MANIFEST",
42684309
"ISM_CONTAINER_TYPE_WITH_DASH_MANIFEST",
42694310
"ISM_CONTAINER_TYPE_WITH_SCTE",
4270-
"ISM_CONTAINER_WITH_KEY_ROTATION"
4311+
"ISM_CONTAINER_WITH_KEY_ROTATION",
4312+
"BATCH_GET_SECRET_VALUE_DENIED",
4313+
"GET_SECRET_VALUE_DENIED",
4314+
"DESCRIBE_SECRET_DENIED",
4315+
"INVALID_SECRET_FORMAT",
4316+
"SECRET_IS_NOT_ONE_KEY_VALUE_PAIR",
4317+
"INVALID_SECRET_KEY",
4318+
"INVALID_SECRET_VALUE",
4319+
"SECRET_ARN_RESOURCE_NOT_FOUND",
4320+
"DECRYPT_SECRET_FAILED",
4321+
"TOO_MANY_SECRETS",
4322+
"DUPLICATED_SECRET",
4323+
"MALFORMED_SECRET_ARN",
4324+
"SECRET_FROM_DIFFERENT_ACCOUNT",
4325+
"SECRET_FROM_DIFFERENT_REGION",
4326+
"INVALID_SECRET"
42714327
]
42724328
}
42734329
},

sdk/code-analysis/ServiceAnalysis/MediaPackageV2/Generated/PropertyValueRules.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,11 @@
764764
<max>256</max>
765765
<pattern>[a-zA-Z0-9_-]+</pattern>
766766
</property-value-rule>
767+
<property-value-rule>
768+
<property>Amazon.MediaPackageV2.Model.CdnAuthConfiguration.SecretsRoleArn</property>
769+
<min>20</min>
770+
<max>2048</max>
771+
</property-value-rule>
767772
<property-value-rule>
768773
<property>Amazon.MediaPackageV2.Model.ChannelGroupListConfiguration.Description</property>
769774
<min>0</min>

sdk/src/Services/MediaPackageV2/Generated/Model/AccessDeniedException.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@
3030
namespace Amazon.MediaPackageV2.Model
3131
{
3232
/// <summary>
33-
/// You don't have permissions to perform the requested operation. The user or role that
34-
/// is making the request must have at least one IAM permissions policy attached that
35-
/// grants the required permissions. For more information, see Access Management in the
36-
/// IAM User Guide.
33+
/// Access is denied because either you don't have permissions to perform the requested
34+
/// operation or MediaPackage is getting throttling errors with CDN authorization. The
35+
/// user or role that is making the request must have at least one IAM permissions policy
36+
/// attached that grants the required permissions. For more information, see Access Management
37+
/// in the IAM User Guide. Or, if you're using CDN authorization, you will receive this
38+
/// exception if MediaPackage receives a throttling error from Secrets Manager.
3739
/// </summary>
3840
#if !NETSTANDARD
3941
[Serializable]
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the mediapackagev2-2022-12-25.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Xml.Serialization;
22+
using System.Text;
23+
using System.IO;
24+
using System.Net;
25+
26+
using Amazon.Runtime;
27+
using Amazon.Runtime.Internal;
28+
29+
#pragma warning disable CS0612,CS0618,CS1570
30+
namespace Amazon.MediaPackageV2.Model
31+
{
32+
/// <summary>
33+
/// The settings to enable CDN authorization headers in MediaPackage.
34+
/// </summary>
35+
public partial class CdnAuthConfiguration
36+
{
37+
private List<string> _cdnIdentifierSecretArns = AWSConfigs.InitializeCollections ? new List<string>() : null;
38+
private string _secretsRoleArn;
39+
40+
/// <summary>
41+
/// Gets and sets the property CdnIdentifierSecretArns.
42+
/// <para>
43+
/// The ARN for the secret in Secrets Manager that your CDN uses for authorization to
44+
/// access the endpoint.
45+
/// </para>
46+
/// </summary>
47+
[AWSProperty(Required=true, Min=1)]
48+
public List<string> CdnIdentifierSecretArns
49+
{
50+
get { return this._cdnIdentifierSecretArns; }
51+
set { this._cdnIdentifierSecretArns = value; }
52+
}
53+
54+
// Check to see if CdnIdentifierSecretArns property is set
55+
internal bool IsSetCdnIdentifierSecretArns()
56+
{
57+
return this._cdnIdentifierSecretArns != null && (this._cdnIdentifierSecretArns.Count > 0 || !AWSConfigs.InitializeCollections);
58+
}
59+
60+
/// <summary>
61+
/// Gets and sets the property SecretsRoleArn.
62+
/// <para>
63+
/// The ARN for the IAM role that gives MediaPackage read access to Secrets Manager and
64+
/// KMS for CDN authorization.
65+
/// </para>
66+
/// </summary>
67+
[AWSProperty(Required=true, Min=20, Max=2048)]
68+
public string SecretsRoleArn
69+
{
70+
get { return this._secretsRoleArn; }
71+
set { this._secretsRoleArn = value; }
72+
}
73+
74+
// Check to see if SecretsRoleArn property is set
75+
internal bool IsSetSecretsRoleArn()
76+
{
77+
return this._secretsRoleArn != null;
78+
}
79+
80+
}
81+
}

sdk/src/Services/MediaPackageV2/Generated/Model/GetOriginEndpointPolicyResponse.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,36 @@ namespace Amazon.MediaPackageV2.Model
3434
/// </summary>
3535
public partial class GetOriginEndpointPolicyResponse : AmazonWebServiceResponse
3636
{
37+
private CdnAuthConfiguration _cdnAuthConfiguration;
3738
private string _channelGroupName;
3839
private string _channelName;
3940
private string _originEndpointName;
4041
private string _policy;
4142

43+
/// <summary>
44+
/// Gets and sets the property CdnAuthConfiguration.
45+
/// <para>
46+
/// The settings for using authorization headers between the MediaPackage endpoint and
47+
/// your CDN.
48+
/// </para>
49+
///
50+
/// <para>
51+
/// For information about CDN authorization, see <a href="https://docs.aws.amazon.com/mediapackage/latest/userguide/cdn-auth.html">CDN
52+
/// authorization in Elemental MediaPackage</a> in the MediaPackage user guide.
53+
/// </para>
54+
/// </summary>
55+
public CdnAuthConfiguration CdnAuthConfiguration
56+
{
57+
get { return this._cdnAuthConfiguration; }
58+
set { this._cdnAuthConfiguration = value; }
59+
}
60+
61+
// Check to see if CdnAuthConfiguration property is set
62+
internal bool IsSetCdnAuthConfiguration()
63+
{
64+
return this._cdnAuthConfiguration != null;
65+
}
66+
4267
/// <summary>
4368
/// Gets and sets the property ChannelGroupName.
4469
/// <para>

0 commit comments

Comments
 (0)