/*
 * 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 iotthingsgraph-2018-09-06.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.IoTThingsGraph.Model;
using Amazon.IoTThingsGraph.Model.Internal.MarshallTransformations;
using Amazon.IoTThingsGraph.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.IoTThingsGraph
{
    /// 
    /// Implementation for accessing IoTThingsGraph
    ///
    /// AWS IoT Things Graph 
    /// 
    /// AWS IoT Things Graph provides an integrated set of tools that enable developers to
    /// connect devices and services that use different standards, such as units of measure
    /// and communication protocols. AWS IoT Things Graph makes it possible to build IoT applications
    /// with little to no code by connecting devices and services and defining how they interact
    /// at an abstract level.
    /// 
    ///  
    /// 
    /// For more information about how AWS IoT Things Graph works, see the User
    /// Guide.
    /// 
    ///  
    /// 
    /// The AWS IoT Things Graph service is discontinued.
    /// 
    /// 
    public partial class AmazonIoTThingsGraphClient : AmazonServiceClient, IAmazonIoTThingsGraph
    {
        private static IServiceMetadata serviceMetadata = new AmazonIoTThingsGraphMetadata();
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        private IIoTThingsGraphPaginatorFactory _paginators;
        /// 
        /// Paginators for the service
        /// 
        public IIoTThingsGraphPaginatorFactory Paginators 
        {
            get 
            {
                if (this._paginators == null) 
                {
                    this._paginators = new IoTThingsGraphPaginatorFactory(this);
                }
                return this._paginators;
            }
        }
#endif
        #region Constructors
        /// 
        /// Constructs AmazonIoTThingsGraphClient 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 AmazonIoTThingsGraphClient()
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonIoTThingsGraphConfig()) { }
        /// 
        /// Constructs AmazonIoTThingsGraphClient 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 AmazonIoTThingsGraphClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonIoTThingsGraphConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonIoTThingsGraphClient 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 AmazonIoTThingsGraphClient Configuration Object
        public AmazonIoTThingsGraphClient(AmazonIoTThingsGraphConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config), config){}
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonIoTThingsGraphClient(AWSCredentials credentials)
            : this(credentials, new AmazonIoTThingsGraphConfig())
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonIoTThingsGraphClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonIoTThingsGraphConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Credentials and an
        /// AmazonIoTThingsGraphClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonIoTThingsGraphClient Configuration Object
        public AmazonIoTThingsGraphClient(AWSCredentials credentials, AmazonIoTThingsGraphConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonIoTThingsGraphClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonIoTThingsGraphConfig())
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonIoTThingsGraphClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonIoTThingsGraphConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonIoTThingsGraphClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonIoTThingsGraphClient Configuration Object
        public AmazonIoTThingsGraphClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonIoTThingsGraphConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonIoTThingsGraphClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonIoTThingsGraphConfig())
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient 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 AmazonIoTThingsGraphClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonIoTThingsGraphConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonIoTThingsGraphClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonIoTThingsGraphClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonIoTThingsGraphClient Configuration Object
        public AmazonIoTThingsGraphClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonIoTThingsGraphConfig 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 AmazonIoTThingsGraphEndpointResolver());
        }
        /// 
        /// 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  AssociateEntityToThing
        /// 
        /// Associates a device with a concrete thing that is in the user's registry.
        /// 
        ///  
        /// 
        /// A thing can be associated with only one device at a time. If you associate a thing
        /// with a new device id, its previous association will be removed.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateEntityToThing service method.
        /// 
        /// The response from the AssociateEntityToThing service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for AssociateEntityToThing Operation
        [Obsolete("since: 2022-08-30")]
        public virtual AssociateEntityToThingResponse AssociateEntityToThing(AssociateEntityToThingRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = AssociateEntityToThingRequestMarshaller.Instance;
            options.ResponseUnmarshaller = AssociateEntityToThingResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the AssociateEntityToThing operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateEntityToThing operation on AmazonIoTThingsGraphClient.
        /// 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 EndAssociateEntityToThing
        ///         operation.
        /// REST API Reference for AssociateEntityToThing Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginAssociateEntityToThing(AssociateEntityToThingRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = AssociateEntityToThingRequestMarshaller.Instance;
            options.ResponseUnmarshaller = AssociateEntityToThingResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  AssociateEntityToThing operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAssociateEntityToThing.
        /// 
        /// Returns a  AssociateEntityToThingResult from IoTThingsGraph.
        /// REST API Reference for AssociateEntityToThing Operation
        [Obsolete("since: 2022-08-30")]
        public virtual AssociateEntityToThingResponse EndAssociateEntityToThing(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateFlowTemplate
        /// 
        /// Creates a workflow template. Workflows can be created only in the user's namespace.
        /// (The public namespace contains only entities.) The workflow can contain only entities
        /// in the specified namespace. The workflow is validated against the entities in the
        /// latest version of the user's namespace unless another namespace version is specified
        /// in the request.
        /// 
        /// Container for the necessary parameters to execute the CreateFlowTemplate service method.
        /// 
        /// The response from the CreateFlowTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for CreateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual CreateFlowTemplateResponse CreateFlowTemplate(CreateFlowTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateFlowTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateFlowTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateFlowTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndCreateFlowTemplate
        ///         operation.
        /// REST API Reference for CreateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginCreateFlowTemplate(CreateFlowTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateFlowTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateFlowTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateFlowTemplate.
        /// 
        /// Returns a  CreateFlowTemplateResult from IoTThingsGraph.
        /// REST API Reference for CreateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual CreateFlowTemplateResponse EndCreateFlowTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateSystemInstance
        /// 
        /// Creates a system instance. 
        /// 
        ///  
        /// 
        /// This action validates the system instance, prepares the deployment-related resources.
        /// For Greengrass deployments, it updates the Greengrass group that is specified by the
        /// greengrassGroupName parameter. It also adds a file to the S3 bucket specified
        /// by the s3BucketName parameter. You need to call DeploySystemInstance
        /// after running this action.
        /// 
        ///  
        /// 
        /// For Greengrass deployments, since this action modifies and adds resources to a Greengrass
        /// group and an S3 bucket on the caller's behalf, the calling identity must have write
        /// permissions to both the specified Greengrass group and S3 bucket. Otherwise, the call
        /// will fail with an authorization error.
        /// 
        ///  
        /// 
        /// For cloud deployments, this action requires a flowActionsRoleArn value.
        /// This is an IAM role that has permissions to access AWS services, such as AWS Lambda
        /// and AWS IoT, that the flow uses when it executes.
        /// 
        ///  
        /// 
        /// If the definition document doesn't specify a version of the user's namespace, the
        /// latest version will be used by default.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateSystemInstance service method.
        /// 
        /// The response from the CreateSystemInstance service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for CreateSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual CreateSystemInstanceResponse CreateSystemInstance(CreateSystemInstanceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSystemInstanceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateSystemInstance operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateSystemInstance operation on AmazonIoTThingsGraphClient.
        /// 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 EndCreateSystemInstance
        ///         operation.
        /// REST API Reference for CreateSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginCreateSystemInstance(CreateSystemInstanceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSystemInstanceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateSystemInstance operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateSystemInstance.
        /// 
        /// Returns a  CreateSystemInstanceResult from IoTThingsGraph.
        /// REST API Reference for CreateSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual CreateSystemInstanceResponse EndCreateSystemInstance(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateSystemTemplate
        /// 
        /// Creates a system. The system is validated against the entities in the latest version
        /// of the user's namespace unless another namespace version is specified in the request.
        /// 
        /// Container for the necessary parameters to execute the CreateSystemTemplate service method.
        /// 
        /// The response from the CreateSystemTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for CreateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual CreateSystemTemplateResponse CreateSystemTemplate(CreateSystemTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSystemTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateSystemTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateSystemTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndCreateSystemTemplate
        ///         operation.
        /// REST API Reference for CreateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginCreateSystemTemplate(CreateSystemTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSystemTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateSystemTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateSystemTemplate.
        /// 
        /// Returns a  CreateSystemTemplateResult from IoTThingsGraph.
        /// REST API Reference for CreateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual CreateSystemTemplateResponse EndCreateSystemTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteFlowTemplate
        /// 
        /// Deletes a workflow. Any new system or deployment that contains this workflow will
        /// fail to update or deploy. Existing deployments that contain the workflow will continue
        /// to run (since they use a snapshot of the workflow taken at the time of deployment).
        /// 
        /// Container for the necessary parameters to execute the DeleteFlowTemplate service method.
        /// 
        /// The response from the DeleteFlowTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeleteFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteFlowTemplateResponse DeleteFlowTemplate(DeleteFlowTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteFlowTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteFlowTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteFlowTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeleteFlowTemplate
        ///         operation.
        /// REST API Reference for DeleteFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeleteFlowTemplate(DeleteFlowTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteFlowTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteFlowTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteFlowTemplate.
        /// 
        /// Returns a  DeleteFlowTemplateResult from IoTThingsGraph.
        /// REST API Reference for DeleteFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteFlowTemplateResponse EndDeleteFlowTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteNamespace
        /// 
        /// Deletes the specified namespace. This action deletes all of the entities in the namespace.
        /// Delete the systems and flows that use entities in the namespace before performing
        /// this action. This action takes no request parameters.
        /// 
        /// Container for the necessary parameters to execute the DeleteNamespace service method.
        /// 
        /// The response from the DeleteNamespace service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeleteNamespace Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteNamespaceResponse DeleteNamespace(DeleteNamespaceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteNamespaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteNamespaceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteNamespace operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteNamespace operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeleteNamespace
        ///         operation.
        /// REST API Reference for DeleteNamespace Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeleteNamespace(DeleteNamespaceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteNamespaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteNamespaceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteNamespace operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteNamespace.
        /// 
        /// Returns a  DeleteNamespaceResult from IoTThingsGraph.
        /// REST API Reference for DeleteNamespace Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteNamespaceResponse EndDeleteNamespace(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteSystemInstance
        /// 
        /// Deletes a system instance. Only system instances that have never been deployed, or
        /// that have been undeployed can be deleted.
        /// 
        ///  
        /// 
        /// Users can create a new system instance that has the same ID as a deleted system instance.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteSystemInstance service method.
        /// 
        /// The response from the DeleteSystemInstance service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeleteSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteSystemInstanceResponse DeleteSystemInstance(DeleteSystemInstanceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSystemInstanceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteSystemInstance operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteSystemInstance operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeleteSystemInstance
        ///         operation.
        /// REST API Reference for DeleteSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeleteSystemInstance(DeleteSystemInstanceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSystemInstanceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteSystemInstance operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteSystemInstance.
        /// 
        /// Returns a  DeleteSystemInstanceResult from IoTThingsGraph.
        /// REST API Reference for DeleteSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteSystemInstanceResponse EndDeleteSystemInstance(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteSystemTemplate
        /// 
        /// Deletes a system. New deployments can't contain the system after its deletion. Existing
        /// deployments that contain the system will continue to work because they use a snapshot
        /// of the system that is taken when it is deployed.
        /// 
        /// Container for the necessary parameters to execute the DeleteSystemTemplate service method.
        /// 
        /// The response from the DeleteSystemTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeleteSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteSystemTemplateResponse DeleteSystemTemplate(DeleteSystemTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSystemTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteSystemTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteSystemTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeleteSystemTemplate
        ///         operation.
        /// REST API Reference for DeleteSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeleteSystemTemplate(DeleteSystemTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSystemTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteSystemTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteSystemTemplate.
        /// 
        /// Returns a  DeleteSystemTemplateResult from IoTThingsGraph.
        /// REST API Reference for DeleteSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeleteSystemTemplateResponse EndDeleteSystemTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeploySystemInstance
        /// 
        /// Greengrass and Cloud Deployments 
        /// 
        ///  
        /// 
        /// Deploys the system instance to the target specified in CreateSystemInstance.
        /// 
        /// 
        ///  
        /// 
        ///  Greengrass Deployments 
        /// 
        ///  
        /// 
        /// If the system or any workflows and entities have been updated before this action is
        /// called, then the deployment will create a new Amazon Simple Storage Service resource
        /// file and then deploy it.
        /// 
        ///  
        /// 
        /// Since this action creates a Greengrass deployment on the caller's behalf, the calling
        /// identity must have write permissions to the specified Greengrass group. Otherwise,
        /// the call will fail with an authorization error.
        /// 
        ///  
        /// 
        /// For information about the artifacts that get added to your Greengrass core device
        /// when you use this API, see AWS
        /// IoT Things Graph and AWS IoT Greengrass.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeploySystemInstance service method.
        /// 
        /// The response from the DeploySystemInstance service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeploySystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeploySystemInstanceResponse DeploySystemInstance(DeploySystemInstanceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeploySystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeploySystemInstanceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeploySystemInstance operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeploySystemInstance operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeploySystemInstance
        ///         operation.
        /// REST API Reference for DeploySystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeploySystemInstance(DeploySystemInstanceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeploySystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeploySystemInstanceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeploySystemInstance operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeploySystemInstance.
        /// 
        /// Returns a  DeploySystemInstanceResult from IoTThingsGraph.
        /// REST API Reference for DeploySystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeploySystemInstanceResponse EndDeploySystemInstance(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeprecateFlowTemplate
        /// 
        /// Deprecates the specified workflow. This action marks the workflow for deletion. Deprecated
        /// flows can't be deployed, but existing deployments will continue to run.
        /// 
        /// Container for the necessary parameters to execute the DeprecateFlowTemplate service method.
        /// 
        /// The response from the DeprecateFlowTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeprecateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeprecateFlowTemplateResponse DeprecateFlowTemplate(DeprecateFlowTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeprecateFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeprecateFlowTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeprecateFlowTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeprecateFlowTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeprecateFlowTemplate
        ///         operation.
        /// REST API Reference for DeprecateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeprecateFlowTemplate(DeprecateFlowTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeprecateFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeprecateFlowTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeprecateFlowTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeprecateFlowTemplate.
        /// 
        /// Returns a  DeprecateFlowTemplateResult from IoTThingsGraph.
        /// REST API Reference for DeprecateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeprecateFlowTemplateResponse EndDeprecateFlowTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeprecateSystemTemplate
        /// 
        /// Deprecates the specified system.
        /// 
        /// Container for the necessary parameters to execute the DeprecateSystemTemplate service method.
        /// 
        /// The response from the DeprecateSystemTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DeprecateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeprecateSystemTemplateResponse DeprecateSystemTemplate(DeprecateSystemTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeprecateSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeprecateSystemTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeprecateSystemTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeprecateSystemTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndDeprecateSystemTemplate
        ///         operation.
        /// REST API Reference for DeprecateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDeprecateSystemTemplate(DeprecateSystemTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeprecateSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeprecateSystemTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeprecateSystemTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeprecateSystemTemplate.
        /// 
        /// Returns a  DeprecateSystemTemplateResult from IoTThingsGraph.
        /// REST API Reference for DeprecateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DeprecateSystemTemplateResponse EndDeprecateSystemTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeNamespace
        /// 
        /// Gets the latest version of the user's namespace and the public version that it is
        /// tracking.
        /// 
        /// Container for the necessary parameters to execute the DescribeNamespace service method.
        /// 
        /// The response from the DescribeNamespace service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DescribeNamespace Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DescribeNamespaceResponse DescribeNamespace(DescribeNamespaceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeNamespaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeNamespaceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeNamespace operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeNamespace operation on AmazonIoTThingsGraphClient.
        /// 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 EndDescribeNamespace
        ///         operation.
        /// REST API Reference for DescribeNamespace Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDescribeNamespace(DescribeNamespaceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeNamespaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeNamespaceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeNamespace operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeNamespace.
        /// 
        /// Returns a  DescribeNamespaceResult from IoTThingsGraph.
        /// REST API Reference for DescribeNamespace Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DescribeNamespaceResponse EndDescribeNamespace(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DissociateEntityFromThing
        /// 
        /// Dissociates a device entity from a concrete thing. The action takes only the type
        /// of the entity that you need to dissociate because only one entity of a particular
        /// type can be associated with a thing.
        /// 
        /// Container for the necessary parameters to execute the DissociateEntityFromThing service method.
        /// 
        /// The response from the DissociateEntityFromThing service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for DissociateEntityFromThing Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DissociateEntityFromThingResponse DissociateEntityFromThing(DissociateEntityFromThingRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DissociateEntityFromThingRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DissociateEntityFromThingResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DissociateEntityFromThing operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DissociateEntityFromThing operation on AmazonIoTThingsGraphClient.
        /// 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 EndDissociateEntityFromThing
        ///         operation.
        /// REST API Reference for DissociateEntityFromThing Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginDissociateEntityFromThing(DissociateEntityFromThingRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DissociateEntityFromThingRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DissociateEntityFromThingResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DissociateEntityFromThing operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDissociateEntityFromThing.
        /// 
        /// Returns a  DissociateEntityFromThingResult from IoTThingsGraph.
        /// REST API Reference for DissociateEntityFromThing Operation
        [Obsolete("since: 2022-08-30")]
        public virtual DissociateEntityFromThingResponse EndDissociateEntityFromThing(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEntities
        /// 
        /// Gets definitions of the specified entities. Uses the latest version of the user's
        /// namespace by default. This API returns the following TDM entities.
        /// 
        ///   -  
        /// 
        /// Properties
        /// 
        ///  
-  
        /// 
        /// States
        /// 
        ///  
-  
        /// 
        /// Events
        /// 
        ///  
-  
        /// 
        /// Actions
        /// 
        ///  
-  
        /// 
        /// Capabilities
        /// 
        ///  
-  
        /// 
        /// Mappings
        /// 
        ///  
-  
        /// 
        /// Devices
        /// 
        ///  
-  
        /// 
        /// Device Models
        /// 
        ///  
-  
        /// 
        /// Services
        /// 
        ///  
/// 
        /// This action doesn't return definitions for systems, flows, and deployments.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEntities service method.
        /// 
        /// The response from the GetEntities service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetEntities Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetEntitiesResponse GetEntities(GetEntitiesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEntitiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEntitiesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEntities operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEntities operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetEntities
        ///         operation.
        /// REST API Reference for GetEntities Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetEntities(GetEntitiesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEntitiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEntitiesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEntities operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEntities.
        /// 
        /// Returns a  GetEntitiesResult from IoTThingsGraph.
        /// REST API Reference for GetEntities Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetEntitiesResponse EndGetEntities(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetFlowTemplate
        /// 
        /// Gets the latest version of theDefinitionDocument and FlowTemplateSummary
        /// for the specified workflow.
        /// 
        /// Container for the necessary parameters to execute the GetFlowTemplate service method.
        /// 
        /// The response from the GetFlowTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetFlowTemplateResponse GetFlowTemplate(GetFlowTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetFlowTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetFlowTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetFlowTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetFlowTemplate
        ///         operation.
        /// REST API Reference for GetFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetFlowTemplate(GetFlowTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetFlowTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetFlowTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetFlowTemplate.
        /// 
        /// Returns a  GetFlowTemplateResult from IoTThingsGraph.
        /// REST API Reference for GetFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetFlowTemplateResponse EndGetFlowTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetFlowTemplateRevisions
        /// 
        /// Gets revisions of the specified workflow. Only the last 100 revisions are stored.
        /// If the workflow has been deprecated, this action will return revisions that occurred
        /// before the deprecation. This action won't work for workflows that have been deleted.
        /// 
        /// Container for the necessary parameters to execute the GetFlowTemplateRevisions service method.
        /// 
        /// The response from the GetFlowTemplateRevisions service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetFlowTemplateRevisions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetFlowTemplateRevisionsResponse GetFlowTemplateRevisions(GetFlowTemplateRevisionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetFlowTemplateRevisionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetFlowTemplateRevisionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetFlowTemplateRevisions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetFlowTemplateRevisions operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetFlowTemplateRevisions
        ///         operation.
        /// REST API Reference for GetFlowTemplateRevisions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetFlowTemplateRevisions(GetFlowTemplateRevisionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetFlowTemplateRevisionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetFlowTemplateRevisionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetFlowTemplateRevisions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetFlowTemplateRevisions.
        /// 
        /// Returns a  GetFlowTemplateRevisionsResult from IoTThingsGraph.
        /// REST API Reference for GetFlowTemplateRevisions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetFlowTemplateRevisionsResponse EndGetFlowTemplateRevisions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetNamespaceDeletionStatus
        /// 
        /// Gets the status of a namespace deletion task.
        /// 
        /// Container for the necessary parameters to execute the GetNamespaceDeletionStatus service method.
        /// 
        /// The response from the GetNamespaceDeletionStatus service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetNamespaceDeletionStatus Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetNamespaceDeletionStatusResponse GetNamespaceDeletionStatus(GetNamespaceDeletionStatusRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetNamespaceDeletionStatusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetNamespaceDeletionStatusResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetNamespaceDeletionStatus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetNamespaceDeletionStatus operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetNamespaceDeletionStatus
        ///         operation.
        /// REST API Reference for GetNamespaceDeletionStatus Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetNamespaceDeletionStatus(GetNamespaceDeletionStatusRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetNamespaceDeletionStatusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetNamespaceDeletionStatusResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetNamespaceDeletionStatus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetNamespaceDeletionStatus.
        /// 
        /// Returns a  GetNamespaceDeletionStatusResult from IoTThingsGraph.
        /// REST API Reference for GetNamespaceDeletionStatus Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetNamespaceDeletionStatusResponse EndGetNamespaceDeletionStatus(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSystemInstance
        /// 
        /// Gets a system instance.
        /// 
        /// Container for the necessary parameters to execute the GetSystemInstance service method.
        /// 
        /// The response from the GetSystemInstance service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetSystemInstanceResponse GetSystemInstance(GetSystemInstanceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSystemInstanceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSystemInstance operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSystemInstance operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetSystemInstance
        ///         operation.
        /// REST API Reference for GetSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetSystemInstance(GetSystemInstanceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSystemInstanceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSystemInstance operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSystemInstance.
        /// 
        /// Returns a  GetSystemInstanceResult from IoTThingsGraph.
        /// REST API Reference for GetSystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetSystemInstanceResponse EndGetSystemInstance(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSystemTemplate
        /// 
        /// Gets a system.
        /// 
        /// Container for the necessary parameters to execute the GetSystemTemplate service method.
        /// 
        /// The response from the GetSystemTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetSystemTemplateResponse GetSystemTemplate(GetSystemTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSystemTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSystemTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSystemTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetSystemTemplate
        ///         operation.
        /// REST API Reference for GetSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetSystemTemplate(GetSystemTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSystemTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSystemTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSystemTemplate.
        /// 
        /// Returns a  GetSystemTemplateResult from IoTThingsGraph.
        /// REST API Reference for GetSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetSystemTemplateResponse EndGetSystemTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSystemTemplateRevisions
        /// 
        /// Gets revisions made to the specified system template. Only the previous 100 revisions
        /// are stored. If the system has been deprecated, this action will return the revisions
        /// that occurred before its deprecation. This action won't work with systems that have
        /// been deleted.
        /// 
        /// Container for the necessary parameters to execute the GetSystemTemplateRevisions service method.
        /// 
        /// The response from the GetSystemTemplateRevisions service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetSystemTemplateRevisions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetSystemTemplateRevisionsResponse GetSystemTemplateRevisions(GetSystemTemplateRevisionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSystemTemplateRevisionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSystemTemplateRevisionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSystemTemplateRevisions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSystemTemplateRevisions operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetSystemTemplateRevisions
        ///         operation.
        /// REST API Reference for GetSystemTemplateRevisions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetSystemTemplateRevisions(GetSystemTemplateRevisionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSystemTemplateRevisionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSystemTemplateRevisionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSystemTemplateRevisions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSystemTemplateRevisions.
        /// 
        /// Returns a  GetSystemTemplateRevisionsResult from IoTThingsGraph.
        /// REST API Reference for GetSystemTemplateRevisions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetSystemTemplateRevisionsResponse EndGetSystemTemplateRevisions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetUploadStatus
        /// 
        /// Gets the status of the specified upload.
        /// 
        /// Container for the necessary parameters to execute the GetUploadStatus service method.
        /// 
        /// The response from the GetUploadStatus service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for GetUploadStatus Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetUploadStatusResponse GetUploadStatus(GetUploadStatusRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetUploadStatusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetUploadStatusResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetUploadStatus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetUploadStatus operation on AmazonIoTThingsGraphClient.
        /// 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 EndGetUploadStatus
        ///         operation.
        /// REST API Reference for GetUploadStatus Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginGetUploadStatus(GetUploadStatusRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetUploadStatusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetUploadStatusResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetUploadStatus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetUploadStatus.
        /// 
        /// Returns a  GetUploadStatusResult from IoTThingsGraph.
        /// REST API Reference for GetUploadStatus Operation
        [Obsolete("since: 2022-08-30")]
        public virtual GetUploadStatusResponse EndGetUploadStatus(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListFlowExecutionMessages
        /// 
        /// Returns a list of objects that contain information about events in a flow execution.
        /// 
        /// Container for the necessary parameters to execute the ListFlowExecutionMessages service method.
        /// 
        /// The response from the ListFlowExecutionMessages service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for ListFlowExecutionMessages Operation
        [Obsolete("since: 2022-08-30")]
        public virtual ListFlowExecutionMessagesResponse ListFlowExecutionMessages(ListFlowExecutionMessagesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListFlowExecutionMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListFlowExecutionMessagesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListFlowExecutionMessages operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListFlowExecutionMessages operation on AmazonIoTThingsGraphClient.
        /// 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 EndListFlowExecutionMessages
        ///         operation.
        /// REST API Reference for ListFlowExecutionMessages Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginListFlowExecutionMessages(ListFlowExecutionMessagesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListFlowExecutionMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListFlowExecutionMessagesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListFlowExecutionMessages operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListFlowExecutionMessages.
        /// 
        /// Returns a  ListFlowExecutionMessagesResult from IoTThingsGraph.
        /// REST API Reference for ListFlowExecutionMessages Operation
        [Obsolete("since: 2022-08-30")]
        public virtual ListFlowExecutionMessagesResponse EndListFlowExecutionMessages(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Lists all tags on an AWS IoT Things Graph resource.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for ListTagsForResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTagsForResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTagsForResourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListTagsForResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource operation on AmazonIoTThingsGraphClient.
        /// 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 EndListTagsForResource
        ///         operation.
        /// REST API Reference for ListTagsForResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginListTagsForResource(ListTagsForResourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTagsForResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTagsForResourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListTagsForResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTagsForResource.
        /// 
        /// Returns a  ListTagsForResourceResult from IoTThingsGraph.
        /// REST API Reference for ListTagsForResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SearchEntities
        /// 
        /// Searches for entities of the specified type. You can search for entities in your namespace
        /// and the public namespace that you're tracking.
        /// 
        /// Container for the necessary parameters to execute the SearchEntities service method.
        /// 
        /// The response from the SearchEntities service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for SearchEntities Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchEntitiesResponse SearchEntities(SearchEntitiesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchEntitiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchEntitiesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SearchEntities operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchEntities operation on AmazonIoTThingsGraphClient.
        /// 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 EndSearchEntities
        ///         operation.
        /// REST API Reference for SearchEntities Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginSearchEntities(SearchEntitiesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchEntitiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchEntitiesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SearchEntities operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSearchEntities.
        /// 
        /// Returns a  SearchEntitiesResult from IoTThingsGraph.
        /// REST API Reference for SearchEntities Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchEntitiesResponse EndSearchEntities(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SearchFlowExecutions
        /// 
        /// Searches for AWS IoT Things Graph workflow execution instances.
        /// 
        /// Container for the necessary parameters to execute the SearchFlowExecutions service method.
        /// 
        /// The response from the SearchFlowExecutions service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for SearchFlowExecutions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchFlowExecutionsResponse SearchFlowExecutions(SearchFlowExecutionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchFlowExecutionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchFlowExecutionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SearchFlowExecutions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchFlowExecutions operation on AmazonIoTThingsGraphClient.
        /// 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 EndSearchFlowExecutions
        ///         operation.
        /// REST API Reference for SearchFlowExecutions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginSearchFlowExecutions(SearchFlowExecutionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchFlowExecutionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchFlowExecutionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SearchFlowExecutions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSearchFlowExecutions.
        /// 
        /// Returns a  SearchFlowExecutionsResult from IoTThingsGraph.
        /// REST API Reference for SearchFlowExecutions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchFlowExecutionsResponse EndSearchFlowExecutions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SearchFlowTemplates
        /// 
        /// Searches for summary information about workflows.
        /// 
        /// Container for the necessary parameters to execute the SearchFlowTemplates service method.
        /// 
        /// The response from the SearchFlowTemplates service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for SearchFlowTemplates Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchFlowTemplatesResponse SearchFlowTemplates(SearchFlowTemplatesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchFlowTemplatesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchFlowTemplatesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SearchFlowTemplates operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchFlowTemplates operation on AmazonIoTThingsGraphClient.
        /// 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 EndSearchFlowTemplates
        ///         operation.
        /// REST API Reference for SearchFlowTemplates Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginSearchFlowTemplates(SearchFlowTemplatesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchFlowTemplatesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchFlowTemplatesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SearchFlowTemplates operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSearchFlowTemplates.
        /// 
        /// Returns a  SearchFlowTemplatesResult from IoTThingsGraph.
        /// REST API Reference for SearchFlowTemplates Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchFlowTemplatesResponse EndSearchFlowTemplates(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SearchSystemInstances
        /// 
        /// Searches for system instances in the user's account.
        /// 
        /// Container for the necessary parameters to execute the SearchSystemInstances service method.
        /// 
        /// The response from the SearchSystemInstances service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for SearchSystemInstances Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchSystemInstancesResponse SearchSystemInstances(SearchSystemInstancesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchSystemInstancesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchSystemInstancesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SearchSystemInstances operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchSystemInstances operation on AmazonIoTThingsGraphClient.
        /// 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 EndSearchSystemInstances
        ///         operation.
        /// REST API Reference for SearchSystemInstances Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginSearchSystemInstances(SearchSystemInstancesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchSystemInstancesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchSystemInstancesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SearchSystemInstances operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSearchSystemInstances.
        /// 
        /// Returns a  SearchSystemInstancesResult from IoTThingsGraph.
        /// REST API Reference for SearchSystemInstances Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchSystemInstancesResponse EndSearchSystemInstances(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SearchSystemTemplates
        /// 
        /// Searches for summary information about systems in the user's account. You can filter
        /// by the ID of a workflow to return only systems that use the specified workflow.
        /// 
        /// Container for the necessary parameters to execute the SearchSystemTemplates service method.
        /// 
        /// The response from the SearchSystemTemplates service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for SearchSystemTemplates Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchSystemTemplatesResponse SearchSystemTemplates(SearchSystemTemplatesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchSystemTemplatesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchSystemTemplatesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SearchSystemTemplates operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchSystemTemplates operation on AmazonIoTThingsGraphClient.
        /// 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 EndSearchSystemTemplates
        ///         operation.
        /// REST API Reference for SearchSystemTemplates Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginSearchSystemTemplates(SearchSystemTemplatesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchSystemTemplatesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchSystemTemplatesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SearchSystemTemplates operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSearchSystemTemplates.
        /// 
        /// Returns a  SearchSystemTemplatesResult from IoTThingsGraph.
        /// REST API Reference for SearchSystemTemplates Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchSystemTemplatesResponse EndSearchSystemTemplates(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SearchThings
        /// 
        /// Searches for things associated with the specified entity. You can search by both device
        /// and device model.
        /// 
        ///  
        /// 
        /// For example, if two different devices, camera1 and camera2, implement the camera device
        /// model, the user can associate thing1 to camera1 and thing2 to camera2. SearchThings(camera2)
        /// will return only thing2, but SearchThings(camera) will return both thing1
        /// and thing2.
        /// 
        ///  
        /// 
        /// This action searches for exact matches and doesn't perform partial text matching.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchThings service method.
        /// 
        /// The response from the SearchThings service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for SearchThings Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchThingsResponse SearchThings(SearchThingsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchThingsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchThingsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SearchThings operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SearchThings operation on AmazonIoTThingsGraphClient.
        /// 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 EndSearchThings
        ///         operation.
        /// REST API Reference for SearchThings Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginSearchThings(SearchThingsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SearchThingsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SearchThingsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SearchThings operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSearchThings.
        /// 
        /// Returns a  SearchThingsResult from IoTThingsGraph.
        /// REST API Reference for SearchThings Operation
        [Obsolete("since: 2022-08-30")]
        public virtual SearchThingsResponse EndSearchThings(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TagResource
        /// 
        /// Creates a tag for the specified resource.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for TagResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual TagResourceResponse TagResource(TagResourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = TagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = TagResourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the TagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource operation on AmazonIoTThingsGraphClient.
        /// 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 EndTagResource
        ///         operation.
        /// REST API Reference for TagResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginTagResource(TagResourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = TagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = TagResourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  TagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginTagResource.
        /// 
        /// Returns a  TagResourceResult from IoTThingsGraph.
        /// REST API Reference for TagResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual TagResourceResponse EndTagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UndeploySystemInstance
        /// 
        /// Removes a system instance from its target (Cloud or Greengrass).
        /// 
        /// Container for the necessary parameters to execute the UndeploySystemInstance service method.
        /// 
        /// The response from the UndeploySystemInstance service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for UndeploySystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UndeploySystemInstanceResponse UndeploySystemInstance(UndeploySystemInstanceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UndeploySystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UndeploySystemInstanceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UndeploySystemInstance operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UndeploySystemInstance operation on AmazonIoTThingsGraphClient.
        /// 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 EndUndeploySystemInstance
        ///         operation.
        /// REST API Reference for UndeploySystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginUndeploySystemInstance(UndeploySystemInstanceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UndeploySystemInstanceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UndeploySystemInstanceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UndeploySystemInstance operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUndeploySystemInstance.
        /// 
        /// Returns a  UndeploySystemInstanceResult from IoTThingsGraph.
        /// REST API Reference for UndeploySystemInstance Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UndeploySystemInstanceResponse EndUndeploySystemInstance(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes a tag from the specified resource.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for UntagResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UntagResourceResponse UntagResource(UntagResourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UntagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UntagResourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UntagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UntagResource operation on AmazonIoTThingsGraphClient.
        /// 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 EndUntagResource
        ///         operation.
        /// REST API Reference for UntagResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginUntagResource(UntagResourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UntagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UntagResourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UntagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUntagResource.
        /// 
        /// Returns a  UntagResourceResult from IoTThingsGraph.
        /// REST API Reference for UntagResource Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UntagResourceResponse EndUntagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateFlowTemplate
        /// 
        /// Updates the specified workflow. All deployed systems and system instances that use
        /// the workflow will see the changes in the flow when it is redeployed. If you don't
        /// want this behavior, copy the workflow (creating a new workflow with a different ID),
        /// and update the copy. The workflow can contain only entities in the specified namespace.
        /// 
        /// Container for the necessary parameters to execute the UpdateFlowTemplate service method.
        /// 
        /// The response from the UpdateFlowTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for UpdateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UpdateFlowTemplateResponse UpdateFlowTemplate(UpdateFlowTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateFlowTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateFlowTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateFlowTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndUpdateFlowTemplate
        ///         operation.
        /// REST API Reference for UpdateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginUpdateFlowTemplate(UpdateFlowTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateFlowTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateFlowTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateFlowTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateFlowTemplate.
        /// 
        /// Returns a  UpdateFlowTemplateResult from IoTThingsGraph.
        /// REST API Reference for UpdateFlowTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UpdateFlowTemplateResponse EndUpdateFlowTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateSystemTemplate
        /// 
        /// Updates the specified system. You don't need to run this action after updating a workflow.
        /// Any deployment that uses the system will see the changes in the system when it is
        /// redeployed.
        /// 
        /// Container for the necessary parameters to execute the UpdateSystemTemplate service method.
        /// 
        /// The response from the UpdateSystemTemplate service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for UpdateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UpdateSystemTemplateResponse UpdateSystemTemplate(UpdateSystemTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSystemTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateSystemTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateSystemTemplate operation on AmazonIoTThingsGraphClient.
        /// 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 EndUpdateSystemTemplate
        ///         operation.
        /// REST API Reference for UpdateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginUpdateSystemTemplate(UpdateSystemTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSystemTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSystemTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateSystemTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateSystemTemplate.
        /// 
        /// Returns a  UpdateSystemTemplateResult from IoTThingsGraph.
        /// REST API Reference for UpdateSystemTemplate Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UpdateSystemTemplateResponse EndUpdateSystemTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UploadEntityDefinitions
        /// 
        /// Asynchronously uploads one or more entity definitions to the user's namespace. The
        /// document parameter is required if syncWithPublicNamespace
        /// and deleteExistingEntites are false. If the syncWithPublicNamespace
        /// parameter is set to true, the user's namespace will synchronize with
        /// the latest version of the public namespace. If deprecateExistingEntities
        /// is set to true, all entities in the latest version will be deleted before the new
        /// DefinitionDocument is uploaded.
        /// 
        ///  
        /// 
        /// When a user uploads entity definitions for the first time, the service creates a new
        /// namespace for the user. The new namespace tracks the public namespace. Currently users
        /// can have only one namespace. The namespace version increments whenever a user uploads
        /// entity definitions that are backwards-incompatible and whenever a user sets the syncWithPublicNamespace
        /// parameter or the deprecateExistingEntities parameter to true.
        /// 
        ///  
        /// 
        /// The IDs for all of the entities should be in URN format. Each entity must be in the
        /// user's namespace. Users can't create entities in the public namespace, but entity
        /// definitions can refer to entities in the public namespace.
        /// 
        ///  
        /// 
        /// Valid entities are Device, DeviceModel, Service,
        /// Capability, State, Action, Event,
        /// Property, Mapping, Enum. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the UploadEntityDefinitions service method.
        /// 
        /// The response from the UploadEntityDefinitions service method, as returned by IoTThingsGraph.
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// REST API Reference for UploadEntityDefinitions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UploadEntityDefinitionsResponse UploadEntityDefinitions(UploadEntityDefinitionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UploadEntityDefinitionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UploadEntityDefinitionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UploadEntityDefinitions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UploadEntityDefinitions operation on AmazonIoTThingsGraphClient.
        /// 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 EndUploadEntityDefinitions
        ///         operation.
        /// REST API Reference for UploadEntityDefinitions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual IAsyncResult BeginUploadEntityDefinitions(UploadEntityDefinitionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UploadEntityDefinitionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UploadEntityDefinitionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UploadEntityDefinitions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUploadEntityDefinitions.
        /// 
        /// Returns a  UploadEntityDefinitionsResult from IoTThingsGraph.
        /// REST API Reference for UploadEntityDefinitions Operation
        [Obsolete("since: 2022-08-30")]
        public virtual UploadEntityDefinitionsResponse EndUploadEntityDefinitions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
    }
}