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

package com.azure.media.videoanalyzer.edge.models;

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

/** Allows for the selection of particular streams from another node. */
@Fluent
public final class OutputSelector {
    /*
     * The property of the data stream to be used as the selection criteria.
     */
    @JsonProperty(value = "property")
    private OutputSelectorProperty property;

    /*
     * The operator to compare properties by.
     */
    @JsonProperty(value = "operator")
    private OutputSelectorOperator operator;

    /*
     * Value to compare against.
     */
    @JsonProperty(value = "value")
    private String value;

    /**
     * Get the property property: The property of the data stream to be used as the selection criteria.
     *
     * @return the property value.
     */
    public OutputSelectorProperty getProperty() {
        return this.property;
    }

    /**
     * Set the property property: The property of the data stream to be used as the selection criteria.
     *
     * @param property the property value to set.
     * @return the OutputSelector object itself.
     */
    public OutputSelector setProperty(OutputSelectorProperty property) {
        this.property = property;
        return this;
    }

    /**
     * Get the operator property: The operator to compare properties by.
     *
     * @return the operator value.
     */
    public OutputSelectorOperator getOperator() {
        return this.operator;
    }

    /**
     * Set the operator property: The operator to compare properties by.
     *
     * @param operator the operator value to set.
     * @return the OutputSelector object itself.
     */
    public OutputSelector setOperator(OutputSelectorOperator operator) {
        this.operator = operator;
        return this;
    }

    /**
     * Get the value property: Value to compare against.
     *
     * @return the value value.
     */
    public String getValue() {
        return this.value;
    }

    /**
     * Set the value property: Value to compare against.
     *
     * @param value the value value to set.
     * @return the OutputSelector object itself.
     */
    public OutputSelector setValue(String value) {
        this.value = value;
        return this;
    }
}
