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

package com.azure.resourcemanager.workloads.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** The resource names object for shared storage. */
@Fluent
public final class SharedStorageResourceNames {
    /*
     * The full name of the shared storage account. If it is not provided, it will be defaulted to {SID}nfs{guid of 15
     * chars}.
     */
    @JsonProperty(value = "sharedStorageAccountName")
    private String sharedStorageAccountName;

    /*
     * The full name of private end point for the shared storage account. If it is not provided, it will be defaulted
     * to {storageAccountName}_pe
     */
    @JsonProperty(value = "sharedStorageAccountPrivateEndPointName")
    private String sharedStorageAccountPrivateEndPointName;

    /** Creates an instance of SharedStorageResourceNames class. */
    public SharedStorageResourceNames() {
    }

    /**
     * Get the sharedStorageAccountName property: The full name of the shared storage account. If it is not provided, it
     * will be defaulted to {SID}nfs{guid of 15 chars}.
     *
     * @return the sharedStorageAccountName value.
     */
    public String sharedStorageAccountName() {
        return this.sharedStorageAccountName;
    }

    /**
     * Set the sharedStorageAccountName property: The full name of the shared storage account. If it is not provided, it
     * will be defaulted to {SID}nfs{guid of 15 chars}.
     *
     * @param sharedStorageAccountName the sharedStorageAccountName value to set.
     * @return the SharedStorageResourceNames object itself.
     */
    public SharedStorageResourceNames withSharedStorageAccountName(String sharedStorageAccountName) {
        this.sharedStorageAccountName = sharedStorageAccountName;
        return this;
    }

    /**
     * Get the sharedStorageAccountPrivateEndPointName property: The full name of private end point for the shared
     * storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe.
     *
     * @return the sharedStorageAccountPrivateEndPointName value.
     */
    public String sharedStorageAccountPrivateEndPointName() {
        return this.sharedStorageAccountPrivateEndPointName;
    }

    /**
     * Set the sharedStorageAccountPrivateEndPointName property: The full name of private end point for the shared
     * storage account. If it is not provided, it will be defaulted to {storageAccountName}_pe.
     *
     * @param sharedStorageAccountPrivateEndPointName the sharedStorageAccountPrivateEndPointName value to set.
     * @return the SharedStorageResourceNames object itself.
     */
    public SharedStorageResourceNames withSharedStorageAccountPrivateEndPointName(
        String sharedStorageAccountPrivateEndPointName) {
        this.sharedStorageAccountPrivateEndPointName = sharedStorageAccountPrivateEndPointName;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
    }
}
