All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.resourcemanager.servicelinker.implementation.LinkerResourceImpl Maven / Gradle / Ivy

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.servicelinker.implementation;

import com.azure.core.http.rest.Response;
import com.azure.core.management.SystemData;
import com.azure.core.util.Context;
import com.azure.resourcemanager.servicelinker.fluent.models.LinkerResourceInner;
import com.azure.resourcemanager.servicelinker.models.AuthInfoBase;
import com.azure.resourcemanager.servicelinker.models.ClientType;
import com.azure.resourcemanager.servicelinker.models.ConfigurationInfo;
import com.azure.resourcemanager.servicelinker.models.ConfigurationResult;
import com.azure.resourcemanager.servicelinker.models.LinkerPatch;
import com.azure.resourcemanager.servicelinker.models.LinkerResource;
import com.azure.resourcemanager.servicelinker.models.PublicNetworkSolution;
import com.azure.resourcemanager.servicelinker.models.SecretStore;
import com.azure.resourcemanager.servicelinker.models.TargetServiceBase;
import com.azure.resourcemanager.servicelinker.models.VNetSolution;
import com.azure.resourcemanager.servicelinker.models.ValidateOperationResult;

public final class LinkerResourceImpl implements LinkerResource, LinkerResource.Definition, LinkerResource.Update {
    private LinkerResourceInner innerObject;

    private final com.azure.resourcemanager.servicelinker.ServiceLinkerManager serviceManager;

    public String id() {
        return this.innerModel().id();
    }

    public String name() {
        return this.innerModel().name();
    }

    public String type() {
        return this.innerModel().type();
    }

    public SystemData systemData() {
        return this.innerModel().systemData();
    }

    public TargetServiceBase targetService() {
        return this.innerModel().targetService();
    }

    public AuthInfoBase authInfo() {
        return this.innerModel().authInfo();
    }

    public ClientType clientType() {
        return this.innerModel().clientType();
    }

    public String provisioningState() {
        return this.innerModel().provisioningState();
    }

    public VNetSolution vNetSolution() {
        return this.innerModel().vNetSolution();
    }

    public SecretStore secretStore() {
        return this.innerModel().secretStore();
    }

    public String scope() {
        return this.innerModel().scope();
    }

    public PublicNetworkSolution publicNetworkSolution() {
        return this.innerModel().publicNetworkSolution();
    }

    public ConfigurationInfo configurationInfo() {
        return this.innerModel().configurationInfo();
    }

    public LinkerResourceInner innerModel() {
        return this.innerObject;
    }

    private com.azure.resourcemanager.servicelinker.ServiceLinkerManager manager() {
        return this.serviceManager;
    }

    private String resourceUri;

    private String linkerName;

    private LinkerPatch updateParameters;

    public LinkerResourceImpl withExistingResourceUri(String resourceUri) {
        this.resourceUri = resourceUri;
        return this;
    }

    public LinkerResource create() {
        this.innerObject = serviceManager.serviceClient()
            .getLinkers()
            .createOrUpdate(resourceUri, linkerName, this.innerModel(), Context.NONE);
        return this;
    }

    public LinkerResource create(Context context) {
        this.innerObject = serviceManager.serviceClient()
            .getLinkers()
            .createOrUpdate(resourceUri, linkerName, this.innerModel(), context);
        return this;
    }

    LinkerResourceImpl(String name, com.azure.resourcemanager.servicelinker.ServiceLinkerManager serviceManager) {
        this.innerObject = new LinkerResourceInner();
        this.serviceManager = serviceManager;
        this.linkerName = name;
    }

    public LinkerResourceImpl update() {
        this.updateParameters = new LinkerPatch();
        return this;
    }

    public LinkerResource apply() {
        this.innerObject = serviceManager.serviceClient()
            .getLinkers()
            .update(resourceUri, linkerName, updateParameters, Context.NONE);
        return this;
    }

    public LinkerResource apply(Context context) {
        this.innerObject
            = serviceManager.serviceClient().getLinkers().update(resourceUri, linkerName, updateParameters, context);
        return this;
    }

