com.microsoft.azure.management.cosmosdb.implementation.CosmosDBManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-mgmt-cosmosdb Show documentation
Show all versions of azure-mgmt-cosmosdb Show documentation
This package contains Microsoft Azure CosmosDB SDK. A new set of management libraries are now Generally Available. For documentation on how to use the new libraries, please see https://aka.ms/azsdk/java/mgmt
/**
* 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.cosmosdb.implementation;
import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.AzureResponseBuilder;
import com.microsoft.azure.credentials.AzureTokenCredentials;
import com.microsoft.azure.management.apigeneration.Beta;
import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
import com.microsoft.azure.management.cosmosdb.CosmosDBAccounts;
import com.microsoft.azure.management.resources.fluentcore.arm.AzureConfigurable;
import com.microsoft.azure.management.resources.fluentcore.arm.implementation.AzureConfigurableImpl;
import com.microsoft.azure.management.resources.fluentcore.arm.implementation.Manager;
import com.microsoft.azure.management.resources.fluentcore.utils.ProviderRegistrationInterceptor;
import com.microsoft.azure.management.resources.fluentcore.utils.ResourceManagerThrottlingInterceptor;
import com.microsoft.azure.serializer.AzureJacksonAdapter;
import com.microsoft.rest.RestClient;
/**
* Entry point to Azure compute resource management.
*/
@Beta(SinceVersion.V1_2_0)
public final class CosmosDBManager extends Manager {
private CosmosDBAccountsImpl databaseAccounts;
/**
* Get a Configurable instance that can be used to create ComputeManager with optional configuration.
*
* @return Configurable
*/
public static Configurable configure() {
return new CosmosDBManager.ConfigurableImpl();
}
/**
* Creates an instance of ComputeManager that exposes Compute resource management API entry points.
*
* @param credentials the credentials to use
* @param subscriptionId the subscription
* @return the ComputeManager
*/
public static CosmosDBManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
return new CosmosDBManager(new RestClient.Builder()
.withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
.withCredentials(credentials)
.withSerializerAdapter(new AzureJacksonAdapter())
.withResponseBuilderFactory(new AzureResponseBuilder.Factory())
.withInterceptor(new ProviderRegistrationInterceptor(credentials))
.withInterceptor(new ResourceManagerThrottlingInterceptor())
.build(), subscriptionId);
}
/**
* Creates an instance of ComputeManager that exposes Compute resource management API entry points.
*
* @param restClient the RestClient to be used for API calls.
* @param subscriptionId the subscription
* @return the ComputeManager
*/
public static CosmosDBManager authenticate(RestClient restClient, String subscriptionId) {
return new CosmosDBManager(restClient, subscriptionId);
}
/**
* The interface allowing configurations to be set.
*/
public interface Configurable extends AzureConfigurable {
/**
* Creates an instance of ComputeManager that exposes Compute resource management API entry points.
*
* @param credentials the credentials to use
* @param subscriptionId the subscription
* @return the ComputeManager
*/
CosmosDBManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
}
/**
* The implementation for Configurable interface.
*/
private static final class ConfigurableImpl extends AzureConfigurableImpl implements Configurable {
@Override
public CosmosDBManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
return CosmosDBManager.authenticate(buildRestClient(credentials), subscriptionId);
}
}
private CosmosDBManager(RestClient restClient, String subscriptionId) {
super(
restClient,
subscriptionId,
new CosmosDBImpl(restClient).withSubscriptionId(subscriptionId));
}
/**
* @return the cosmos db database account resource management API entry point
*/
public CosmosDBAccounts databaseAccounts() {
if (databaseAccounts == null) {
databaseAccounts = new CosmosDBAccountsImpl(this);
}
return databaseAccounts;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy