/**
* 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.compute.implementation;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.compute.AccessLevel;
import com.microsoft.azure.management.compute.Disk;
import com.microsoft.azure.management.compute.Disks;
import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.TopLevelModifiableResourcesImpl;
/**
* The implementation for Disks.
*/
@LangDefinition
class DisksImpl
extends TopLevelModifiableResourcesImpl<
Disk,
DiskImpl,
DiskInner,
DisksInner,
ComputeManager>
implements Disks {
DisksImpl(ComputeManager computeManager) {
super(computeManager.inner().disks(), computeManager);
}
@Override
public String grantAccess(String resourceGroupName,
String diskName,
AccessLevel accessLevel,
int accessDuration) {
GrantAccessDataInner grantAccessDataInner = new GrantAccessDataInner();
grantAccessDataInner.withAccess(accessLevel)
.withDurationInSeconds(accessDuration);
AccessUriInner accessUriInner = this.inner().grantAccess(resourceGroupName,
diskName, grantAccessDataInner);
return accessUriInner.accessSAS();
}
@Override
public void revokeAccess(String resourceGroupName, String diskName) {
this.inner().revokeAccess(resourceGroupName, diskName);
}
@Override
protected DiskImpl wrapModel(String name) {
return new DiskImpl(name, new DiskInner(), this.manager());
}
@Override
protected DiskImpl wrapModel(DiskInner inner) {
if (inner != null) {
return new DiskImpl(inner.name(), inner, this.manager());
} else {
return null;
}
}
@Override
public Disk.DefinitionStages.Blank define(String name) {
return this.wrapModel(name);
}
}