// 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 com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * A share resource.
 */
@Fluent
public final class ShareResource extends ProxyResource {
    /*
     * A count of Received Shares associated with the
     * Microsoft.Azure.Purview.Share.ApiService.V3.DataTransferObjects.ShareResource.
     */
    @JsonProperty(value = "receivedSharesCount")
    private Integer receivedSharesCount;

    /*
     * A count of Sent Shares associated with the
     * Microsoft.Azure.Purview.Share.ApiService.V3.DataTransferObjects.ShareResource.
     */
    @JsonProperty(value = "sentSharesCount")
    private Integer sentSharesCount;

    /*
     * The types of asset.
     */
    @JsonProperty(value = "storeKind")
    private StoreKind storeKind;

    /*
     * A Store Reference for an artifact or sink.
     */
    @JsonProperty(value = "storeReference")
    private StoreReference storeReference;

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

    /**
     * Get the receivedSharesCount property: A count of Received Shares associated with the
     * Microsoft.Azure.Purview.Share.ApiService.V3.DataTransferObjects.ShareResource.
     * 
     * @return the receivedSharesCount value.
     */
    public Integer getReceivedSharesCount() {
        return this.receivedSharesCount;
    }

    /**
     * Set the receivedSharesCount property: A count of Received Shares associated with the
     * Microsoft.Azure.Purview.Share.ApiService.V3.DataTransferObjects.ShareResource.
     * 
     * @param receivedSharesCount the receivedSharesCount value to set.
     * @return the ShareResource object itself.
     */
    public ShareResource setReceivedSharesCount(Integer receivedSharesCount) {
        this.receivedSharesCount = receivedSharesCount;
        return this;
    }

    /**
     * Get the sentSharesCount property: A count of Sent Shares associated with the
     * Microsoft.Azure.Purview.Share.ApiService.V3.DataTransferObjects.ShareResource.
     * 
     * @return the sentSharesCount value.
     */
    public Integer getSentSharesCount() {
        return this.sentSharesCount;
    }

    /**
     * Set the sentSharesCount property: A count of Sent Shares associated with the
     * Microsoft.Azure.Purview.Share.ApiService.V3.DataTransferObjects.ShareResource.
     * 
     * @param sentSharesCount the sentSharesCount value to set.
     * @return the ShareResource object itself.
     */
    public ShareResource setSentSharesCount(Integer sentSharesCount) {
        this.sentSharesCount = sentSharesCount;
        return this;
    }

    /**
     * Get the storeKind property: The types of asset.
     * 
     * @return the storeKind value.
     */
    public StoreKind getStoreKind() {
        return this.storeKind;
    }

    /**
     * Set the storeKind property: The types of asset.
     * 
     * @param storeKind the storeKind value to set.
     * @return the ShareResource object itself.
     */
    public ShareResource setStoreKind(StoreKind storeKind) {
        this.storeKind = storeKind;
        return this;
    }

    /**
     * Get the storeReference property: A Store Reference for an artifact or sink.
     * 
     * @return the storeReference value.
     */
    public StoreReference getStoreReference() {
        return this.storeReference;
    }

    /**
     * Set the storeReference property: A Store Reference for an artifact or sink.
     * 
     * @param storeReference the storeReference value to set.
     * @return the ShareResource object itself.
     */
    public ShareResource setStoreReference(StoreReference storeReference) {
        this.storeReference = storeReference;
        return this;
    }
}
