/** * 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.keyvault.implementation; import com.microsoft.azure.PagedList; import com.microsoft.azure.management.apigeneration.LangDefinition; import com.microsoft.azure.management.graphrbac.implementation.GraphRbacManager; import com.microsoft.azure.management.keyvault.SkuName; import com.microsoft.azure.management.keyvault.Vault; import com.microsoft.azure.management.keyvault.VaultProperties; import com.microsoft.azure.management.keyvault.Vaults; import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.GroupableResourcesImpl; import rx.Completable; import rx.Observable; import java.util.UUID; /** * The implementation of Vaults and its parent interfaces. */ @LangDefinition class VaultsImpl extends GroupableResourcesImpl< Vault, VaultImpl, VaultInner, VaultsInner, KeyVaultManager> implements Vaults { private final GraphRbacManager graphRbacManager; private final String tenantId; VaultsImpl( final KeyVaultManager keyVaultManager, final GraphRbacManager graphRbacManager, final String tenantId) { super(keyVaultManager.inner().vaults(), keyVaultManager); this.graphRbacManager = graphRbacManager; this.tenantId = tenantId; } @Override public PagedList<Vault> listByResourceGroup(String groupName) { return wrapList(this.inner().listByResourceGroup(groupName)); } @Override protected Observable<VaultInner> getInnerAsync(String resourceGroupName, String name) { return this.inner().getByResourceGroupAsync(resourceGroupName, name); } @Override protected Completable deleteInnerAsync(String resourceGroupName, String name) { return this.inner().deleteAsync(resourceGroupName, name).toCompletable(); } @Override public Completable deleteByResourceGroupAsync(String groupName, String name) { return this.inner().deleteAsync(groupName, name).toCompletable(); } @Override public VaultImpl define(String name) { return wrapModel(name) .withSku(SkuName.STANDARD) .withEmptyAccessPolicy(); } @Override protected VaultImpl wrapModel(String name) { VaultInner inner = new VaultInner().withProperties(new VaultProperties()); inner.properties().withTenantId(UUID.fromString(tenantId)); return new VaultImpl( name, inner, this.manager(), graphRbacManager); } @Override protected VaultImpl wrapModel(VaultInner vaultInner) { if (vaultInner == null) { return null; } return new VaultImpl( vaultInner.name(), vaultInner, super.manager(), graphRbacManager); } @Override public Observable<Vault> listByResourceGroupAsync(String resourceGroupName) { return wrapPageAsync(this.inner().listByResourceGroupAsync(resourceGroupName)); } }