/// <summary>
        /// The host to be deleted. Before you delete a host, all connections associated to the
        /// host must be deleted.
        /// 
        ///  <note> 
        /// <para>
        /// A host cannot be deleted if it is in the VPC_CONFIG_INITIALIZING or VPC_CONFIG_DELETING
        /// state.
        /// </para>
        ///  </note>
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the DeleteHost service method.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// 
        /// <returns>The response from the DeleteHost service method, as returned by CodeStarconnections.</returns>
        /// <exception cref="Amazon.CodeStarconnections.Model.ResourceNotFoundException">
        /// Resource not found. Verify the connection resource ARN and try again.
        /// </exception>
        /// <exception cref="Amazon.CodeStarconnections.Model.ResourceUnavailableException">
        /// Resource not found. Verify the ARN for the host resource and try again.
        /// </exception>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteHost">REST API Reference for DeleteHost Operation</seealso>
        public virtual Task<DeleteHostResponse> DeleteHostAsync(DeleteHostRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteHostRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteHostResponseUnmarshaller.Instance;

            return InvokeAsync<DeleteHostResponse>(request, options, cancellationToken);
        }
        internal virtual DeleteHostResponse DeleteHost(DeleteHostRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteHostRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteHostResponseUnmarshaller.Instance;

            return Invoke<DeleteHostResponse>(request, options);
        }