/*
 * 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 opsworkscm-2016-11-01.normal.json service model.
 */
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.OpsWorksCM.Model;
namespace Amazon.OpsWorksCM
{
    /// 
    /// Interface for accessing OpsWorksCM
    ///
    /// AWS OpsWorks CM 
    /// 
    /// AWS OpsWorks for configuration management (CM) is a service that runs and manages
    /// configuration management servers. You can use AWS OpsWorks CM to create and manage
    /// AWS OpsWorks for Chef Automate and AWS OpsWorks for Puppet Enterprise servers, and
    /// add or remove nodes for the servers to manage.
    /// 
    ///  
    /// 
    ///  Glossary of terms 
    /// 
    ///   -  
    /// 
    ///  Server: A configuration management server that can be highly-available. The
    /// configuration management server runs on an Amazon Elastic Compute Cloud (EC2) instance,
    /// and may use various other AWS services, such as Amazon Relational Database Service
    /// (RDS) and Elastic Load Balancing. A server is a generic abstraction over the configuration
    /// manager that you want to use, much like Amazon RDS. In AWS OpsWorks CM, you do not
    /// start or stop servers. After you create servers, they continue to run until they are
    /// deleted.
    /// 
    ///  
-  
    /// 
    ///  Engine: The engine is the specific configuration manager that you want to
    /// use. Valid values in this release include ChefAutomateandPuppet.
    /// 
    ///
-  
    /// 
    ///  Backup: This is an application-level backup of the data that the configuration
    /// manager stores. AWS OpsWorks CM creates an S3 bucket for backups when you launch the
    /// first server. A backup maintains a snapshot of a server's configuration-related attributes
    /// at the time the backup starts.
    /// 
    ///  
-  
    /// 
    ///  Events: Events are always related to a server. Events are written during server
    /// creation, when health checks run, when backups are created, when system maintenance
    /// is performed, etc. When you delete a server, the server's events are also deleted.
    /// 
    ///  
-  
    /// 
    ///  Account attributes: Every account has attributes that are assigned in the
    /// AWS OpsWorks CM database. These attributes store information about configuration limits
    /// (servers, backups, etc.) and your customer account. 
    /// 
    ///  
/// 
    ///  Endpoints 
    /// 
    ///  
    /// 
    /// AWS OpsWorks CM supports the following endpoints, all HTTPS. You must connect to one
    /// of the following endpoints. Your servers can only be accessed or managed within the
    /// endpoint in which they are created.
    /// 
    /// -  
    /// 
    /// opsworks-cm.us-east-1.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.us-east-2.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.us-west-1.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.us-west-2.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.ap-northeast-1.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.ap-southeast-1.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.ap-southeast-2.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.eu-central-1.amazonaws.com
    /// 
    ///  
-  
    /// 
    /// opsworks-cm.eu-west-1.amazonaws.com
    /// 
    ///  
/// 
    /// For more information, see AWS
    /// OpsWorks endpoints and quotas in the AWS General Reference.
    /// 
    ///  
    /// 
    ///  Throttling limits 
    /// 
    ///  
    /// 
    /// All API operations allow for five requests per second with a burst of 10 requests
    /// per second.
    /// 
    /// 
    public partial interface IAmazonOpsWorksCM : IAmazonService, IDisposable
    {
        /// 
        /// Paginators for the service
        /// 
        IOpsWorksCMPaginatorFactory Paginators { get; }
        
