Skip to content

Commit 82795e3

Browse files
author
awstools
committed
feat(client-redshift): Support tagging and tag propagation to IAM Identity Center for Redshift Idc Applications
1 parent bb0e673 commit 82795e3

File tree

6 files changed

+143
-0
lines changed

6 files changed

+143
-0
lines changed

clients/client-redshift/src/commands/CreateRedshiftIdcApplicationCommand.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ export interface CreateRedshiftIdcApplicationCommandOutput
7171
* ],
7272
* },
7373
* ],
74+
* Tags: [ // TagList
75+
* { // Tag
76+
* Key: "STRING_VALUE",
77+
* Value: "STRING_VALUE",
78+
* },
79+
* ],
80+
* SsoTagKeys: [ // TagKeyList
81+
* "STRING_VALUE",
82+
* ],
7483
* };
7584
* const command = new CreateRedshiftIdcApplicationCommand(input);
7685
* const response = await client.send(command);
@@ -110,6 +119,15 @@ export interface CreateRedshiftIdcApplicationCommandOutput
110119
* // ],
111120
* // },
112121
* // ],
122+
* // Tags: [ // TagList
123+
* // { // Tag
124+
* // Key: "STRING_VALUE",
125+
* // Value: "STRING_VALUE",
126+
* // },
127+
* // ],
128+
* // SsoTagKeys: [ // TagKeyList
129+
* // "STRING_VALUE",
130+
* // ],
113131
* // },
114132
* // };
115133
*
@@ -128,12 +146,18 @@ export interface CreateRedshiftIdcApplicationCommandOutput
128146
* <p>Your request cannot be completed because a dependent internal service is
129147
* temporarily unavailable. Wait 30 to 60 seconds and try again.</p>
130148
*
149+
* @throws {@link InvalidTagFault} (client fault)
150+
* <p>The tag is invalid.</p>
151+
*
131152
* @throws {@link RedshiftIdcApplicationAlreadyExistsFault} (client fault)
132153
* <p>The application you attempted to add already exists.</p>
133154
*
134155
* @throws {@link RedshiftIdcApplicationQuotaExceededFault} (client fault)
135156
* <p>The maximum number of Redshift IAM Identity Center applications was exceeded.</p>
136157
*
158+
* @throws {@link TagLimitExceededFault} (client fault)
159+
* <p>You have exceeded the number of tags allowed.</p>
160+
*
137161
* @throws {@link UnsupportedOperationFault} (client fault)
138162
* <p>The requested operation isn't supported.</p>
139163
*

clients/client-redshift/src/commands/DescribeRedshiftIdcApplicationsCommand.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,15 @@ export interface DescribeRedshiftIdcApplicationsCommandOutput
8686
* // ],
8787
* // },
8888
* // ],
89+
* // Tags: [ // TagList
90+
* // { // Tag
91+
* // Key: "STRING_VALUE",
92+
* // Value: "STRING_VALUE",
93+
* // },
94+
* // ],
95+
* // SsoTagKeys: [ // TagKeyList
96+
* // "STRING_VALUE",
97+
* // ],
8998
* // },
9099
* // ],
91100
* // Marker: "STRING_VALUE",

clients/client-redshift/src/commands/ModifyRedshiftIdcApplicationCommand.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ export interface ModifyRedshiftIdcApplicationCommandOutput
109109
* // ],
110110
* // },
111111
* // ],
112+
* // Tags: [ // TagList
113+
* // { // Tag
114+
* // Key: "STRING_VALUE",
115+
* // Value: "STRING_VALUE",
116+
* // },
117+
* // ],
118+
* // SsoTagKeys: [ // TagKeyList
119+
* // "STRING_VALUE",
120+
* // ],
112121
* // },
113122
* // };
114123
*

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6812,6 +6812,20 @@ export interface CreateRedshiftIdcApplicationMessage {
68126812
* @public
68136813
*/
68146814
ServiceIntegrations?: ServiceIntegrationsUnion[] | undefined;
6815+
6816+
/**
6817+
* <p>A list of tags.</p>
6818+
* @public
6819+
*/
6820+
Tags?: Tag[] | undefined;
6821+
6822+
/**
6823+
* <p>A list of tags keys that Redshift Identity Center applications copy to IAM Identity
6824+
* Center. For each input key, the tag corresponding to the key-value pair is
6825+
* propagated.</p>
6826+
* @public
6827+
*/
6828+
SsoTagKeys?: string[] | undefined;
68156829
}
68166830

68176831
/**
@@ -6878,6 +6892,20 @@ export interface RedshiftIdcApplication {
68786892
* @public
68796893
*/
68806894
ServiceIntegrations?: ServiceIntegrationsUnion[] | undefined;
6895+
6896+
/**
6897+
* <p>A list of tags.</p>
6898+
* @public
6899+
*/
6900+
Tags?: Tag[] | undefined;
6901+
6902+
/**
6903+
* <p>A list of tags keys that Redshift Identity Center applications copy to IAM Identity
6904+
* Center. For each input key, the tag corresponding to the key-value pair is
6905+
* propagated.</p>
6906+
* @public
6907+
*/
6908+
SsoTagKeys?: string[] | undefined;
68816909
}
68826910