    LinkerResourceImpl(LinkerResourceInner innerObject,
        com.azure.resourcemanager.servicelinker.ServiceLinkerManager serviceManager) {
        this.innerObject = innerObject;
        this.serviceManager = serviceManager;
        this.resourceUri = ResourceManagerUtils.getValueFromIdByParameterName(innerObject.id(),
            "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}", "resourceUri");
        this.linkerName = ResourceManagerUtils.getValueFromIdByParameterName(innerObject.id(),
            "/{resourceUri}/providers/Microsoft.ServiceLinker/linkers/{linkerName}", "linkerName");
    }

    public LinkerResource refresh() {
        this.innerObject = serviceManager.serviceClient()
            .getLinkers()
            .getWithResponse(resourceUri, linkerName, Context.NONE)
            .getValue();
        return this;
    }

    public LinkerResource refresh(Context context) {
        this.innerObject
            = serviceManager.serviceClient().getLinkers().getWithResponse(resourceUri, linkerName, context).getValue();
        return this;
    }

    public ValidateOperationResult validate() {
        return serviceManager.linkers().validate(resourceUri, linkerName);
    }

    public ValidateOperationResult validate(Context context) {
        return serviceManager.linkers().validate(resourceUri, linkerName, context);
    }

    public Response listConfigurationsWithResponse(Context context) {
        return serviceManager.linkers().listConfigurationsWithResponse(resourceUri, linkerName, context);
    }

    public ConfigurationResult listConfigurations() {
        return serviceManager.linkers().listConfigurations(resourceUri, linkerName);
    }

    public LinkerResourceImpl withTargetService(TargetServiceBase targetService) {
        if (isInCreateMode()) {
            this.innerModel().withTargetService(targetService);
            return this;
        } else {
            this.updateParameters.withTargetService(targetService);
            return this;
        }
    }

    public LinkerResourceImpl withAuthInfo(AuthInfoBase authInfo) {
        if (isInCreateMode()) {
            this.innerModel().withAuthInfo(authInfo);
            return this;
        } else {
            this.updateParameters.withAuthInfo(authInfo);
            return this;
        }
    }

    public LinkerResourceImpl withClientType(ClientType clientType) {
        if (isInCreateMode()) {
            this.innerModel().withClientType(clientType);
            return this;
        } else {
            this.updateParameters.withClientType(clientType);
            return this;
        }
    }

    public LinkerResourceImpl withVNetSolution(VNetSolution vNetSolution) {
        if (isInCreateMode()) {
            this.innerModel().withVNetSolution(vNetSolution);
            return this;
        } else {
            this.updateParameters.withVNetSolution(vNetSolution);
            return this;
        }
    }

    public LinkerResourceImpl withSecretStore(SecretStore secretStore) {
        if (isInCreateMode()) {
            this.innerModel().withSecretStore(secretStore);
            return this;
        } else {
            this.updateParameters.withSecretStore(secretStore);
            return this;
        }
    }

    public LinkerResourceImpl withScope(String scope) {
        if (isInCreateMode()) {
            this.innerModel().withScope(scope);
            return this;
        } else {
            this.updateParameters.withScope(scope);
            return this;
        }
    }

    public LinkerResourceImpl withPublicNetworkSolution(PublicNetworkSolution publicNetworkSolution) {
        if (isInCreateMode()) {
            this.innerModel().withPublicNetworkSolution(publicNetworkSolution);
            return this;
        } else {
            this.updateParameters.withPublicNetworkSolution(publicNetworkSolution);
            return this;
        }
    }

    public LinkerResourceImpl withConfigurationInfo(ConfigurationInfo configurationInfo) {
        if (isInCreateMode()) {
            this.innerModel().withConfigurationInfo(configurationInfo);
            return this;
        } else {
            this.updateParameters.withConfigurationInfo(configurationInfo);
            return this;
        }
    }

    private boolean isInCreateMode() {
        return this.innerModel().id() == null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy