/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */ package com.microsoft.azure.management.sql.implementation; import com.microsoft.azure.management.apigeneration.LangDefinition; import com.microsoft.azure.management.resources.fluentcore.arm.Region; import com.microsoft.azure.management.sql.SqlElasticPool; import com.microsoft.azure.management.sql.SqlElasticPools; import com.microsoft.azure.management.sql.SqlServer; import rx.Completable; import java.util.List; /** * Implementation of SqlServer.ElasticPools, which enables the creating the elastic pools from the SQLServer directly. */ @LangDefinition public class ElasticPoolsImpl implements SqlServer.ElasticPools { private final String resourceGroupName; private final String sqlServerName; private final SqlElasticPools.SqlElasticPoolsCreatable elasticPools; private final Region region; ElasticPoolsImpl(SqlServerManager manager, DatabasesImpl databasesImpl, String resourceGroupName, String sqlServerName, Region region) { this.resourceGroupName = resourceGroupName; this.sqlServerName = sqlServerName; this.region = region; this.elasticPools = new SqlElasticPoolsImpl(manager, databasesImpl); } protected SqlElasticPools elasticPools() { return this.elasticPools; } @Override public SqlElasticPool get(String elasticPoolName) { return this.elasticPools.getBySqlServer(this.resourceGroupName, this.sqlServerName, elasticPoolName); } @Override public SqlElasticPool.DefinitionStages.Blank define(String elasticPoolName) { return this.elasticPools.definedWithSqlServer(this.resourceGroupName, this.sqlServerName, elasticPoolName, this.region); } @Override public List<SqlElasticPool> list() { return this.elasticPools.listBySqlServer(this.resourceGroupName, this.sqlServerName); } @Override public void delete(String elasticPoolName) { this.elasticPools.deleteByParent(this.resourceGroupName, this.sqlServerName, elasticPoolName); } @Override public Completable deleteAsync(String elasticPoolName) { return this.elasticPools.deleteByParentAsync(this.resourceGroupName, this.sqlServerName, elasticPoolName); } }