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

package com.azure.resourcemanager.security.models;

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

/** The environment details of the resource. */
@Fluent
public final class EnvironmentDetails {
    /*
     * The native resource id of the resource (in case of Azure - the resource Id, in case of MC - the native resource
     * id)
     */
    @JsonProperty(value = "nativeResourceId")
    private String nativeResourceId;

    /*
     * The hierarchy id of the connector (in case of Azure - the subscription Id, in case of MC - the hierarchyId id)
     */
    @JsonProperty(value = "environmentHierarchyId")
    private String environmentHierarchyId;

    /*
     * The organizational hierarchy id of the connector (in case of Azure - the subscription Id, in case of MC - the
     * organizational hierarchyId id)
     */
    @JsonProperty(value = "organizationalHierarchyId")
    private String organizationalHierarchyId;

    /*
     * The subscription Id
     */
    @JsonProperty(value = "subscriptionId")
    private String subscriptionId;

    /*
     * The tenant Id
     */
    @JsonProperty(value = "tenantId")
    private String tenantId;

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

    /**
     * Get the nativeResourceId property: The native resource id of the resource (in case of Azure - the resource Id, in
     * case of MC - the native resource id).
     *
     * @return the nativeResourceId value.
     */
    public String nativeResourceId() {
        return this.nativeResourceId;
    }

    /**
     * Set the nativeResourceId property: The native resource id of the resource (in case of Azure - the resource Id, in
     * case of MC - the native resource id).
     *
     * @param nativeResourceId the nativeResourceId value to set.
     * @return the EnvironmentDetails object itself.
     */
    public EnvironmentDetails withNativeResourceId(String nativeResourceId) {
        this.nativeResourceId = nativeResourceId;
        return this;
    }

    /**
     * Get the environmentHierarchyId property: The hierarchy id of the connector (in case of Azure - the subscription
     * Id, in case of MC - the hierarchyId id).
     *
     * @return the environmentHierarchyId value.
     */
    public String environmentHierarchyId() {
        return this.environmentHierarchyId;
    }

    /**
     * Set the environmentHierarchyId property: The hierarchy id of the connector (in case of Azure - the subscription
     * Id, in case of MC - the hierarchyId id).
     *
     * @param environmentHierarchyId the environmentHierarchyId value to set.
     * @return the EnvironmentDetails object itself.
     */
    public EnvironmentDetails withEnvironmentHierarchyId(String environmentHierarchyId) {
        this.environmentHierarchyId = environmentHierarchyId;
        return this;
    }

    /**
     * Get the organizationalHierarchyId property: The organizational hierarchy id of the connector (in case of Azure -
     * the subscription Id, in case of MC - the organizational hierarchyId id).
     *
     * @return the organizationalHierarchyId value.
     */
    public String organizationalHierarchyId() {
        return this.organizationalHierarchyId;
    }

    /**
     * Set the organizationalHierarchyId property: The organizational hierarchy id of the connector (in case of Azure -
     * the subscription Id, in case of MC - the organizational hierarchyId id).
     *
     * @param organizationalHierarchyId the organizationalHierarchyId value to set.
     * @return the EnvironmentDetails object itself.
     */
    public EnvironmentDetails withOrganizationalHierarchyId(String organizationalHierarchyId) {
        this.organizationalHierarchyId = organizationalHierarchyId;
        return this;
    }

    /**
     * Get the subscriptionId property: The subscription Id.
     *
     * @return the subscriptionId value.
     */
    public String subscriptionId() {
        return this.subscriptionId;
    }

    /**
     * Set the subscriptionId property: The subscription Id.
     *
     * @param subscriptionId the subscriptionId value to set.
     * @return the EnvironmentDetails object itself.
     */
    public EnvironmentDetails withSubscriptionId(String subscriptionId) {
        this.subscriptionId = subscriptionId;
        return this;
    }

    /**
     * Get the tenantId property: The tenant Id.
     *
     * @return the tenantId value.
     */
    public String tenantId() {
        return this.tenantId;
    }

    /**
     * Set the tenantId property: The tenant Id.
     *
     * @param tenantId the tenantId value to set.
     * @return the EnvironmentDetails object itself.
     */
    public EnvironmentDetails withTenantId(String tenantId) {
        this.tenantId = tenantId;
        return this;
    }

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