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

package com.azure.resourcemanager.securitydevops.models;

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

/** AzureDevOps Project properties. */
@Fluent
public final class AzureDevOpsProjectProperties {
    /*
     * The provisioningState property.
     */
    @JsonProperty(value = "provisioningState")
    private ProvisioningState provisioningState;

    /*
     * Gets or sets AzureDevOps Project Id.
     */
    @JsonProperty(value = "projectId")
    private String projectId;

    /*
     * Gets or sets AzureDevOps Org Name.
     */
    @JsonProperty(value = "orgName")
    private String orgName;

    /*
     * The autoDiscovery property.
     */
    @JsonProperty(value = "autoDiscovery")
    private AutoDiscovery autoDiscovery;

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

    /**
     * Get the provisioningState property: The provisioningState property.
     *
     * @return the provisioningState value.
     */
    public ProvisioningState provisioningState() {
        return this.provisioningState;
    }

    /**
     * Set the provisioningState property: The provisioningState property.
     *
     * @param provisioningState the provisioningState value to set.
     * @return the AzureDevOpsProjectProperties object itself.
     */
    public AzureDevOpsProjectProperties withProvisioningState(ProvisioningState provisioningState) {
        this.provisioningState = provisioningState;
        return this;
    }

    /**
     * Get the projectId property: Gets or sets AzureDevOps Project Id.
     *
     * @return the projectId value.
     */
    public String projectId() {
        return this.projectId;
    }

    /**
     * Set the projectId property: Gets or sets AzureDevOps Project Id.
     *
     * @param projectId the projectId value to set.
     * @return the AzureDevOpsProjectProperties object itself.
     */
    public AzureDevOpsProjectProperties withProjectId(String projectId) {
        this.projectId = projectId;
        return this;
    }

    /**
     * Get the orgName property: Gets or sets AzureDevOps Org Name.
     *
     * @return the orgName value.
     */
    public String orgName() {
        return this.orgName;
    }

    /**
     * Set the orgName property: Gets or sets AzureDevOps Org Name.
     *
     * @param orgName the orgName value to set.
     * @return the AzureDevOpsProjectProperties object itself.
     */
    public AzureDevOpsProjectProperties withOrgName(String orgName) {
        this.orgName = orgName;
        return this;
    }

    /**
     * Get the autoDiscovery property: The autoDiscovery property.
     *
     * @return the autoDiscovery value.
     */
    public AutoDiscovery autoDiscovery() {
        return this.autoDiscovery;
    }

    /**
     * Set the autoDiscovery property: The autoDiscovery property.
     *
     * @param autoDiscovery the autoDiscovery value to set.
     * @return the AzureDevOpsProjectProperties object itself.
     */
    public AzureDevOpsProjectProperties withAutoDiscovery(AutoDiscovery autoDiscovery) {
        this.autoDiscovery = autoDiscovery;
        return this;
    }

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