68836911
/**

clients/client-redshift/src/protocols/Aws_query.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9587,6 +9587,26 @@ const se_CreateRedshiftIdcApplicationMessage = (
95879587
entries[loc] = value;
95889588
});
95899589
}
9590+
if (input[_T] != null) {
9591+
const memberEntries = se_TagList(input[_T], context);
9592+
if (input[_T]?.length === 0) {
9593+
entries.Tags = [];
9594+
}
9595+
Object.entries(memberEntries).forEach(([key, value]) => {
9596+
const loc = `Tags.${key}`;
9597+
entries[loc] = value;
9598+
});
9599+
}
9600+
if (input[_STK] != null) {
9601+
const memberEntries = se_TagKeyList(input[_STK], context);
9602+
if (input[_STK]?.length === 0) {
9603+
entries.SsoTagKeys = [];
9604+
}
9605+
Object.entries(memberEntries).forEach(([key, value]) => {
9606+
const loc = `SsoTagKeys.${key}`;
9607+
entries[loc] = value;
9608+
});
9609+
}
95909610
return entries;
95919611
};
95929612

@@ -17600,6 +17620,16 @@ const de_RedshiftIdcApplication = (output: any, context: __SerdeContext): Redshi
1760017620
} else if (output[_SIe] != null && output[_SIe][_me] != null) {
1760117621
contents[_SIe] = de_ServiceIntegrationList(__getArrayIfSingleItem(output[_SIe][_me]), context);
1760217622
}
17623+
if (String(output.Tags).trim() === "") {
17624+
contents[_T] = [];
17625+
} else if (output[_T] != null && output[_T][_Ta] != null) {
17626+
contents[_T] = de_TagList(__getArrayIfSingleItem(output[_T][_Ta]), context);
17627+
}
17628+
if (String(output.SsoTagKeys).trim() === "") {
17629+
contents[_STK] = [];
17630+
} else if (output[_STK] != null && output[_STK][_TKa] != null) {
17631+
contents[_STK] = de_TagKeyList(__getArrayIfSingleItem(output[_STK][_TKa]), context);
17632+
}
1760317633
return contents;
1760417634
};
1760517635

@@ -19307,6 +19337,17 @@ const de_TaggedResourceListMessage = (output: any, context: __SerdeContext): Tag
1930719337
return contents;
1930819338
};
1930919339

19340+
/**
19341+
* deserializeAws_queryTagKeyList
19342+
*/
19343+
const de_TagKeyList = (output: any, context: __SerdeContext): string[] => {
19344+
return (output || [])
19345+
.filter((e: any) => e != null)
19346+
.map((entry: any) => {
19347+
return __expectString(entry) as any;
19348+
});
19349+
};
19350+
1931019351
/**
1931119352
* deserializeAws_queryTagLimitExceededFault
1931219353
*/
@@ -20205,6 +20246,7 @@ const _SSn = "SnapshotSchedule";
2020520246
const _SSu = "SubnetStatus";
2020620247
const _ST = "SourceType";
2020720248
const _STA = "SnsTopicArn";
20249+
const _STK = "SsoTagKeys";
2020820250
const _STN = "SourceTableName";
2020920251
const _STn = "SnapshotType";
2021020252
const _STna = "SnapshotTime";
@@ -20228,6 +20270,7 @@ const _TDIMB = "TotalDataInMegaBytes";
2022820270
const _TDN = "TargetDatabaseName";
2022920271
const _TET = "TargetEncryptionType";
2023020272
const _TK = "TagKeys";
20273+
const _TKa = "TagKey";
2023120274
const _TL = "TagList";
2023220275
const _TNON = "TargetNumberOfNodes";
2023320276
const _TNT = "TargetNodeType";

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3938,12 +3938,18 @@
39383938
{
39393939
"target": "com.amazonaws.redshift#DependentServiceUnavailableFault"
39403940
},
3941+
{
3942+
"target": "com.amazonaws.redshift#InvalidTagFault"
3943+
},
39413944
{
39423945
"target": "com.amazonaws.redshift#RedshiftIdcApplicationAlreadyExistsFault"
39433946
},
39443947
{
39453948
"target": "com.amazonaws.redshift#RedshiftIdcApplicationQuotaExceededFault"
39463949
},
3950+
{
3951+
"target": "com.amazonaws.redshift#TagLimitExceededFault"
3952+
},
39473953
{
39483954
"target": "com.amazonaws.redshift#UnsupportedOperationFault"
39493955
}
@@ -4004,6 +4010,18 @@
40044010
"traits": {
40054011
"smithy.api#documentation": "<p>A collection of service integrations for the Redshift IAM Identity Center application.</p>"
40064012
}
4013+
},
4014+
"Tags": {
4015+
"target": "com.amazonaws.redshift#TagList",
4016+
"traits": {
4017+
"smithy.api#documentation": "<p>A list of tags.</p>"
4018+
}
4019+
},
4020+
"SsoTagKeys": {
4021+
"target": "com.amazonaws.redshift#TagKeyList",
4022+
"traits": {
4023+
"smithy.api#documentation": "<p>A list of tags keys that Redshift Identity Center applications copy to IAM Identity\n Center. For each input key, the tag corresponding to the key-value pair is\n propagated.</p>"
4024+
}
40074025
}
40084026
},
40094027
"traits": {
@@ -14354,6 +14372,18 @@
1435414372
"traits": {
1435514373
"smithy.api#documentation": "<p>A list of service integrations for the Redshift IAM Identity Center application.</p>"
1435614374
}
14375+
},
14376+
"Tags": {
14377+
"target": "com.amazonaws.redshift#TagList",
14378+
"traits": {
14379+
"smithy.api#documentation": "<p>A list of tags.</p>"
14380+
}
14381+
},
14382+
"SsoTagKeys": {
14383+
"target": "com.amazonaws.redshift#TagKeyList",
14384+
"traits": {
14385+
"smithy.api#documentation": "<p>A list of tags keys that Redshift Identity Center applications copy to IAM Identity\n Center. For each input key, the tag corresponding to the key-value pair is\n propagated.</p>"
14386+
}
1435714387
}
1435814388
},
1435914389
"traits": {

0 commit comments

Comments
 (0)