
com.azure.resourcemanager.resources.implementation.PolicyAssignmentsImpl Maven / Gradle / Ivy
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.resourcemanager.resources.implementation;
import com.azure.core.http.rest.PagedFlux;
import com.azure.core.http.rest.PagedIterable;
import com.azure.core.util.CoreUtils;
import com.azure.resourcemanager.resources.models.PolicyAssignment;
import com.azure.resourcemanager.resources.models.PolicyAssignments;
import com.azure.resourcemanager.resources.models.ResourceGroups;
import com.azure.resourcemanager.resources.fluent.models.PolicyAssignmentInner;
import com.azure.resourcemanager.resources.fluent.PolicyAssignmentsClient;
import com.azure.resourcemanager.resources.fluentcore.arm.ResourceUtils;
import com.azure.resourcemanager.resources.fluentcore.arm.collection.implementation.CreatableWrappersImpl;
import reactor.core.publisher.Mono;
/**
* The implementation for {@link ResourceGroups} and its parent interfaces.
*/
public final class PolicyAssignmentsImpl extends
CreatableWrappersImpl implements PolicyAssignments {
private final PolicyAssignmentsClient client;
/**
* Creates an instance of the implementation.
*
* @param innerClient the inner policies client
*/
public PolicyAssignmentsImpl(final PolicyAssignmentsClient innerClient) {
this.client = innerClient;
}
@Override
public PagedIterable list() {
return new PagedIterable<>(this.listAsync());
}
@Override
public Mono deleteByIdAsync(String id) {
return client.deleteByIdAsync(ResourceUtils.encodeResourceId(id)).then();
}
@Override
public PolicyAssignmentImpl define(String name) {
return wrapModel(name);
}
@Override
protected PolicyAssignmentImpl wrapModel(String name) {
return new PolicyAssignmentImpl(name, new PolicyAssignmentInner().withDisplayName(name), client);
}
@Override
protected PolicyAssignmentImpl wrapModel(PolicyAssignmentInner inner) {
if (inner == null) {
return null;
}
return new PolicyAssignmentImpl(inner.name(), inner, client);
}
@Override
public PagedIterable listByResource(String resourceId) {
return wrapList(client.listForResource(ResourceUtils.groupFromResourceId(resourceId),
ResourceUtils.resourceProviderFromResourceId(resourceId),
ResourceUtils.relativePathFromResourceId(ResourceUtils.parentResourceIdFromResourceId(resourceId)),
ResourceUtils.resourceTypeFromResourceId(resourceId), ResourceUtils.nameFromResourceId(resourceId)));
}
@Override
public PolicyAssignment getById(String id) {
return getByIdAsync(id).block();
}
@Override
public Mono getByIdAsync(String id) {
return client.getByIdAsync(ResourceUtils.encodeResourceId(id)).map(this::wrapModel);
}
@Override
public PagedIterable listByResourceGroup(String resourceGroupName) {
return new PagedIterable<>(this.listByResourceGroupAsync(resourceGroupName));
}
@Override
public PagedFlux listAsync() {
return wrapPageAsync(this.client.listAsync());
}
@Override
public PagedFlux listByResourceGroupAsync(String resourceGroupName) {
if (CoreUtils.isNullOrEmpty(resourceGroupName)) {
return new PagedFlux<>(() -> Mono
.error(new IllegalArgumentException("Parameter 'resourceGroupName' is required and cannot be null.")));
}
return wrapPageAsync(this.client.listByResourceGroupAsync(resourceGroupName));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy