Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
/** * 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.containerinstance.implementation; import com.microsoft.azure.management.apigeneration.LangDefinition; import com.microsoft.azure.management.containerinstance.AzureFileVolume; import com.microsoft.azure.management.containerinstance.ContainerGroup; import com.microsoft.azure.management.containerinstance.GitRepoVolume; import com.microsoft.azure.management.containerinstance.Volume; import java.util.ArrayList; import java.util.Map;
Implementation for container group's volume definition stages interface.
/** * Implementation for container group's volume definition stages interface. */
@LangDefinition class VolumeImpl implements ContainerGroup.DefinitionStages.VolumeDefinitionStages.VolumeDefinition<ContainerGroup.DefinitionStages.WithVolume> { private Volume innerVolume; private ContainerGroupImpl parent; VolumeImpl(ContainerGroupImpl parent, String volumeName) { this.parent = parent; this.innerVolume = new Volume().withName(volumeName); } @Override public ContainerGroupImpl attach() { if (parent.inner().volumes() == null) { parent.inner().withVolumes(new ArrayList<Volume>()); } parent.inner().volumes().add(innerVolume); return parent; } @Override public VolumeImpl withExistingReadWriteAzureFileShare(String shareName) { ensureAzureFileVolume() .withReadOnly(false) .withShareName(shareName); return this; } @Override public VolumeImpl withExistingReadOnlyAzureFileShare(String shareName) { ensureAzureFileVolume() .withReadOnly(true) .withShareName(shareName); return this; } private AzureFileVolume ensureAzureFileVolume() { if (innerVolume.azureFile() == null) { innerVolume.withAzureFile(new AzureFileVolume()); } return innerVolume.azureFile(); } @Override public VolumeImpl withStorageAccountName(String storageAccountName) { ensureAzureFileVolume().withStorageAccountName(storageAccountName); return this; } @Override public VolumeImpl withStorageAccountKey(String storageAccountKey) { ensureAzureFileVolume().withStorageAccountKey(storageAccountKey); return this; } @Override public VolumeImpl withSecrets(Map<String, String> secrets) { this.innerVolume.withSecret(secrets); return this; } @Override public VolumeImpl withGitUrl(String gitUrl) { this.innerVolume.withGitRepo(new GitRepoVolume()); this.innerVolume.gitRepo().withRepository(gitUrl); return this; } @Override public VolumeImpl withGitDirectoryName(String gitDirectoryName) { if (this.innerVolume.gitRepo() == null) { this.innerVolume.withGitRepo(new GitRepoVolume()); } this.innerVolume.gitRepo().withDirectory(gitDirectoryName); return this; } @Override public VolumeImpl withGitRevision(String gitRevision) { if (this.innerVolume.gitRepo() == null) { this.innerVolume.withGitRepo(new GitRepoVolume()); } this.innerVolume.gitRepo().withRevision(gitRevision); return this; } }