/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the sso-2019-06-10.normal.json service model. */ using System; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using System.Net; using Amazon.SSO.Model; using Amazon.SSO.Model.Internal.MarshallTransformations; using Amazon.SSO.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.SSO { /// /// Implementation for accessing SSO /// /// AWS IAM Identity Center (successor to AWS Single Sign-On) Portal is a web service /// that makes it easy for you to assign user access to IAM Identity Center resources /// such as the AWS access portal. Users can get AWS account applications and roles assigned /// to them and get federated into the application. /// /// /// /// Although AWS Single Sign-On was renamed, the sso and identitystore /// API namespaces will continue to retain their original name for backward compatibility /// purposes. For more information, see IAM /// Identity Center rename. /// /// /// /// This reference guide describes the IAM Identity Center Portal operations that you /// can call programatically and includes detailed information on data types and errors. /// /// /// /// AWS provides SDKs that consist of libraries and sample code for various programming /// languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs provide /// a convenient way to create programmatic access to IAM Identity Center and other AWS /// services. For more information about the AWS SDKs, including how to download and install /// them, see Tools for Amazon Web Services. /// /// /// public partial class AmazonSSOClient : AmazonServiceClient, IAmazonSSO { private static IServiceMetadata serviceMetadata = new AmazonSSOMetadata(); #region Constructors /// /// Constructs AmazonSSOClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// public AmazonSSOClient() : base(FallbackCredentialsFactory.GetCredentials(), new AmazonSSOConfig()) { } /// /// Constructs AmazonSSOClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The region to connect. public AmazonSSOClient(RegionEndpoint region) : base(FallbackCredentialsFactory.GetCredentials(), new AmazonSSOConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonSSOClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The AmazonSSOClient Configuration Object public AmazonSSOClient(AmazonSSOConfig config) : base(FallbackCredentialsFactory.GetCredentials(config), config){} /// /// Constructs AmazonSSOClient with AWS Credentials /// /// AWS Credentials public AmazonSSOClient(AWSCredentials credentials) : this(credentials, new AmazonSSOConfig()) { } /// /// Constructs AmazonSSOClient with AWS Credentials /// /// AWS Credentials /// The region to connect. public AmazonSSOClient(AWSCredentials credentials, RegionEndpoint region) : this(credentials, new AmazonSSOConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonSSOClient with AWS Credentials and an /// AmazonSSOClient Configuration object. /// /// AWS Credentials /// The AmazonSSOClient Configuration Object public AmazonSSOClient(AWSCredentials credentials, AmazonSSOConfig clientConfig) : base(credentials, clientConfig) { } /// /// Constructs AmazonSSOClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key public AmazonSSOClient(string awsAccessKeyId, string awsSecretAccessKey) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonSSOConfig()) { } /// /// Constructs AmazonSSOClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// The region to connect. public AmazonSSOClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonSSOConfig() {RegionEndpoint=region}) { } /// /// Constructs AmazonSSOClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSSOClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// The AmazonSSOClient Configuration Object public AmazonSSOClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonSSOConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { } /// /// Constructs AmazonSSOClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token public AmazonSSOClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonSSOConfig()) { } /// /// Constructs AmazonSSOClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The region to connect. public AmazonSSOClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonSSOConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonSSOClient with AWS Access Key ID, AWS Secret Key and an /// AmazonSSOClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The AmazonSSOClient Configuration Object public AmazonSSOClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonSSOConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig) { } #endregion #if AWS_ASYNC_ENUMERABLES_API private ISSOPaginatorFactory _paginators; /// /// Paginators for the service /// public ISSOPaginatorFactory Paginators { get { if (this._paginators == null) { this._paginators = new SSOPaginatorFactory(this); } return this._paginators; } } #endif #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customizes the runtime pipeline. /// /// Runtime pipeline for the current client. protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonSSOEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #region GetRoleCredentials internal virtual GetRoleCredentialsResponse GetRoleCredentials(GetRoleCredentialsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetRoleCredentialsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetRoleCredentialsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns the STS short-term credentials for a given role name that is assigned to the /// user. /// /// Container for the necessary parameters to execute the GetRoleCredentials service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetRoleCredentials service method, as returned by SSO. /// /// Indicates that a problem occurred with the input to the request. For example, a required /// parameter might be missing or out of range. /// /// /// The specified resource doesn't exist. /// /// /// Indicates that the request is being made too frequently and is more than what the /// server can handle. /// /// /// Indicates that the request is not authorized. This can happen due to an invalid access /// token in the request. /// /// REST API Reference for GetRoleCredentials Operation public virtual Task GetRoleCredentialsAsync(GetRoleCredentialsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetRoleCredentialsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetRoleCredentialsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListAccountRoles internal virtual ListAccountRolesResponse ListAccountRoles(ListAccountRolesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListAccountRolesRequestMarshaller.Instance; options.ResponseUnmarshaller = ListAccountRolesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists all roles that are assigned to the user for a given AWS account. /// /// Container for the necessary parameters to execute the ListAccountRoles service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListAccountRoles service method, as returned by SSO. /// /// Indicates that a problem occurred with the input to the request. For example, a required /// parameter might be missing or out of range. /// /// /// The specified resource doesn't exist. /// /// /// Indicates that the request is being made too frequently and is more than what the /// server can handle. /// /// /// Indicates that the request is not authorized. This can happen due to an invalid access /// token in the request. /// /// REST API Reference for ListAccountRoles Operation public virtual Task ListAccountRolesAsync(ListAccountRolesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListAccountRolesRequestMarshaller.Instance; options.ResponseUnmarshaller = ListAccountRolesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListAccounts internal virtual ListAccountsResponse ListAccounts(ListAccountsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListAccountsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListAccountsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists all AWS accounts assigned to the user. These AWS accounts are assigned by the /// administrator of the account. For more information, see Assign /// User Access in the IAM Identity Center User Guide. This operation returns /// a paginated response. /// /// Container for the necessary parameters to execute the ListAccounts service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListAccounts service method, as returned by SSO. /// /// Indicates that a problem occurred with the input to the request. For example, a required /// parameter might be missing or out of range. /// /// /// The specified resource doesn't exist. /// /// /// Indicates that the request is being made too frequently and is more than what the /// server can handle. /// /// /// Indicates that the request is not authorized. This can happen due to an invalid access /// token in the request. /// /// REST API Reference for ListAccounts Operation public virtual Task ListAccountsAsync(ListAccountsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListAccountsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListAccountsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region Logout internal virtual LogoutResponse Logout(LogoutRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = LogoutRequestMarshaller.Instance; options.ResponseUnmarshaller = LogoutResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Removes the locally stored SSO tokens from the client-side cache and sends an API /// call to the IAM Identity Center service to invalidate the corresponding server-side /// IAM Identity Center sign in session. /// /// /// /// If a user uses IAM Identity Center to access the AWS CLI, the user’s IAM Identity /// Center sign in session is used to obtain an IAM session, as specified in the corresponding /// IAM Identity Center permission set. More specifically, IAM Identity Center assumes /// an IAM role in the target account on behalf of the user, and the corresponding temporary /// AWS credentials are returned to the client. /// /// /// /// After user logout, any existing IAM role sessions that were created by using IAM Identity /// Center permission sets continue based on the duration configured in the permission /// set. For more information, see User /// authentications in the IAM Identity Center User Guide. /// /// /// /// Container for the necessary parameters to execute the Logout service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the Logout service method, as returned by SSO. /// /// Indicates that a problem occurred with the input to the request. For example, a required /// parameter might be missing or out of range. /// /// /// Indicates that the request is being made too frequently and is more than what the /// server can handle. /// /// /// Indicates that the request is not authorized. This can happen due to an invalid access /// token in the request. /// /// REST API Reference for Logout Operation public virtual Task LogoutAsync(LogoutRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = LogoutRequestMarshaller.Instance; options.ResponseUnmarshaller = LogoutResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion } }