Skip to content

Commit 678a9fb

Browse files
This is to support Granular access control support for SAML with IAMFedraton in AOSS
1 parent f51ba05 commit 678a9fb

28 files changed

+478
-50
lines changed

generator/ServiceModels/opensearchserverless/opensearchserverless-2021-11-01.api.json

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,7 @@
906906
"description":{"shape":"ConfigDescription"},
907907
"samlOptions":{"shape":"SamlConfigOptions"},
908908
"iamIdentityCenterOptions":{"shape":"CreateIamIdentityCenterConfigOptions"},
909+
"iamFederationOptions":{"shape":"IamFederationConfigOptions"},
909910
"clientToken":{
910911
"shape":"ClientToken",
911912
"idempotencyToken":true
@@ -1207,6 +1208,13 @@
12071208
"securityPolicyDetail":{"shape":"SecurityPolicyDetail"}
12081209
}
12091210
},
1211+
"IamFederationConfigOptions":{
1212+
"type":"structure",
1213+
"members":{
1214+
"groupAttribute":{"shape":"iamFederationGroupAttribute"},
1215+
"userAttribute":{"shape":"iamFederationUserAttribute"}
1216+
}
1217+
},
12101218
"IamIdentityCenterApplicationArn":{
12111219
"type":"string",
12121220
"max":1224,
@@ -1593,6 +1601,7 @@
15931601
"description":{"shape":"ConfigDescription"},
15941602
"samlOptions":{"shape":"SamlConfigOptions"},
15951603
"iamIdentityCenterOptions":{"shape":"IamIdentityCenterConfigOptions"},
1604+
"iamFederationOptions":{"shape":"IamFederationConfigOptions"},
15961605
"createdDate":{"shape":"Long"},
15971606
"lastModifiedDate":{"shape":"Long"}
15981607
}
@@ -1627,7 +1636,8 @@
16271636
"type":"string",
16281637
"enum":[
16291638
"saml",
1630-
"iamidentitycenter"
1639+
"iamidentitycenter",
1640+
"iamfederation"
16311641
]
16321642
},
16331643
"SecurityGroupId":{
@@ -1900,6 +1910,7 @@
19001910
"description":{"shape":"ConfigDescription"},
19011911
"samlOptions":{"shape":"SamlConfigOptions"},
19021912
"iamIdentityCenterOptionsUpdates":{"shape":"UpdateIamIdentityCenterConfigOptions"},
1913+
"iamFederationOptions":{"shape":"IamFederationConfigOptions"},
19031914
"clientToken":{
19041915
"shape":"ClientToken",
19051916
"idempotencyToken":true
@@ -2057,6 +2068,18 @@
20572068
"min":1,
20582069
"pattern":"vpc-[0-9a-z]*"
20592070
},
2071+
"iamFederationGroupAttribute":{
2072+
"type":"string",
2073+
"max":64,
2074+
"min":1,
2075+
"pattern":"[A-Za-z][A-Za-z0-9_.:/=+\\-@]*"
2076+
},
2077+
"iamFederationUserAttribute":{
2078+
"type":"string",
2079+
"max":64,
2080+
"min":1,
2081+
"pattern":"[A-Za-z][A-Za-z0-9_.:/=+\\-@]*"
2082+
},
20602083
"openSearchServerlessEntityId":{
20612084
"type":"string",
20622085
"max":1024,

generator/ServiceModels/opensearchserverless/opensearchserverless-2021-11-01.docs.json

Lines changed: 36 additions & 16 deletions
Large diffs are not rendered by default.

generator/ServiceModels/opensearchserverless/opensearchserverless-2021-11-01.normal.json

Lines changed: 56 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
{"shape":"ValidationException"},
138138
{"shape":"ServiceQuotaExceededException"}
139139
],
140-
"documentation":"<p>Specifies a security configuration for OpenSearch Serverless. For more information, see <a href=\"https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html\">SAML authentication for Amazon OpenSearch Serverless</a>. </p>",
140+
"documentation":"<p>Specifies a security configuration for OpenSearch Serverless. For more information, see <a href=\"https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.html\">SAML authentication for Amazon OpenSearch Serverless</a>.</p>",
141141
"idempotent":true
142142
},
143143
"CreateSecurityPolicy":{
@@ -1213,12 +1213,16 @@
12131213
},
12141214
"samlOptions":{
12151215
"shape":"SamlConfigOptions",
1216-
"documentation":"<p>Describes SAML options in in the form of a key-value map. This field is required if you specify <code>saml</code> for the <code>type</code> parameter.</p>"
1216+
"documentation":"<p>Describes SAML options in in the form of a key-value map. This field is required if you specify <code>SAML</code> for the <code>type</code> parameter.</p>"
12171217
},
12181218
"iamIdentityCenterOptions":{
12191219
"shape":"CreateIamIdentityCenterConfigOptions",
12201220
"documentation":"<p>Describes IAM Identity Center options in the form of a key-value map. This field is required if you specify iamidentitycenter for the type parameter.</p>"
12211221
},
1222+
"iamFederationOptions":{
1223+
"shape":"IamFederationConfigOptions",
1224+
"documentation":"<p>Describes IAM federation options in the form of a key-value map. This field is required if you specify <code>iamFederation</code> for the <code>type</code> parameter.</p>"
1225+
},
12221226
"clientToken":{
12231227
"shape":"ClientToken",
12241228
"documentation":"<p>Unique, case-sensitive identifier to ensure idempotency of the request.</p>",
@@ -1231,7 +1235,7 @@
12311235
"members":{
12321236
"securityConfigDetail":{
12331237
"shape":"SecurityConfigDetail",
1234-
"documentation":"<p>Details about the created security configuration. </p>"
1238+
"documentation":"<p>Details about the created security configuration.</p>"
12351239
}
12361240
}
12371241
},
@@ -1699,6 +1703,20 @@
16991703
}
17001704
}
17011705
},
1706+
"IamFederationConfigOptions":{
1707+
"type":"structure",
1708+
"members":{
1709+
"groupAttribute":{
1710+
"shape":"iamFederationGroupAttribute",
1711+
"documentation":"<p>The group attribute for this IAM federation integration. This attribute is used to map identity provider groups to OpenSearch Serverless permissions.</p>"
1712+
},
1713+
"userAttribute":{
1714+
"shape":"iamFederationUserAttribute",
1715+
"documentation":"<p>The user attribute for this IAM federation integration. This attribute is used to identify users in the federated authentication process.</p>"
1716+
}
1717+
},
1718+
"documentation":"<p>Describes IAM federation options for an OpenSearch Serverless security configuration in the form of a key-value map. These options define how OpenSearch Serverless integrates with external identity providers using federation.</p>"
1719+
},
17021720
"IamIdentityCenterApplicationArn":{
17031721
"type":"string",
17041722
"max":1224,
@@ -1945,7 +1963,7 @@
19451963
},
19461964
"nextToken":{
19471965
"shape":"String",
1948-
"documentation":"<p>If your initial <code>ListAccessPolicies</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListAccessPolicies</code> operations, which returns results in the next page. </p>"
1966+
"documentation":"<p>If your initial <code>ListAccessPolicies</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListAccessPolicies</code> operations, which returns results in the next page.</p>"
19491967
},
19501968
"maxResults":{
19511969
"shape":"ListAccessPoliciesRequestMaxResultsInteger",
@@ -1983,7 +2001,7 @@
19832001
"members":{
19842002
"collectionFilters":{
19852003
"shape":"CollectionFilters",
1986-
"documentation":"<p> A list of filter names and values that you can use for requests.</p>"
2004+
"documentation":"<p>A list of filter names and values that you can use for requests.</p>"
19872005
},
19882006
"nextToken":{
19892007
"shape":"String",
@@ -2071,7 +2089,7 @@
20712089
},
20722090
"nextToken":{
20732091
"shape":"String",
2074-
"documentation":"<p>If your initial <code>ListSecurityConfigs</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListSecurityConfigs</code> operations, which returns results in the next page. </p>"
2092+
"documentation":"<p>If your initial <code>ListSecurityConfigs</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListSecurityConfigs</code> operations, which returns results in the next page.</p>"
20752093
},
20762094
"maxResults":{
20772095
"shape":"ListSecurityConfigsRequestMaxResultsInteger",
@@ -2108,11 +2126,11 @@
21082126
},
21092127
"resource":{
21102128
"shape":"ListSecurityPoliciesRequestResourceList",
2111-
"documentation":"<p>Resource filters (can be collection or indexes) that policies can apply to. </p>"
2129+
"documentation":"<p>Resource filters (can be collection or indexes) that policies can apply to.</p>"
21122130
},
21132131
"nextToken":{
21142132
"shape":"String",
2115-
"documentation":"<p>If your initial <code>ListSecurityPolicies</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListSecurityPolicies</code> operations, which returns results in the next page. </p>"
2133+
"documentation":"<p>If your initial <code>ListSecurityPolicies</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListSecurityPolicies</code> operations, which returns results in the next page.</p>"
21162134
},
21172135
"maxResults":{
21182136
"shape":"ListSecurityPoliciesRequestMaxResultsInteger",
@@ -2173,7 +2191,7 @@
21732191
},
21742192
"nextToken":{
21752193
"shape":"String",
2176-
"documentation":"<p>If your initial <code>ListVpcEndpoints</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListVpcEndpoints</code> operations, which returns results in the next page. </p>"
2194+
"documentation":"<p>If your initial <code>ListVpcEndpoints</code> operation returns a <code>nextToken</code>, you can include the returned <code>nextToken</code> in subsequent <code>ListVpcEndpoints</code> operations, which returns results in the next page.</p>"
21772195
},
21782196
"maxResults":{
21792197
"shape":"ListVpcEndpointsRequestMaxResultsInteger",
@@ -2213,7 +2231,7 @@
22132231
"documentation":"<p>Description of the error.</p>"
22142232
}
22152233
},
2216-
"documentation":"<p>Thrown when the collection you're attempting to create results in a number of search or indexing OCUs that exceeds the account limit. </p>",
2234+
"documentation":"<p>Thrown when the collection you're attempting to create results in a number of search or indexing OCUs that exceeds the account limit.</p>",
22172235
"exception":true
22182236
},
22192237
"PolicyDescription":{
@@ -2274,7 +2292,7 @@
22742292
},
22752293
"openSearchServerlessEntityId":{
22762294
"shape":"openSearchServerlessEntityId",
2277-
"documentation":"<p>Custom entity id attribute to override default entity id for this saml integration.</p>"
2295+
"documentation":"<p>Custom entity ID attribute to override the default entity ID for this SAML integration.</p>"
22782296
},
22792297
"sessionTimeout":{
22802298
"shape":"SamlConfigOptionsSessionTimeoutInteger",
@@ -2321,6 +2339,10 @@
23212339
"shape":"IamIdentityCenterConfigOptions",
23222340
"documentation":"<p>Describes IAM Identity Center options in the form of a key-value map.</p>"
23232341
},
2342+
"iamFederationOptions":{
2343+
"shape":"IamFederationConfigOptions",
2344+
"documentation":"<p>Describes IAM federation options in the form of a key-value map. Contains configuration details about how OpenSearch Serverless integrates with external identity providers through federation.</p>"
2345+
},
23242346
"createdDate":{
23252347
"shape":"Long",
23262348
"documentation":"<p>The date the configuration was created.</p>"
@@ -2330,7 +2352,7 @@
23302352
"documentation":"<p>The timestamp of when the configuration was last modified.</p>"
23312353
}
23322354
},
2333-
"documentation":"<p>Details about a security configuration for OpenSearch Serverless. </p>"
2355+
"documentation":"<p>Details about a security configuration for OpenSearch Serverless.</p>"
23342356
},
23352357
"SecurityConfigId":{
23362358
"type":"string",
@@ -2385,7 +2407,8 @@
23852407
"type":"string",
23862408
"enum":[
23872409
"saml",
2388-
"iamidentitycenter"
2410+
"iamidentitycenter",
2411+
"iamfederation"
23892412
]
23902413
},
23912414
"SecurityGroupId":{
@@ -2679,7 +2702,7 @@
26792702
"members":{
26802703
"accountSettingsDetail":{
26812704
"shape":"AccountSettingsDetail",
2682-
"documentation":"<p>OpenSearch Serverless-related settings for the current Amazon Web Services account. </p>"
2705+
"documentation":"<p>OpenSearch Serverless-related settings for the current Amazon Web Services account.</p>"
26832706
}
26842707
}
26852708
},
@@ -2778,7 +2801,7 @@
27782801
"members":{
27792802
"type":{
27802803
"shape":"LifecyclePolicyType",
2781-
"documentation":"<p> The type of lifecycle policy.</p>"
2804+
"documentation":"<p>The type of lifecycle policy.</p>"
27822805
},
27832806
"name":{
27842807
"shape":"PolicyName",
@@ -2839,6 +2862,10 @@
28392862
"shape":"UpdateIamIdentityCenterConfigOptions",
28402863
"documentation":"<p>Describes IAM Identity Center options in the form of a key-value map.</p>"
28412864
},
2865+
"iamFederationOptions":{
2866+
"shape":"IamFederationConfigOptions",
2867+
"documentation":"<p>Describes IAM federation options in the form of a key-value map for updating an existing security configuration. Use this field to modify IAM federation settings for the security configuration.</p>"
2868+
},
28422869
"clientToken":{
28432870
"shape":"ClientToken",
28442871
"documentation":"<p>Unique, case-sensitive identifier to ensure idempotency of the request.</p>",
@@ -2851,7 +2878,7 @@
28512878
"members":{
28522879
"securityConfigDetail":{
28532880
"shape":"SecurityConfigDetail",
2854-
"documentation":"<p>Details about the updated security configuration. </p>"
2881+
"documentation":"<p>Details about the updated security configuration.</p>"
28552882
}
28562883
}
28572884
},
@@ -3110,6 +3137,18 @@
31103137
"min":1,
31113138
"pattern":"vpc-[0-9a-z]*"
31123139
},
3140+
"iamFederationGroupAttribute":{
3141+
"type":"string",
3142+
"max":64,
3143+
"min":1,
3144+
"pattern":"[A-Za-z][A-Za-z0-9_.:/=+\\-@]*"
3145+
},
3146+
"iamFederationUserAttribute":{
3147+
"type":"string",
3148+
"max":64,
3149+
"min":1,
3150+
"pattern":"[A-Za-z][A-Za-z0-9_.:/=+\\-@]*"
3151+
},
31133152
"openSearchServerlessEntityId":{
31143153
"type":"string",
31153154
"max":1024,
@@ -3135,5 +3174,5 @@
31353174
"pattern":".*[\\w+=,.@-]+.*"
31363175
}
31373176
},
3138-
"documentation":"<p>Use the Amazon OpenSearch Serverless API to create, configure, and manage OpenSearch Serverless collections and security policies.</p> <p>OpenSearch Serverless is an on-demand, pre-provisioned serverless configuration for Amazon OpenSearch Service. OpenSearch Serverless removes the operational complexities of provisioning, configuring, and tuning your OpenSearch clusters. It enables you to easily search and analyze petabytes of data without having to worry about the underlying infrastructure and data management.</p> <p> To learn more about OpenSearch Serverless, see <a href=\"https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html\">What is Amazon OpenSearch Serverless?</a> </p>"
3177+
"documentation":"<p>Use the Amazon OpenSearch Serverless API to create, configure, and manage OpenSearch Serverless collections and security policies.</p> <p>OpenSearch Serverless is an on-demand, pre-provisioned serverless configuration for Amazon OpenSearch Service. OpenSearch Serverless removes the operational complexities of provisioning, configuring, and tuning your OpenSearch clusters. It enables you to easily search and analyze petabytes of data without having to worry about the underlying infrastructure and data management.</p> <p>To learn more about OpenSearch Serverless, see <a href=\"https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html\">What is Amazon OpenSearch Serverless?</a> </p>"
31393178
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,18 @@
518518
<max>32</max>
519519
<pattern>[a-z][a-z0-9-]+</pattern>
520520
</property-value-rule>
521+
<property-value-rule>
522+
<property>Amazon.OpenSearchServerless.Model.IamFederationConfigOptions.GroupAttribute</property>
523+
<min>1</min>
524+
<max>64</max>
525+
<pattern>[A-Za-z][A-Za-z0-9_.:/=+\-@]*</pattern>
526+
</property-value-rule>
527+
<property-value-rule>
528+
<property>Amazon.OpenSearchServerless.Model.IamFederationConfigOptions.UserAttribute</property>
529+
<min>1</min>
530+
<max>64</max>
531+
<pattern>[A-Za-z][A-Za-z0-9_.:/=+\-@]*</pattern>
532+
</property-value-rule>
521533
<property-value-rule>
522534
<property>Amazon.OpenSearchServerless.Model.IamIdentityCenterConfigOptions.ApplicationArn</property>
523535
<min>10</min>

