createRedshiftIdcApplication method
- required String iamRoleArn,
- required String idcDisplayName,
- required String idcInstanceArn,
- required String redshiftIdcApplicationName,
- ApplicationType? applicationType,
- List<
AuthorizedTokenIssuer> ? authorizedTokenIssuerList, - String? identityNamespace,
- List<
ServiceIntegrationsUnion> ? serviceIntegrations, - List<
String> ? ssoTagKeys, - List<
Tag> ? tags,
Creates an Amazon Redshift application for use with IAM Identity Center.
May throw DependentServiceAccessDeniedFault.
May throw DependentServiceUnavailableFault.
May throw InvalidTagFault.
May throw RedshiftIdcApplicationAlreadyExistsFault.
May throw RedshiftIdcApplicationQuotaExceededFault.
May throw TagLimitExceededFault.
May throw UnsupportedOperationFault.
Parameter iamRoleArn :
The IAM role ARN for the Amazon Redshift IAM Identity Center application
instance. It has the required permissions to be assumed and invoke the IDC
Identity Center API.
Parameter idcDisplayName :
The display name for the Amazon Redshift IAM Identity Center application
instance. It appears in the console.
Parameter idcInstanceArn :
The Amazon resource name (ARN) of the IAM Identity Center instance where
Amazon Redshift creates a new managed application.
Parameter redshiftIdcApplicationName :
The name of the Redshift application in IAM Identity Center.
Parameter applicationType :
The type of application being created. Valid values are None
or Lakehouse. Use Lakehouse to enable Amazon
Redshift federated permissions on cluster.
Parameter authorizedTokenIssuerList :
The token issuer list for the Amazon Redshift IAM Identity Center
application instance.
Parameter identityNamespace :
The namespace for the Amazon Redshift IAM Identity Center application
instance. It determines which managed application verifies the connection
token.
Parameter serviceIntegrations :
A collection of service integrations for the Redshift IAM Identity Center
application.
Parameter ssoTagKeys :
A list of tags keys that Redshift Identity Center applications copy to IAM
Identity Center. For each input key, the tag corresponding to the
key-value pair is propagated.
Parameter tags :
A list of tags.
Implementation
Future<CreateRedshiftIdcApplicationResult> createRedshiftIdcApplication({
required String iamRoleArn,
required String idcDisplayName,
required String idcInstanceArn,
required String redshiftIdcApplicationName,
ApplicationType? applicationType,
List<AuthorizedTokenIssuer>? authorizedTokenIssuerList,
String? identityNamespace,
List<ServiceIntegrationsUnion>? serviceIntegrations,
List<String>? ssoTagKeys,
List<Tag>? tags,
}) async {
final $request = <String, String>{
'IamRoleArn': iamRoleArn,
'IdcDisplayName': idcDisplayName,
'IdcInstanceArn': idcInstanceArn,
'RedshiftIdcApplicationName': redshiftIdcApplicationName,
if (applicationType != null) 'ApplicationType': applicationType.value,
if (authorizedTokenIssuerList != null)
if (authorizedTokenIssuerList.isEmpty)
'AuthorizedTokenIssuerList': ''
else
for (var i1 = 0; i1 < authorizedTokenIssuerList.length; i1++)
for (var e3 in authorizedTokenIssuerList[i1].toQueryMap().entries)
'AuthorizedTokenIssuerList.member.${i1 + 1}.${e3.key}': e3.value,
if (identityNamespace != null) 'IdentityNamespace': identityNamespace,
if (serviceIntegrations != null)
if (serviceIntegrations.isEmpty)
'ServiceIntegrations': ''
else
for (var i1 = 0; i1 < serviceIntegrations.length; i1++)
for (var e3 in serviceIntegrations[i1].toQueryMap().entries)
'ServiceIntegrations.member.${i1 + 1}.${e3.key}': e3.value,
if (ssoTagKeys != null)
if (ssoTagKeys.isEmpty)
'SsoTagKeys': ''
else
for (var i1 = 0; i1 < ssoTagKeys.length; i1++)
'SsoTagKeys.TagKey.${i1 + 1}': ssoTagKeys[i1],
if (tags != null)
if (tags.isEmpty)
'Tags': ''
else
for (var i1 = 0; i1 < tags.length; i1++)
for (var e3 in tags[i1].toQueryMap().entries)
'Tags.Tag.${i1 + 1}.${e3.key}': e3.value,
};
final $result = await _protocol.send(
$request,
action: 'CreateRedshiftIdcApplication',
version: '2012-12-01',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
resultWrapper: 'CreateRedshiftIdcApplicationResult',
);
return CreateRedshiftIdcApplicationResult.fromXml($result);
}