/// <summary>
 /// Creates an instance of external child resource in-memory.
 /// </summary>
 /// <param name="name">The name of this external child resource.</param>
 /// <param name="parent">Reference to the parent of this external child resource.</param>
 /// <param name="innerObject">Reference to the inner object representing this external child resource.</param>
 /// <param name="sqlServerManager">Reference to the SQL server manager that accesses firewall rule operations.</param>
 ///GENMHASH:4E0B0BB60E793FAAF65A4FB06FF40ED6:688BEBCD488B587FB73DE2900EB69ACC
 internal SqlElasticPoolImpl(string name, SqlServerImpl parent, ElasticPoolInner innerObject, ISqlManager sqlServerManager)
     : base(innerObject, parent)
 {
     if (parent == null)
     {
         throw new ArgumentNullException("parent");
     }
     this.name              = name;
     this.sqlServerManager  = sqlServerManager ?? throw new ArgumentNullException("sqlServerManager");
     this.resourceGroupName = parent.ResourceGroupName;
     this.sqlServerName     = parent.Name;
     this.sqlServerLocation = parent.RegionName;
 }
 /// <summary>
 /// Creates a new elastic pool or updates an existing elastic pool.
 /// </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='serverName'>
 /// The name of the server.
 /// </param>
 /// <param name='elasticPoolName'>
 /// The name of the elastic pool to be operated on (updated or created).
 /// </param>
 /// <param name='parameters'>
 /// The required parameters for creating or updating an elastic pool.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <ElasticPoolInner> CreateOrUpdateAsync(this IElasticPoolsOperations operations, string resourceGroupName, string serverName, string elasticPoolName, ElasticPoolInner parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, serverName, elasticPoolName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Creates an instance of external child resource in-memory.
 /// </summary>
 /// <param name="resourceGroupName">The resource group name.</param>
 /// <param name="sqlServerName">The parent SQL server name.</param>
 /// <param name="sqlServerLocation">The parent SQL server location.</param>
 /// <param name="name">The name of this external child resource.</param>
 /// <param name="innerObject">Reference to the inner object representing this external child resource.</param>
 /// <param name="sqlServerManager">Reference to the SQL server manager that accesses firewall rule operations.</param>
 ///GENMHASH:57B1BE3864897C5290648EFC4CB9F4CF:1F19069E738766C2410CE5F937A12B8B
 internal SqlElasticPoolImpl(string resourceGroupName, string sqlServerName, string sqlServerLocation, string name, ElasticPoolInner innerObject, ISqlManager sqlServerManager)
     : base(innerObject, null)
 {
     this.name              = name;
     this.sqlServerManager  = sqlServerManager ?? throw new ArgumentNullException("sqlServerManager");
     this.resourceGroupName = resourceGroupName;
     this.sqlServerName     = sqlServerName;
     this.sqlServerLocation = sqlServerLocation;
 }
 /// <summary>
 /// Creates an instance of external child resource in-memory.
 /// </summary>
 /// <param name="name">The name of this external child resource.</param>
 /// <param name="innerObject">Reference to the inner object representing this external child resource.</param>
 /// <param name="sqlServerManager">Reference to the SQL server manager that accesses firewall rule operations.</param>
 ///GENMHASH:D5251BF5145F14511372289648C6C18A:82E880B3031837A885AD54F15B3735CF
 internal SqlElasticPoolImpl(string name, ElasticPoolInner innerObject, ISqlManager sqlServerManager)
     : base(innerObject, null)
 {
     this.name             = name;
     this.sqlServerManager = sqlServerManager ?? throw new ArgumentNullException("sqlServerManager");
 }