sdk/src/Services/OpenSearchServerless/Generated/Model/CreateSecurityConfigRequest.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public partial class CreateSecurityConfigRequest : AmazonOpenSearchServerlessReq
3939
{
4040
private string _clientToken;
4141
private string _description;
42+
private IamFederationConfigOptions _iamFederationOptions;
4243
private CreateIamIdentityCenterConfigOptions _iamIdentityCenterOptions;
4344
private string _name;
4445
private SamlConfigOptions _samlOptions;
@@ -82,6 +83,25 @@ internal bool IsSetDescription()
8283
return this._description != null;
8384
}
8485

86+
/// <summary>
87+
/// Gets and sets the property IamFederationOptions.
88+
/// <para>
89+
/// Describes IAM federation options in the form of a key-value map. This field is required
90+
/// if you specify <c>iamFederation</c> for the <c>type</c> parameter.
91+
/// </para>
92+
/// </summary>
93+
public IamFederationConfigOptions IamFederationOptions
94+
{
95+
get { return this._iamFederationOptions; }
96+
set { this._iamFederationOptions = value; }
97+
}
98+
99+
// Check to see if IamFederationOptions property is set
100+
internal bool IsSetIamFederationOptions()
101+
{
102+
return this._iamFederationOptions != null;
103+
}
104+
85105
/// <summary>
86106
/// Gets and sets the property IamIdentityCenterOptions.
87107
/// <para>
@@ -124,7 +144,7 @@ internal bool IsSetName()
124144
/// Gets and sets the property SamlOptions.
125145
/// <para>
126146
/// Describes SAML options in in the form of a key-value map. This field is required if
127-
/// you specify <c>saml</c> for the <c>type</c> parameter.
147+
/// you specify <c>SAML</c> for the <c>type</c> parameter.
128148
/// </para>
129149
/// </summary>
130150
public SamlConfigOptions SamlOptions

sdk/src/Services/OpenSearchServerless/Generated/Model/CreateSecurityConfigResponse.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public partial class CreateSecurityConfigResponse : AmazonWebServiceResponse
3939
/// <summary>
4040
/// Gets and sets the property SecurityConfigDetail.
4141
/// <para>
42-
/// Details about the created security configuration.
42+
/// Details about the created security configuration.
4343
/// </para>
4444
/// </summary>
4545
public SecurityConfigDetail SecurityConfigDetail

0 commit comments

Comments
 (0)