        #region  AssociateNode
        /// 
        /// Associates a new node with the server. For more information about how to disassociate
        /// a node, see DisassociateNode.
        /// 
        ///  
        /// 
        ///  On a Chef server: This command is an alternative toknife bootstrap.
        /// 
        ///  
        /// 
        ///  Example (Chef): aws opsworks-cm associate-node --server-name MyServer
        /// --node-name MyManagedNode --engine-attributes "Name=CHEF_ORGANIZATION,Value=default"
        /// "Name=CHEF_NODE_PUBLIC_KEY,Value=public-key-pem" 
        /// 
        ///  
        /// 
        ///  On a Puppet server, this command is an alternative to the puppet cert sign
        /// command that signs a Puppet node CSR. 
        /// 
        ///  
        /// 
        ///  Example (Puppet): aws opsworks-cm associate-node --server-name MyServer
        /// --node-name MyManagedNode --engine-attributes "Name=PUPPET_NODE_CSR,Value=csr-pem"
        /// 
        /// 
        ///  
        /// 
        ///  A node can can only be associated with servers that are in a HEALTHY
        /// state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. The AssociateNode API call can be integrated
        /// into Auto Scaling configurations, AWS Cloudformation templates, or the user data of
        /// a server's instance. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateNode service method.
        /// 
        /// The response from the AssociateNode service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for AssociateNode Operation
        AssociateNodeResponse AssociateNode(AssociateNodeRequest request);
        /// 
        /// Associates a new node with the server. For more information about how to disassociate
        /// a node, see DisassociateNode.
        /// 
        ///  
        /// 
        ///  On a Chef server: This command is an alternative to knife bootstrap.
        /// 
        ///  
        /// 
        ///  Example (Chef): aws opsworks-cm associate-node --server-name MyServer
        /// --node-name MyManagedNode --engine-attributes "Name=CHEF_ORGANIZATION,Value=default"
        /// "Name=CHEF_NODE_PUBLIC_KEY,Value=public-key-pem" 
        /// 
        ///  
        /// 
        ///  On a Puppet server, this command is an alternative to the puppet cert sign
        /// command that signs a Puppet node CSR. 
        /// 
        ///  
        /// 
        ///  Example (Puppet): aws opsworks-cm associate-node --server-name MyServer
        /// --node-name MyManagedNode --engine-attributes "Name=PUPPET_NODE_CSR,Value=csr-pem"
        /// 
        /// 
        ///  
        /// 
        ///  A node can can only be associated with servers that are in a HEALTHY
        /// state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. The AssociateNode API call can be integrated
        /// into Auto Scaling configurations, AWS Cloudformation templates, or the user data of
        /// a server's instance. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateNode service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the AssociateNode service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for AssociateNode Operation
        Task AssociateNodeAsync(AssociateNodeRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  CreateBackup
        /// 
        /// Creates an application-level backup of a server. While the server is in the BACKING_UP
        /// state, the server cannot be changed, and no additional backup can be created. 
        /// 
        ///  
        /// 
        ///  Backups can be created for servers in RUNNING, HEALTHY,
        /// and UNHEALTHY states. By default, you can create a maximum of 50 manual
        /// backups. 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  A LimitExceededException is thrown when the maximum number of manual
        /// backups is reached. An InvalidStateException is thrown when the server
        /// is not in any of the following states: RUNNING, HEALTHY, or UNHEALTHY. A ResourceNotFoundException
        /// is thrown when the server is not found. A ValidationException is thrown
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateBackup service method.
        /// 
        /// The response from the CreateBackup service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The limit of servers or backups has been reached.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for CreateBackup Operation
        CreateBackupResponse CreateBackup(CreateBackupRequest request);
        /// 
        /// Creates an application-level backup of a server. While the server is in the BACKING_UP
        /// state, the server cannot be changed, and no additional backup can be created. 
        /// 
        ///  
        /// 
        ///  Backups can be created for servers in RUNNING, HEALTHY,
        /// and UNHEALTHY states. By default, you can create a maximum of 50 manual
        /// backups. 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  A LimitExceededException is thrown when the maximum number of manual
        /// backups is reached. An InvalidStateException is thrown when the server
        /// is not in any of the following states: RUNNING, HEALTHY, or UNHEALTHY. A ResourceNotFoundException
        /// is thrown when the server is not found. A ValidationException is thrown
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateBackup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateBackup service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The limit of servers or backups has been reached.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for CreateBackup Operation
        Task CreateBackupAsync(CreateBackupRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  CreateServer
        /// 
        /// Creates and immedately starts a new server. The server is ready to use when it is
        /// in the HEALTHY state. By default, you can create a maximum of 10 servers.
        /// 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  A LimitExceededException is thrown when you have created the maximum
        /// number of servers (10). A ResourceAlreadyExistsException is thrown when
        /// a server with the same name already exists in the account. A ResourceNotFoundException
        /// is thrown when you specify a backup ID that is not valid or is for a backup that does
        /// not exist. A ValidationException is thrown when parameters of the request
        /// are not valid. 
        /// 
        ///  
        /// 
        ///  If you do not specify a security group by adding the SecurityGroupIds
        /// parameter, AWS OpsWorks creates a new security group. 
        /// 
        ///  
        /// 
        ///  Chef Automate: The default security group opens the Chef server to the world
        /// on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is
        /// also open to the world on TCP port 22. 
        /// 
        ///  
        /// 
        ///  Puppet Enterprise: The default security group opens TCP ports 22, 443, 4433,
        /// 8140, 8142, 8143, and 8170. If a KeyName is present, AWS OpsWorks enables SSH access.
        /// SSH is also open to the world on TCP port 22. 
        /// 
        ///  
        /// 
        /// By default, your server is accessible from any IP address. We recommend that you update
        /// your security group rules to allow access from known IP addresses and address ranges
        /// only. To edit security group rules, open Security Groups in the navigation pane of
        /// the EC2 management console. 
        /// 
        ///  
        /// 
        /// To specify your own domain for a server, and provide your own self-signed or CA-signed
        /// certificate and private key, specify values for CustomDomain, CustomCertificate,
        /// and CustomPrivateKey.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateServer service method.
        /// 
        /// The response from the CreateServer service method, as returned by OpsWorksCM.
        /// 
        /// The limit of servers or backups has been reached.
        /// 
        /// 
        /// The requested resource cannot be created because it already exists.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for CreateServer Operation
        CreateServerResponse CreateServer(CreateServerRequest request);
        /// 
        /// Creates and immedately starts a new server. The server is ready to use when it is
        /// in the HEALTHY state. By default, you can create a maximum of 10 servers.
        /// 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  A LimitExceededException is thrown when you have created the maximum
        /// number of servers (10). A ResourceAlreadyExistsException is thrown when
        /// a server with the same name already exists in the account. A ResourceNotFoundException
        /// is thrown when you specify a backup ID that is not valid or is for a backup that does
        /// not exist. A ValidationException is thrown when parameters of the request
        /// are not valid. 
        /// 
        ///  
        /// 
        ///  If you do not specify a security group by adding the SecurityGroupIds
        /// parameter, AWS OpsWorks creates a new security group. 
        /// 
        ///  
        /// 
        ///  Chef Automate: The default security group opens the Chef server to the world
        /// on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is
        /// also open to the world on TCP port 22. 
        /// 
        ///  
        /// 
        ///  Puppet Enterprise: The default security group opens TCP ports 22, 443, 4433,
        /// 8140, 8142, 8143, and 8170. If a KeyName is present, AWS OpsWorks enables SSH access.
        /// SSH is also open to the world on TCP port 22. 
        /// 
        ///  
        /// 
        /// By default, your server is accessible from any IP address. We recommend that you update
        /// your security group rules to allow access from known IP addresses and address ranges
        /// only. To edit security group rules, open Security Groups in the navigation pane of
        /// the EC2 management console. 
        /// 
        ///  
        /// 
        /// To specify your own domain for a server, and provide your own self-signed or CA-signed
        /// certificate and private key, specify values for CustomDomain, CustomCertificate,
        /// and CustomPrivateKey.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateServer service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateServer service method, as returned by OpsWorksCM.
        /// 
        /// The limit of servers or backups has been reached.
        /// 
        /// 
        /// The requested resource cannot be created because it already exists.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for CreateServer Operation
        Task CreateServerAsync(CreateServerRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteBackup
        /// 
        /// Deletes a backup. You can delete both manual and automated backups. This operation
        /// is asynchronous. 
        /// 
        ///  
        /// 
        ///  An InvalidStateException is thrown when a backup deletion is already
        /// in progress. A ResourceNotFoundException is thrown when the backup does
        /// not exist. A ValidationException is thrown when parameters of the request
        /// are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteBackup service method.
        /// 
        /// The response from the DeleteBackup service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DeleteBackup Operation
        DeleteBackupResponse DeleteBackup(DeleteBackupRequest request);
        /// 
        /// Deletes a backup. You can delete both manual and automated backups. This operation
        /// is asynchronous. 
        /// 
        ///  
        /// 
        ///  An InvalidStateException is thrown when a backup deletion is already
        /// in progress. A ResourceNotFoundException is thrown when the backup does
        /// not exist. A ValidationException is thrown when parameters of the request
        /// are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteBackup service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteBackup service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DeleteBackup Operation
        Task DeleteBackupAsync(DeleteBackupRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteServer
        /// 
        /// Deletes the server and the underlying AWS CloudFormation stacks (including the server's
        /// EC2 instance). When you run this command, the server state is updated to DELETING.
        /// After the server is deleted, it is no longer returned by DescribeServer
        /// requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be
        /// deleted. 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  An InvalidStateException is thrown when a server deletion is already
        /// in progress. A ResourceNotFoundException is thrown when the server does
        /// not exist. A ValidationException is raised when parameters of the request
        /// are not valid. 
        /// 
        ///  
        /// 
        ///  
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteServer service method.
        /// 
        /// The response from the DeleteServer service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DeleteServer Operation
        DeleteServerResponse DeleteServer(DeleteServerRequest request);
        /// 
        /// Deletes the server and the underlying AWS CloudFormation stacks (including the server's
        /// EC2 instance). When you run this command, the server state is updated to DELETING.
        /// After the server is deleted, it is no longer returned by DescribeServer
        /// requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be
        /// deleted. 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  An InvalidStateException is thrown when a server deletion is already
        /// in progress. A ResourceNotFoundException is thrown when the server does
        /// not exist. A ValidationException is raised when parameters of the request
        /// are not valid. 
        /// 
        ///  
        /// 
        ///  
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteServer service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteServer service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DeleteServer Operation
        Task DeleteServerAsync(DeleteServerRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeAccountAttributes
        /// 
        /// Describes your OpsWorks-CM account attributes. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAccountAttributes service method.
        /// 
        /// The response from the DescribeAccountAttributes service method, as returned by OpsWorksCM.
        /// REST API Reference for DescribeAccountAttributes Operation
        DescribeAccountAttributesResponse DescribeAccountAttributes(DescribeAccountAttributesRequest request);
        /// 
        /// Describes your OpsWorks-CM account attributes. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAccountAttributes service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeAccountAttributes service method, as returned by OpsWorksCM.
        /// REST API Reference for DescribeAccountAttributes Operation
        Task DescribeAccountAttributesAsync(DescribeAccountAttributesRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeBackups
        /// 
        /// Describes backups. The results are ordered by time, with newest backups first. If
        /// you do not specify a BackupId or ServerName, the command returns all backups. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when the backup does not exist.
        /// A ValidationException is raised when parameters of the request are not
        /// valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeBackups service method.
        /// 
        /// The response from the DescribeBackups service method, as returned by OpsWorksCM.
        /// 
        /// This occurs when the provided nextToken is not valid.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeBackups Operation
        DescribeBackupsResponse DescribeBackups(DescribeBackupsRequest request);
        /// 
        /// Describes backups. The results are ordered by time, with newest backups first. If
        /// you do not specify a BackupId or ServerName, the command returns all backups. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when the backup does not exist.
        /// A ValidationException is raised when parameters of the request are not
        /// valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeBackups service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeBackups service method, as returned by OpsWorksCM.
        /// 
        /// This occurs when the provided nextToken is not valid.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeBackups Operation
        Task DescribeBackupsAsync(DescribeBackupsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeEvents
        /// 
        /// Describes events for a specified server. Results are ordered by time, with newest
        /// events first. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when the server does not exist.
        /// A ValidationException is raised when parameters of the request are not
        /// valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeEvents service method.
        /// 
        /// The response from the DescribeEvents service method, as returned by OpsWorksCM.
        /// 
        /// This occurs when the provided nextToken is not valid.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeEvents Operation
        DescribeEventsResponse DescribeEvents(DescribeEventsRequest request);
        /// 
        /// Describes events for a specified server. Results are ordered by time, with newest
        /// events first. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when the server does not exist.
        /// A ValidationException is raised when parameters of the request are not
        /// valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeEvents service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeEvents service method, as returned by OpsWorksCM.
        /// 
        /// This occurs when the provided nextToken is not valid.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeEvents Operation
        Task DescribeEventsAsync(DescribeEventsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeNodeAssociationStatus
        /// 
        /// Returns the current status of an existing association or disassociation request.
        /// 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when no recent association or
        /// disassociation request with the specified token is found, or when the server does
        /// not exist. A ValidationException is raised when parameters of the request
        /// are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeNodeAssociationStatus service method.
        /// 
        /// The response from the DescribeNodeAssociationStatus service method, as returned by OpsWorksCM.
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeNodeAssociationStatus Operation
        DescribeNodeAssociationStatusResponse DescribeNodeAssociationStatus(DescribeNodeAssociationStatusRequest request);
        /// 
        /// Returns the current status of an existing association or disassociation request.
        /// 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when no recent association or
        /// disassociation request with the specified token is found, or when the server does
        /// not exist. A ValidationException is raised when parameters of the request
        /// are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeNodeAssociationStatus service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeNodeAssociationStatus service method, as returned by OpsWorksCM.
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeNodeAssociationStatus Operation
        Task DescribeNodeAssociationStatusAsync(DescribeNodeAssociationStatusRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeServers
        /// 
        /// Lists all configuration management servers that are identified with your account.
        /// Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks CM does not
        /// query other services. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when the server does not exist.
        /// A ValidationException is raised when parameters of the request are not
        /// valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeServers service method.
        /// 
        /// The response from the DescribeServers service method, as returned by OpsWorksCM.
        /// 
        /// This occurs when the provided nextToken is not valid.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeServers Operation
        DescribeServersResponse DescribeServers(DescribeServersRequest request);
        /// 
        /// Lists all configuration management servers that are identified with your account.
        /// Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks CM does not
        /// query other services. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ResourceNotFoundException is thrown when the server does not exist.
        /// A ValidationException is raised when parameters of the request are not
        /// valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeServers service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeServers service method, as returned by OpsWorksCM.
        /// 
        /// This occurs when the provided nextToken is not valid.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DescribeServers Operation
        Task DescribeServersAsync(DescribeServersRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DisassociateNode
        /// 
        /// Disassociates a node from an AWS OpsWorks CM server, and removes the node from the
        /// server's managed nodes. After a node is disassociated, the node key pair is no longer
        /// valid for accessing the configuration manager's API. For more information about how
        /// to associate a node, see AssociateNode. 
        /// 
        ///  
        /// 
        /// A node can can only be disassociated from a server that is in a HEALTHY
        /// state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisassociateNode service method.
        /// 
        /// The response from the DisassociateNode service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DisassociateNode Operation
        DisassociateNodeResponse DisassociateNode(DisassociateNodeRequest request);
        /// 
        /// Disassociates a node from an AWS OpsWorks CM server, and removes the node from the
        /// server's managed nodes. After a node is disassociated, the node key pair is no longer
        /// valid for accessing the configuration manager's API. For more information about how
        /// to associate a node, see AssociateNode. 
        /// 
        ///  
        /// 
        /// A node can can only be disassociated from a server that is in a HEALTHY
        /// state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisassociateNode service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DisassociateNode service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for DisassociateNode Operation
        Task DisassociateNodeAsync(DisassociateNodeRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ExportServerEngineAttribute
        /// 
        /// Exports a specified server engine attribute as a base64-encoded string. For example,
        /// you can export user data that you can use in EC2 to associate nodes with a server.
        /// 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ValidationException is raised when parameters of the request are not
        /// valid. A ResourceNotFoundException is thrown when the server does not
        /// exist. An InvalidStateException is thrown when the server is in any of
        /// the following states: CREATING, TERMINATED, FAILED or DELETING. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ExportServerEngineAttribute service method.
        /// 
        /// The response from the ExportServerEngineAttribute service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for ExportServerEngineAttribute Operation
        ExportServerEngineAttributeResponse ExportServerEngineAttribute(ExportServerEngineAttributeRequest request);
        /// 
        /// Exports a specified server engine attribute as a base64-encoded string. For example,
        /// you can export user data that you can use in EC2 to associate nodes with a server.
        /// 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        ///  
        /// 
        ///  A ValidationException is raised when parameters of the request are not
        /// valid. A ResourceNotFoundException is thrown when the server does not
        /// exist. An InvalidStateException is thrown when the server is in any of
        /// the following states: CREATING, TERMINATED, FAILED or DELETING. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ExportServerEngineAttribute service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ExportServerEngineAttribute service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for ExportServerEngineAttribute Operation
        Task ExportServerEngineAttributeAsync(ExportServerEngineAttributeRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Returns a list of tags that are applied to the specified AWS OpsWorks for Chef Automate
        /// or AWS OpsWorks for Puppet Enterprise servers or backups.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by OpsWorksCM.
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request);
        /// 
        /// Returns a list of tags that are applied to the specified AWS OpsWorks for Chef Automate
        /// or AWS OpsWorks for Puppet Enterprise servers or backups.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListTagsForResource service method, as returned by OpsWorksCM.
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        Task ListTagsForResourceAsync(ListTagsForResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  RestoreServer
        /// 
        /// Restores a backup to a server that is in a CONNECTION_LOST, HEALTHY,
        /// RUNNING, UNHEALTHY, or TERMINATED state. When
        /// you run RestoreServer, the server's EC2 instance is deleted, and a new EC2 instance
        /// is configured. RestoreServer maintains the existing server endpoint, so configuration
        /// management of the server's client devices (nodes) should continue to work. 
        /// 
        ///  
        /// 
        /// Restoring from a backup is performed by creating a new EC2 instance. If restoration
        /// is successful, and the server is in a HEALTHY state, AWS OpsWorks CM
        /// switches traffic over to the new instance. After restoration is finished, the old
        /// EC2 instance is maintained in a Running or Stopped state,
        /// but is eventually terminated.
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  An InvalidStateException is thrown when the server is not in a valid
        /// state. A ResourceNotFoundException is thrown when the server does not
        /// exist. A ValidationException is raised when parameters of the request
        /// are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the RestoreServer service method.
        /// 
        /// The response from the RestoreServer service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for RestoreServer Operation
        RestoreServerResponse RestoreServer(RestoreServerRequest request);
        /// 
        /// Restores a backup to a server that is in a CONNECTION_LOST, HEALTHY,
        /// RUNNING, UNHEALTHY, or TERMINATED state. When
        /// you run RestoreServer, the server's EC2 instance is deleted, and a new EC2 instance
        /// is configured. RestoreServer maintains the existing server endpoint, so configuration
        /// management of the server's client devices (nodes) should continue to work. 
        /// 
        ///  
        /// 
        /// Restoring from a backup is performed by creating a new EC2 instance. If restoration
        /// is successful, and the server is in a HEALTHY state, AWS OpsWorks CM
        /// switches traffic over to the new instance. After restoration is finished, the old
        /// EC2 instance is maintained in a Running or Stopped state,
        /// but is eventually terminated.
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  An InvalidStateException is thrown when the server is not in a valid
        /// state. A ResourceNotFoundException is thrown when the server does not
        /// exist. A ValidationException is raised when parameters of the request
        /// are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the RestoreServer service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the RestoreServer service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for RestoreServer Operation
        Task RestoreServerAsync(RestoreServerRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  StartMaintenance
        /// 
        /// Manually starts server maintenance. This command can be useful if an earlier maintenance
        /// attempt failed, and the underlying cause of maintenance failure has been resolved.
        /// The server is in an UNDER_MAINTENANCE state while maintenance is in progress.
        /// 
        /// 
        ///  
        /// 
        ///  Maintenance can only be started on servers in HEALTHY and UNHEALTHY
        /// states. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartMaintenance service method.
        /// 
        /// The response from the StartMaintenance service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for StartMaintenance Operation
        StartMaintenanceResponse StartMaintenance(StartMaintenanceRequest request);
        /// 
        /// Manually starts server maintenance. This command can be useful if an earlier maintenance
        /// attempt failed, and the underlying cause of maintenance failure has been resolved.
        /// The server is in an UNDER_MAINTENANCE state while maintenance is in progress.
        /// 
        /// 
        ///  
        /// 
        ///  Maintenance can only be started on servers in HEALTHY and UNHEALTHY
        /// states. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartMaintenance service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the StartMaintenance service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for StartMaintenance Operation
        Task StartMaintenanceAsync(StartMaintenanceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  TagResource
        /// 
        /// Applies tags to an AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet Enterprise
        /// server, or to server backups.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for TagResource Operation
        TagResourceResponse TagResource(TagResourceRequest request);
        /// 
        /// Applies tags to an AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet Enterprise
        /// server, or to server backups.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the TagResource service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for TagResource Operation
        Task TagResourceAsync(TagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes specified tags from an AWS OpsWorks-CM server or backup.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse UntagResource(UntagResourceRequest request);
        /// 
        /// Removes specified tags from an AWS OpsWorks-CM server or backup.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UntagResource service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for UntagResource Operation
        Task UntagResourceAsync(UntagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UpdateServer
        /// 
        /// Updates settings for a server. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateServer service method.
        /// 
        /// The response from the UpdateServer service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for UpdateServer Operation
        UpdateServerResponse UpdateServer(UpdateServerRequest request);
        /// 
        /// Updates settings for a server. 
        /// 
        ///  
        /// 
        ///  This operation is synchronous. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateServer service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateServer service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for UpdateServer Operation
        Task UpdateServerAsync(UpdateServerRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UpdateServerEngineAttributes
        /// 
        /// Updates engine-specific attributes on a specified server. The server enters the MODIFYING
        /// state when this operation is in progress. Only one update can occur at a time. You
        /// can use this command to reset a Chef server's public key (CHEF_PIVOTAL_KEY)
        /// or a Puppet server's admin password (PUPPET_ADMIN_PASSWORD). 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  This operation can only be called for servers in HEALTHY or UNHEALTHY
        /// states. Otherwise, an InvalidStateException is raised. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateServerEngineAttributes service method.
        /// 
        /// The response from the UpdateServerEngineAttributes service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for UpdateServerEngineAttributes Operation
        UpdateServerEngineAttributesResponse UpdateServerEngineAttributes(UpdateServerEngineAttributesRequest request);
        /// 
        /// Updates engine-specific attributes on a specified server. The server enters the MODIFYING
        /// state when this operation is in progress. Only one update can occur at a time. You
        /// can use this command to reset a Chef server's public key (CHEF_PIVOTAL_KEY)
        /// or a Puppet server's admin password (PUPPET_ADMIN_PASSWORD). 
        /// 
        ///  
        /// 
        ///  This operation is asynchronous. 
        /// 
        ///  
        /// 
        ///  This operation can only be called for servers in HEALTHY or UNHEALTHY
        /// states. Otherwise, an InvalidStateException is raised. A ResourceNotFoundException
        /// is thrown when the server does not exist. A ValidationException is raised
        /// when parameters of the request are not valid. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateServerEngineAttributes service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateServerEngineAttributes service method, as returned by OpsWorksCM.
        /// 
        /// The resource is in a state that does not allow you to perform a specified action.
        /// 
        /// 
        /// The requested resource does not exist, or access was denied.
        /// 
        /// 
        /// One or more of the provided request parameters are not valid.
        /// 
        /// REST API Reference for UpdateServerEngineAttributes Operation
        Task UpdateServerEngineAttributesAsync(UpdateServerEngineAttributesRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
    }
}