Skip to content

Commit 180b704

Browse files
Added GetIdentityCenterAuthToken API to retrieve encrypted authentication tokens for Identity Center integrated serverless workgroups. This API enables programmatic access to secure Identity Center tokens with proper error handling and parameter validation across supported SDK languages.
1 parent 1ce08e1 commit 180b704

12 files changed

+921
-1
lines changed

generator/ServiceModels/redshift-serverless/redshift-serverless-2021-04-21.api.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,24 @@
379379
{"shape":"ValidationException"}
380380
]
381381
},
382+
"GetIdentityCenterAuthToken":{
383+
"name":"GetIdentityCenterAuthToken",
384+
"http":{
385+
"method":"POST",
386+
"requestUri":"/"
387+
},
388+
"input":{"shape":"GetIdentityCenterAuthTokenRequest"},
389+
"output":{"shape":"GetIdentityCenterAuthTokenResponse"},
390+
"errors":[
391+
{"shape":"InternalServerException"},
392+
{"shape":"ResourceNotFoundException"},
393+
{"shape":"ValidationException"},
394+
{"shape":"ConflictException"},
395+
{"shape":"AccessDeniedException"},
396+
{"shape":"DryRunException"},
397+
{"shape":"ThrottlingException"}
398+
]
399+
},
382400
"GetNamespace":{
383401
"name":"GetNamespace",
384402
"http":{
@@ -507,6 +525,7 @@
507525
{"shape":"ValidationException"},
508526
{"shape":"ConflictException"},
509527
{"shape":"AccessDeniedException"},
528+
{"shape":"DryRunException"},
510529
{"shape":"ThrottlingException"}
511530
]
512531
},
@@ -1547,6 +1566,21 @@
15471566
"endpoint":{"shape":"EndpointAccess"}
15481567
}
15491568
},
1569+
"GetIdentityCenterAuthTokenRequest":{
1570+
"type":"structure",
1571+
"required":["workgroupNames"],
1572+
"members":{
1573+
"workgroupNames":{"shape":"WorkgroupNameList"}
1574+
}
1575+
},
1576+
"GetIdentityCenterAuthTokenResponse":{
1577+
"type":"structure",
1578+
"members":{
1579+
"expirationTime":{"shape":"SyntheticTimestamp_date_time"},
1580+
"token":{"shape":"String"}
1581+
},
1582+
"sensitive":true
1583+
},
15501584
"GetNamespaceRequest":{
15511585
"type":"structure",
15521586
"required":["namespaceName"],
@@ -3009,6 +3043,12 @@
30093043
"min":3,
30103044
"pattern":"^[a-z0-9-]+$"
30113045
},
3046+
"WorkgroupNameList":{
3047+
"type":"list",
3048+
"member":{"shape":"WorkgroupName"},
3049+
"max":20,
3050+
"min":1
3051+
},
30123052
"WorkgroupStatus":{
30133053
"type":"string",
30143054
"enum":[

generator/ServiceModels/redshift-serverless/redshift-serverless-2021-04-21.docs.json

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"GetCredentials": "<p>Returns a database user name and temporary password with temporary authorization to log in to Amazon Redshift Serverless.</p> <p>By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).</p> <p>The Identity and Access Management (IAM) user or role that runs GetCredentials must have an IAM policy attached that allows access to all necessary actions and resources.</p> <p>If the <code>DbName</code> parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.</p>",
2525
"GetCustomDomainAssociation": "<p>Gets information about a specific custom domain association.</p>",
2626
"GetEndpointAccess": "<p>Returns information, such as the name, about a VPC endpoint.</p>",
27+
"GetIdentityCenterAuthToken": "<p>Returns an Identity Center authentication token for accessing Amazon Redshift Serverless workgroups.</p> <p>The token provides secure access to data within the specified workgroups using Identity Center identity propagation. The token expires after a specified duration and must be refreshed for continued access.</p> <p>The Identity and Access Management (IAM) user or role that runs GetIdentityCenterAuthToken must have appropriate permissions to access the specified workgroups and Identity Center integration must be configured for the workgroups.</p>",
2728
"GetNamespace": "<p>Returns information about a namespace in Amazon Redshift Serverless.</p>",
2829
"GetRecoveryPoint": "<p>Returns information about a recovery point.</p>",
2930
"GetReservation": "<p>Gets an Amazon Redshift Serverless reservation. A reservation gives you the option to commit to a specified number of Redshift Processing Units (RPUs) for a year at a discount from Serverless on-demand (OD) rates.</p>",
@@ -446,6 +447,14 @@
446447
"base": null,
447448
"refs": {}
448449
},
450+
"GetIdentityCenterAuthTokenRequest": {
451+
"base": null,
452+
"refs": {}
453+
},
454+
"GetIdentityCenterAuthTokenResponse": {
455+
"base": null,
456+
"refs": {}
457+
},
449458
"GetNamespaceRequest": {
450459
"base": null,
451460
"refs": {}
@@ -1307,6 +1316,7 @@
13071316
"EndpointAccess$endpointStatus": "<p>The status of the VPC endpoint.</p>",
13081317
"EndpointAccess$workgroupName": "<p>The name of the workgroup associated with the endpoint.</p>",
13091318
"GetEndpointAccessRequest$endpointName": "<p>The name of the VPC endpoint to return information for.</p>",
1319+
"GetIdentityCenterAuthTokenResponse$token": "<p>The Identity Center authentication token that can be used to access data in the specified workgroups.</p> <p>This token contains the Identity Center identity information and is encrypted for secure transmission.</p>",
13101320
"GetRecoveryPointRequest$recoveryPointId": "<p>The unique identifier of the recovery point to return information for.</p>",
13111321
"GetResourcePolicyRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource to return.</p>",
13121322
"GetSnapshotRequest$ownerAccount": "<p>The owner Amazon Web Services account of a snapshot shared with another user.</p>",
@@ -1464,6 +1474,7 @@
14641474
"CreateCustomDomainAssociationResponse$customDomainCertificateExpiryTime": "<p>The expiration time for the certificate.</p>",
14651475
"EndpointAccess$endpointCreateTime": "<p>The time that the endpoint was created.</p>",
14661476
"GetCustomDomainAssociationResponse$customDomainCertificateExpiryTime": "<p>The expiration time for the certificate.</p>",
1477+
"GetIdentityCenterAuthTokenResponse$expirationTime": "<p>The date and time when the Identity Center authentication token expires.</p> <p>After this time, a new token must be requested for continued access.</p>",
14671478
"ManagedWorkgroupListItem$creationDate": "<p>The creation date of the managed workgroup.</p>",
14681479
"Namespace$creationDate": "<p>The date of when the namespace was created.</p>",
14691480
"RecoveryPoint$recoveryPointCreateTime": "<p>The time the recovery point is created.</p>",
@@ -1805,7 +1816,14 @@
18051816
"UpdateCustomDomainAssociationRequest$workgroupName": "<p>The name of the workgroup associated with the database.</p>",
18061817
"UpdateCustomDomainAssociationResponse$workgroupName": "<p>The name of the workgroup associated with the database.</p>",
18071818
"UpdateWorkgroupRequest$workgroupName": "<p>The name of the workgroup to update. You can't update the name of a workgroup once it is created.</p>",
1808-
"Workgroup$workgroupName": "<p>The name of the workgroup.</p>"
1819+
"Workgroup$workgroupName": "<p>The name of the workgroup.</p>",
1820+
"WorkgroupNameList$member": null
1821+
}
1822+
},
1823+
"WorkgroupNameList": {
1824+
"base": null,
1825+
"refs": {
1826+
"GetIdentityCenterAuthTokenRequest$workgroupNames": "<p>A list of workgroup names for which to generate the Identity Center authentication token.</p> <p>Constraints:</p> <ul> <li> <p>Must contain between 1 and 20 workgroup names.</p> </li> <li> <p>Each workgroup name must be a valid Amazon Redshift Serverless workgroup identifier.</p> </li> <li> <p>All specified workgroups must have Identity Center integration enabled.</p> </li> </ul>"
18091827
}
18101828
},
18111829
"WorkgroupStatus": {

generator/ServiceModels/redshift-serverless/redshift-serverless-2021-04-21.normal.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,25 @@
401401
],
402402
"documentation":"<p>Returns information, such as the name, about a VPC endpoint.</p>"
403403
},
404+
"GetIdentityCenterAuthToken":{
405+
"name":"GetIdentityCenterAuthToken",
406+
"http":{
407+
"method":"POST",
408+
"requestUri":"/"
409+
},
410+
"input":{"shape":"GetIdentityCenterAuthTokenRequest"},
411+
"output":{"shape":"GetIdentityCenterAuthTokenResponse"},
412+
"errors":[
413+
{"shape":"InternalServerException"},
414+
{"shape":"ResourceNotFoundException"},
415+
{"shape":"ValidationException"},
416+
{"shape":"ConflictException"},
417+
{"shape":"AccessDeniedException"},
418+
{"shape":"DryRunException"},
419+
{"shape":"ThrottlingException"}
420+
],
421+
"documentation":"<p>Returns an Identity Center authentication token for accessing Amazon Redshift Serverless workgroups.</p> <p>The token provides secure access to data within the specified workgroups using Identity Center identity propagation. The token expires after a specified duration and must be refreshed for continued access.</p> <p>The Identity and Access Management (IAM) user or role that runs GetIdentityCenterAuthToken must have appropriate permissions to access the specified workgroups and Identity Center integration must be configured for the workgroups.</p>"
422+
},
404423
"GetNamespace":{
405424
"name":"GetNamespace",
406425
"http":{
@@ -537,6 +556,7 @@
537556
{"shape":"ValidationException"},
538557
{"shape":"ConflictException"},
539558
{"shape":"AccessDeniedException"},
559+
{"shape":"DryRunException"},
540560
{"shape":"ThrottlingException"}
541561
],
542562
"documentation":"<p>Get the Redshift Serverless version for a specified track.</p>"
@@ -2016,6 +2036,30 @@
20162036
}
20172037
}
20182038
},
2039+
"GetIdentityCenterAuthTokenRequest":{
2040+
"type":"structure",
2041+
"required":["workgroupNames"],
2042+
"members":{
2043+
"workgroupNames":{
2044+
"shape":"WorkgroupNameList",
2045+
"documentation":"<p>A list of workgroup names for which to generate the Identity Center authentication token.</p> <p>Constraints:</p> <ul> <li> <p>Must contain between 1 and 20 workgroup names.</p> </li> <li> <p>Each workgroup name must be a valid Amazon Redshift Serverless workgroup identifier.</p> </li> <li> <p>All specified workgroups must have Identity Center integration enabled.</p> </li> </ul>"
2046+
}
2047+
}
2048+
},
2049+
"GetIdentityCenterAuthTokenResponse":{
2050+
"type":"structure",
2051+
"members":{
2052+
"expirationTime":{
2053+
"shape":"SyntheticTimestamp_date_time",
2054+
"documentation":"<p>The date and time when the Identity Center authentication token expires.</p> <p>After this time, a new token must be requested for continued access.</p>"
2055+
},
2056+
"token":{
2057+
"shape":"String",
2058+
"documentation":"<p>The Identity Center authentication token that can be used to access data in the specified workgroups.</p> <p>This token contains the Identity Center identity information and is encrypted for secure transmission.</p>"
2059+
}
2060+
},
2061+
"sensitive":true
2062+
},
20192063
"GetNamespaceRequest":{
20202064
"type":"structure",
20212065
"required":["namespaceName"],
@@ -4586,6 +4630,12 @@
45864630
"min":3,
45874631
"pattern":"^[a-z0-9-]+$"
45884632
},
4633+
"WorkgroupNameList":{
4634+
"type":"list",
4635+
"member":{"shape":"WorkgroupName"},
4636+
"max":20,
4637+
"min":1
4638+
},
45894639
"WorkgroupStatus":{
45904640
"type":"string",
45914641
"enum":[
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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 redshift-serverless-2021-04-21.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.RedshiftServerless.Model
31+
{
32+
/// <summary>
33+
/// Container for the parameters to the GetIdentityCenterAuthToken operation.
34+
/// Returns an Identity Center authentication token for accessing Amazon Redshift Serverless
35+
/// workgroups.
36+
///
37+
///
38+
/// <para>
39+
/// The token provides secure access to data within the specified workgroups using Identity
40+
/// Center identity propagation. The token expires after a specified duration and must
41+
/// be refreshed for continued access.
42+
/// </para>
43+
///
44+
/// <para>
45+
/// The Identity and Access Management (IAM) user or role that runs GetIdentityCenterAuthToken
46+
/// must have appropriate permissions to access the specified workgroups and Identity
47+
/// Center integration must be configured for the workgroups.
48+
/// </para>
49+
/// </summary>
50+
public partial class GetIdentityCenterAuthTokenRequest : AmazonRedshiftServerlessRequest
51+
{
52+
private List<string> _workgroupNames = AWSConfigs.InitializeCollections ? new List<string>() : null;
53+
54+
/// <summary>
55+
/// Gets and sets the property WorkgroupNames.
56+
/// <para>
57+
/// A list of workgroup names for which to generate the Identity Center authentication
58+
/// token.
59+
/// </para>
60+
///
61+
/// <para>
62+
/// Constraints:
63+
/// </para>
64+
/// <ul> <li>
65+
/// <para>
66+
/// Must contain between 1 and 20 workgroup names.
67+
/// </para>
68+
/// </li> <li>
69+
/// <para>
70+
/// Each workgroup name must be a valid Amazon Redshift Serverless workgroup identifier.
71+
/// </para>
72+
/// </li> <li>
73+
/// <para>
74+
/// All specified workgroups must have Identity Center integration enabled.
75+
/// </para>
76+
/// </li> </ul>
77+
/// <para />
78+
/// Starting with version 4 of the SDK this property will default to null. If no data for this property is returned
79+
/// from the service the property will also be null. This was changed to improve performance and allow the SDK and caller
80+
/// to distinguish between a property not set or a property being empty to clear out a value. To retain the previous
81+
/// SDK behavior set the AWSConfigs.InitializeCollections static property to true.
82+
/// </summary>
83+
[AWSProperty(Required=true, Min=1, Max=20)]
84+
public List<string> WorkgroupNames
85+
{
86+
get { return this._workgroupNames; }
87+
set { this._workgroupNames = value; }
88+
}
89+
90+
// Check to see if WorkgroupNames property is set
91+
internal bool IsSetWorkgroupNames()
92+
{
93+
return this._workgroupNames != null && (this._workgroupNames.Count > 0 || !AWSConfigs.InitializeCollections);
94+
}
95+
96+
}
97+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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 redshift-serverless-2021-04-21.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.RedshiftServerless.Model
31+
{
32+
/// <summary>
33+
/// This is the response object from the GetIdentityCenterAuthToken operation.
34+
/// </summary>
35+
public partial class GetIdentityCenterAuthTokenResponse : AmazonWebServiceResponse
36+
{
37+
private DateTime? _expirationTime;
38+
private string _token;
39+
40+
/// <summary>
41+
/// Gets and sets the property ExpirationTime.
42+
/// <para>
43+
/// The date and time when the Identity Center authentication token expires.
44+
/// </para>
45+
///
46+
/// <para>
47+
/// After this time, a new token must be requested for continued access.
48+
/// </para>
49+
/// </summary>
50+
public DateTime? ExpirationTime
51+
{
52+
get { return this._expirationTime; }
53+
set { this._expirationTime = value; }
54+
}
55+
56+
// Check to see if ExpirationTime property is set
57+
internal bool IsSetExpirationTime()
58+
{
59+
return this._expirationTime.HasValue;
60+
}
61+
62+
/// <summary>
63+
/// Gets and sets the property Token.
64+
/// <para>
65+
/// The Identity Center authentication token that can be used to access data in the specified
66+
/// workgroups.
67+
/// </para>
68+
///
69+
/// <para>
70+
/// This token contains the Identity Center identity information and is encrypted for
71+
/// secure transmission.
72+
/// </para>
73+
/// </summary>
74+
public string Token
75+
{
76+
get { return this._token; }
77+
set { this._token = value; }
78+
}
79+
80+
// Check to see if Token property is set
81+
internal bool IsSetToken()
82+
{
83+
return this._token != null;
84+
}
85+
86+
}
87+
}

0 commit comments

Comments
 (0)