/**
* 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.PagedList;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.compute.VirtualMachineScaleSetVM;
import com.microsoft.azure.management.compute.VirtualMachineScaleSetVMs;
import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.ReadableWrappersImpl;
import rx.Observable;
/**
* Implementation for {@link VirtualMachineScaleSetVMs}.
*/
@LangDefinition
class VirtualMachineScaleSetVMsImpl
extends
ReadableWrappersImpl<VirtualMachineScaleSetVM, VirtualMachineScaleSetVMImpl, VirtualMachineScaleSetVMInner>
implements
VirtualMachineScaleSetVMs {
private final VirtualMachineScaleSetImpl scaleSet;
private final VirtualMachineScaleSetVMsInner client;
private final ComputeManager computeManager;
VirtualMachineScaleSetVMsImpl(VirtualMachineScaleSetImpl scaleSet,
VirtualMachineScaleSetVMsInner client,
ComputeManager computeManager) {
this.scaleSet = scaleSet;
this.client = client;
this.computeManager = computeManager;
}
@Override
protected VirtualMachineScaleSetVMImpl wrapModel(VirtualMachineScaleSetVMInner inner) {
return new VirtualMachineScaleSetVMImpl(inner, this.scaleSet, this.client, this.computeManager);
}
@Override
public PagedList<VirtualMachineScaleSetVM> list() {
return super.wrapList(this.client.list(this.scaleSet.resourceGroupName(), this.scaleSet.name()));
}
@Override
public VirtualMachineScaleSetVMsInner inner() {
return this.client;
}
@Override
public Observable<VirtualMachineScaleSetVM> listAsync() {
return super.wrapPageAsync(this.client.listAsync(this.scaleSet.resourceGroupName(), this.scaleSet.name()));
}
}