com.microsoft.azure.management.dns.implementation.DnsZonesImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-mgmt-dns Show documentation
Show all versions of azure-mgmt-dns Show documentation
This package contains Microsoft DNS Management SDK. This package has been deprecated. A replacement package com.azure.resourcemanager:azure-resourcemanager-dns is available as of 31-March-2022. We strongly encourage you to upgrade to continue receiving updates. See Migration Guide https://aka.ms/java-track2-migration-guide for guidance on upgrading. Refer to our deprecation policy https://azure.github.io/azure-sdk/policies_support.html for more details.
/**
* 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.dns.implementation;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.dns.DnsZone;
import com.microsoft.azure.management.dns.DnsZones;
import com.microsoft.azure.management.resources.fluentcore.arm.ResourceUtils;
import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.TopLevelModifiableResourcesImpl;
import rx.Completable;
/**
* Implementation of DnsZones.
*/
@LangDefinition
class DnsZonesImpl extends TopLevelModifiableResourcesImpl<
DnsZone,
DnsZoneImpl,
ZoneInner,
ZonesInner,
DnsZoneManager>
implements DnsZones {
DnsZonesImpl(final DnsZoneManager dnsZoneManager) {
super(dnsZoneManager.inner().zones(), dnsZoneManager);
}
@Override
public DnsZoneImpl define(String name) {
return setDefaults(wrapModel(name));
}
@Override
protected DnsZoneImpl wrapModel(String name) {
return new DnsZoneImpl(name, new ZoneInner(), this.manager());
}
@Override
protected DnsZoneImpl wrapModel(ZoneInner inner) {
if (inner == null) {
return null;
}
return new DnsZoneImpl(inner.name(), inner, this.manager());
}
private DnsZoneImpl setDefaults(DnsZoneImpl dnsZone) {
// Zone location must be 'global' irrespective of region of the resource group it resides.
dnsZone.inner().withLocation("global");
return dnsZone;
}
@Override
public Completable deleteByResourceGroupNameAsync(String resourceGroupName, String zoneName, String eTagValue) {
return this.manager().inner().zones().deleteAsync(resourceGroupName, zoneName, eTagValue).toCompletable();
}
@Override
public Completable deleteByIdAsync(String id, String eTagValue) {
return deleteByResourceGroupNameAsync(ResourceUtils.groupFromResourceId(id),
ResourceUtils.nameFromResourceId(id),
eTagValue);
}
@Override
public void deleteByResourceGroupName(String resourceGroupName, String zoneName, String eTagValue) {
deleteByResourceGroupNameAsync(resourceGroupName, zoneName, eTagValue).await();
}
@Override
public void deleteById(String id, String eTagValue) {
deleteByIdAsync(id, eTagValue).await();
}
}