text:
namespace Microsoft.Azure.Management.AppPlatform
{
    using Microsoft.Rest;
    using Microsoft.Rest.Azure;
    using Models;
    using System.Collections;
    using System.Collections.Generic;
    using System.Threading;
    using System.Threading.Tasks;

    /// <summary>
    /// Extension methods for DeploymentsOperations.
    /// </summary>
    public static partial class DeploymentsOperationsExtensions
    {
            /// <summary>
            /// Get a Deployment and its properties.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static DeploymentResource Get(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                return operations.GetAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Get a Deployment and its properties.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<DeploymentResource> GetAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Create a new Deployment or update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the create or update operation
            /// </param>
            public static DeploymentResource CreateOrUpdate(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource)
            {
                return operations.CreateOrUpdateAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Create a new Deployment or update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the create or update operation
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<DeploymentResource> CreateOrUpdateAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Operation to delete a Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void Delete(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.DeleteAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Operation to delete a Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task DeleteAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.DeleteWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Operation to update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the update operation
            /// </param>
            public static DeploymentResource Update(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource)
            {
                return operations.UpdateAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Operation to update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the update operation
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<DeploymentResource> UpdateAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Handles requests to list all resources in an App.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='version'>
            /// Version of the deployments to be listed
            /// </param>
            public static IPage<DeploymentResource> List(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, IList<string> version = default(IList<string>))
            {
                return operations.ListAsync(resourceGroupName, serviceName, appName, version).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Handles requests to list all resources in an App.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='version'>
            /// Version of the deployments to be listed
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<IPage<DeploymentResource>> ListAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, IList<string> version = default(IList<string>), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListWithHttpMessagesAsync(resourceGroupName, serviceName, appName, version, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// List deployments for a certain service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='version'>
            /// Version of the deployments to be listed
            /// </param>
            public static IPage<DeploymentResource> ListForCluster(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, IList<string> version = default(IList<string>))
            {
                return operations.ListForClusterAsync(resourceGroupName, serviceName, version).GetAwaiter().GetResult();
            }

            /// <summary>
            /// List deployments for a certain service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='version'>
            /// Version of the deployments to be listed
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<IPage<DeploymentResource>> ListForClusterAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, IList<string> version = default(IList<string>), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListForClusterWithHttpMessagesAsync(resourceGroupName, serviceName, version, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Start the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void Start(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.StartAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Start the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task StartAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.StartWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Stop the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void Stop(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.StopAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Stop the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task StopAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.StopWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Restart the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void Restart(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.RestartAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Restart the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task RestartAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.RestartWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Get deployment log file URL
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static LogFileUrlResponse GetLogFileUrl(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                return operations.GetLogFileUrlAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Get deployment log file URL
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<LogFileUrlResponse> GetLogFileUrlAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetLogFileUrlWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Create a new Deployment or update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the create or update operation
            /// </param>
            public static DeploymentResource BeginCreateOrUpdate(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource)
            {
                return operations.BeginCreateOrUpdateAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Create a new Deployment or update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the create or update operation
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<DeploymentResource> BeginCreateOrUpdateAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Operation to delete a Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void BeginDelete(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.BeginDeleteAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Operation to delete a Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task BeginDeleteAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.BeginDeleteWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Operation to update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the update operation
            /// </param>
            public static DeploymentResource BeginUpdate(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource)
            {
                return operations.BeginUpdateAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Operation to update an exiting Deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='deploymentResource'>
            /// Parameters for the update operation
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<DeploymentResource> BeginUpdateAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, DeploymentResource deploymentResource, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, deploymentResource, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Start the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void BeginStart(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.BeginStartAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Start the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task BeginStartAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.BeginStartWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Stop the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void BeginStop(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.BeginStopAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Stop the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task BeginStopAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.BeginStopWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Restart the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            public static void BeginRestart(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName)
            {
                operations.BeginRestartAsync(resourceGroupName, serviceName, appName, deploymentName).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Restart the deployment.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='resourceGroupName'>
            /// The name of the resource group that contains the resource. You can obtain
            /// this value from the Azure Resource Manager API or the portal.
            /// </param>
            /// <param name='serviceName'>
            /// The name of the Service resource.
            /// </param>
            /// <param name='appName'>
            /// The name of the App resource.
            /// </param>
            /// <param name='deploymentName'>
            /// The name of the Deployment resource.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task BeginRestartAsync(this IDeploymentsOperations operations, string resourceGroupName, string serviceName, string appName, string deploymentName, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.BeginRestartWithHttpMessagesAsync(resourceGroupName, serviceName, appName, deploymentName, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// Handles requests to list all resources in an App.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='nextPageLink'>
            /// The NextLink from the previous successful call to List operation.
            /// </param>
            public static IPage<DeploymentResource> ListNext(this IDeploymentsOperations operations, string nextPageLink)
            {
                return operations.ListNextAsync(nextPageLink).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Handles requests to list all resources in an App.
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='nextPageLink'>
            /// The NextLink from the previous successful call to List operation.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<IPage<DeploymentResource>> ListNextAsync(this IDeploymentsOperations operations, string nextPageLink, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// List deployments for a certain service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='nextPageLink'>
            /// The NextLink from the previous successful call to List operation.
            /// </param>
            public static IPage<DeploymentResource> ListForClusterNext(this IDeploymentsOperations operations, string nextPageLink)
            {
                return operations.ListForClusterNextAsync(nextPageLink).GetAwaiter().GetResult();
            }

            /// <summary>
            /// List deployments for a certain service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='nextPageLink'>
            /// The NextLink from the previous successful call to List operation.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<IPage<DeploymentResource>> ListForClusterNextAsync(this IDeploymentsOperations operations, string nextPageLink, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListForClusterNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

    }
}


text:
POMDOG_SUPPRESS_WARNINGS_GENERATED_BY_STD_HEADERS_BEGIN
#include <cstdint>
POMDOG_SUPPRESS_WARNINGS_GENERATED_BY_STD_HEADERS_END

namespace pomdog::gui {

enum class TextAlignment : std::int8_t {
    Center,
    Left,
    Right,
};

} // namespace pomdog::gui

redpajama_set_name: RedPajamaGithub