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

package com.azure.analytics.purview.sharing.models;

import java.util.List;

import com.azure.core.annotation.Fluent;
import com.azure.core.annotation.JsonFlatten;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;

/**
 * An Adls Gen2 storage account artifact.
 */
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "storeKind")
@JsonTypeName("AdlsGen2Account")
@JsonFlatten
@Fluent
public class AdlsGen2Artifact extends Artifact {
    /*
     * Location of the storage account.
     */
    @JsonProperty(value = "properties.location", access = JsonProperty.Access.WRITE_ONLY)
    private String location;

    /*
     * A list of Adls Gen2 storage account paths.
     */
    @JsonProperty(value = "properties.paths", required = true)
    private List<StorageAccountPath> paths;

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

    /**
     * Get the location property: Location of the storage account.
     * 
     * @return the location value.
     */
    public String getLocation() {
        return this.location;
    }

    /**
     * Get the paths property: A list of Adls Gen2 storage account paths.
     * 
     * @return the paths value.
     */
    public List<StorageAccountPath> getPaths() {
        return this.paths;
    }

    /**
     * Set the paths property: A list of Adls Gen2 storage account paths.
     * 
     * @param paths the paths value to set.
     * @return the AdlsGen2Artifact object itself.
     */
    public AdlsGen2Artifact setPaths(List<StorageAccountPath> paths) {
        this.paths = paths;
        return this;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public AdlsGen2Artifact setStoreReference(StoreReference storeReference) {
        super.setStoreReference(storeReference);
        return this;
    }
}
