/* * 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 appconfigdata-2021-11-11.normal.json service model. */ using System; using System.Collections.Generic; using System.Net; using Amazon.AppConfigData.Model; using Amazon.AppConfigData.Model.Internal.MarshallTransformations; using Amazon.AppConfigData.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.AppConfigData { /// /// Implementation for accessing AppConfigData /// /// AppConfig Data provides the data plane APIs your application uses to retrieve configuration /// data. Here's how it works: /// /// /// /// Your application retrieves configuration data by first establishing a configuration /// session using the AppConfig Data StartConfigurationSession API action. Your /// session's client then makes periodic calls to GetLatestConfiguration to check /// for and retrieve the latest data available. /// /// /// /// When calling StartConfigurationSession, your code sends the following /// information: /// /// /// /// In response, AppConfig provides an InitialConfigurationToken to be given /// to the session's client and used the first time it calls GetLatestConfiguration /// for that session. /// /// /// /// This token should only be used once in your first call to GetLatestConfiguration. /// You must use the new token in the GetLatestConfiguration response /// (NextPollConfigurationToken) in each subsequent call to GetLatestConfiguration. /// /// /// /// When calling GetLatestConfiguration, your client code sends the most /// recent ConfigurationToken value it has and receives in response: /// /// /// /// The InitialConfigurationToken and NextPollConfigurationToken /// should only be used once. To support long poll use cases, the tokens are valid for /// up to 24 hours. If a GetLatestConfiguration call uses an expired token, /// the system returns BadRequestException. /// /// /// /// For more information and to view example CLI commands that show how to retrieve a /// configuration using the AppConfig Data StartConfigurationSession and /// GetLatestConfiguration API actions, see Retrieving /// the configuration in the AppConfig User Guide. /// /// public partial class AmazonAppConfigDataClient : AmazonServiceClient, IAmazonAppConfigData { private static IServiceMetadata serviceMetadata = new AmazonAppConfigDataMetadata(); #region Constructors /// /// Constructs AmazonAppConfigDataClient 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 AmazonAppConfigDataClient() : base(FallbackCredentialsFactory.GetCredentials(), new AmazonAppConfigDataConfig()) { } /// /// Constructs AmazonAppConfigDataClient 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 AmazonAppConfigDataClient(RegionEndpoint region) : base(FallbackCredentialsFactory.GetCredentials(), new AmazonAppConfigDataConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonAppConfigDataClient 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 AmazonAppConfigDataClient Configuration Object public AmazonAppConfigDataClient(AmazonAppConfigDataConfig config) : base(FallbackCredentialsFactory.GetCredentials(config), config){} /// /// Constructs AmazonAppConfigDataClient with AWS Credentials /// /// AWS Credentials public AmazonAppConfigDataClient(AWSCredentials credentials) : this(credentials, new AmazonAppConfigDataConfig()) { } /// /// Constructs AmazonAppConfigDataClient with AWS Credentials /// /// AWS Credentials /// The region to connect. public AmazonAppConfigDataClient(AWSCredentials credentials, RegionEndpoint region) : this(credentials, new AmazonAppConfigDataConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonAppConfigDataClient with AWS Credentials and an /// AmazonAppConfigDataClient Configuration object. /// /// AWS Credentials /// The AmazonAppConfigDataClient Configuration Object public AmazonAppConfigDataClient(AWSCredentials credentials, AmazonAppConfigDataConfig clientConfig) : base(credentials, clientConfig) { } /// /// Constructs AmazonAppConfigDataClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key public AmazonAppConfigDataClient(string awsAccessKeyId, string awsSecretAccessKey) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonAppConfigDataConfig()) { } /// /// Constructs AmazonAppConfigDataClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// The region to connect. public AmazonAppConfigDataClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonAppConfigDataConfig() {RegionEndpoint=region}) { } /// /// Constructs AmazonAppConfigDataClient with AWS Access Key ID, AWS Secret Key and an /// AmazonAppConfigDataClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// The AmazonAppConfigDataClient Configuration Object public AmazonAppConfigDataClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonAppConfigDataConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { } /// /// Constructs AmazonAppConfigDataClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token public AmazonAppConfigDataClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonAppConfigDataConfig()) { } /// /// Constructs AmazonAppConfigDataClient 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 AmazonAppConfigDataClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonAppConfigDataConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonAppConfigDataClient with AWS Access Key ID, AWS Secret Key and an /// AmazonAppConfigDataClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The AmazonAppConfigDataClient Configuration Object public AmazonAppConfigDataClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonAppConfigDataConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig) { } #endregion #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customize the pipeline /// /// protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonAppConfigDataEndpointResolver()); } /// /// 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 GetLatestConfiguration /// /// Retrieves the latest deployed configuration. This API may return empty configuration /// data if the client already has the latest version. For more information about this /// API action and to view example CLI commands that show how to use it with the StartConfigurationSession /// API action, see Retrieving /// the configuration in the AppConfig User Guide. /// /// /// /// Note the following important information. /// ///
  • /// /// Each configuration token is only valid for one call to GetLatestConfiguration. /// The GetLatestConfiguration response includes a NextPollConfigurationToken /// that should always replace the token used for the just-completed call in preparation /// for the next one. /// ///
  • /// /// GetLatestConfiguration is a priced call. For more information, see Pricing. /// ///
///
/// Container for the necessary parameters to execute the GetLatestConfiguration service method. /// /// The response from the GetLatestConfiguration service method, as returned by AppConfigData. /// /// The input fails to satisfy the constraints specified by the service. /// /// /// There was an internal failure in the service. /// /// /// The requested resource could not be found. /// /// /// The request was denied due to request throttling. /// /// REST API Reference for GetLatestConfiguration Operation public virtual GetLatestConfigurationResponse GetLatestConfiguration(GetLatestConfigurationRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetLatestConfigurationRequestMarshaller.Instance; options.ResponseUnmarshaller = GetLatestConfigurationResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Initiates the asynchronous execution of the GetLatestConfiguration operation. /// /// /// Container for the necessary parameters to execute the GetLatestConfiguration operation on AmazonAppConfigDataClient. /// An AsyncCallback delegate that is invoked when the operation completes. /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property. /// /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetLatestConfiguration /// operation. /// REST API Reference for GetLatestConfiguration Operation public virtual IAsyncResult BeginGetLatestConfiguration(GetLatestConfigurationRequest request, AsyncCallback callback, object state) { var options = new InvokeOptions(); options.RequestMarshaller = GetLatestConfigurationRequestMarshaller.Instance; options.ResponseUnmarshaller = GetLatestConfigurationResponseUnmarshaller.Instance; return BeginInvoke(request, options, callback, state); } /// /// Finishes the asynchronous execution of the GetLatestConfiguration operation. /// /// /// The IAsyncResult returned by the call to BeginGetLatestConfiguration. /// /// Returns a GetLatestConfigurationResult from AppConfigData. /// REST API Reference for GetLatestConfiguration Operation public virtual GetLatestConfigurationResponse EndGetLatestConfiguration(IAsyncResult asyncResult) { return EndInvoke(asyncResult); } #endregion #region StartConfigurationSession /// /// Starts a configuration session used to retrieve a deployed configuration. For more /// information about this API action and to view example CLI commands that show how to /// use it with the GetLatestConfiguration API action, see Retrieving /// the configuration in the AppConfig User Guide. /// /// Container for the necessary parameters to execute the StartConfigurationSession service method. /// /// The response from the StartConfigurationSession service method, as returned by AppConfigData. /// /// The input fails to satisfy the constraints specified by the service. /// /// /// There was an internal failure in the service. /// /// /// The requested resource could not be found. /// /// /// The request was denied due to request throttling. /// /// REST API Reference for StartConfigurationSession Operation public virtual StartConfigurationSessionResponse StartConfigurationSession(StartConfigurationSessionRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = StartConfigurationSessionRequestMarshaller.Instance; options.ResponseUnmarshaller = StartConfigurationSessionResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Initiates the asynchronous execution of the StartConfigurationSession operation. /// /// /// Container for the necessary parameters to execute the StartConfigurationSession operation on AmazonAppConfigDataClient. /// An AsyncCallback delegate that is invoked when the operation completes. /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property. /// /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStartConfigurationSession /// operation. /// REST API Reference for StartConfigurationSession Operation public virtual IAsyncResult BeginStartConfigurationSession(StartConfigurationSessionRequest request, AsyncCallback callback, object state) { var options = new InvokeOptions(); options.RequestMarshaller = StartConfigurationSessionRequestMarshaller.Instance; options.ResponseUnmarshaller = StartConfigurationSessionResponseUnmarshaller.Instance; return BeginInvoke(request, options, callback, state); } /// /// Finishes the asynchronous execution of the StartConfigurationSession operation. /// /// /// The IAsyncResult returned by the call to BeginStartConfigurationSession. /// /// Returns a StartConfigurationSessionResult from AppConfigData. /// REST API Reference for StartConfigurationSession Operation public virtual StartConfigurationSessionResponse EndStartConfigurationSession(IAsyncResult asyncResult) { return EndInvoke(asyncResult); } #endregion } }