// 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;
import java.util.List;

/** The discovered properties of the ONVIF device that are returned during the discovery. */
@Fluent
public final class DiscoveredOnvifDevice {
    /*
     * The unique identifier of the ONVIF device that was discovered in the
     * same subnet as the IoT Edge device.
     */
    @JsonProperty(value = "serviceIdentifier")
    private String serviceIdentifier;

    /*
     * The IP address of the ONVIF device that was discovered in the same
     * subnet as the IoT Edge device.
     */
    @JsonProperty(value = "remoteIPAddress")
    private String remoteIPAddress;

    /*
     * An array of hostnames for the ONVIF discovered devices that are in the
     * same subnet as the IoT Edge device.
     */
    @JsonProperty(value = "scopes")
    private List<String> scopes;

    /*
     * An array of media profile endpoints that the ONVIF discovered device
     * supports.
     */
    @JsonProperty(value = "endpoints")
    private List<String> endpoints;

    /**
     * Get the serviceIdentifier property: The unique identifier of the ONVIF device that was discovered in the same
     * subnet as the IoT Edge device.
     *
     * @return the serviceIdentifier value.
     */
    public String getServiceIdentifier() {
        return this.serviceIdentifier;
    }

    /**
     * Set the serviceIdentifier property: The unique identifier of the ONVIF device that was discovered in the same
     * subnet as the IoT Edge device.
     *
     * @param serviceIdentifier the serviceIdentifier value to set.
     * @return the DiscoveredOnvifDevice object itself.
     */
    public DiscoveredOnvifDevice setServiceIdentifier(String serviceIdentifier) {
        this.serviceIdentifier = serviceIdentifier;
        return this;
    }

    /**
     * Get the remoteIPAddress property: The IP address of the ONVIF device that was discovered in the same subnet as
     * the IoT Edge device.
     *
     * @return the remoteIPAddress value.
     */
    public String getRemoteIPAddress() {
        return this.remoteIPAddress;
    }

    /**
     * Set the remoteIPAddress property: The IP address of the ONVIF device that was discovered in the same subnet as
     * the IoT Edge device.
     *
     * @param remoteIPAddress the remoteIPAddress value to set.
     * @return the DiscoveredOnvifDevice object itself.
     */
    public DiscoveredOnvifDevice setRemoteIPAddress(String remoteIPAddress) {
        this.remoteIPAddress = remoteIPAddress;
        return this;
    }

    /**
     * Get the scopes property: An array of hostnames for the ONVIF discovered devices that are in the same subnet as
     * the IoT Edge device.
     *
     * @return the scopes value.
     */
    public List<String> getScopes() {
        return this.scopes;
    }

    /**
     * Set the scopes property: An array of hostnames for the ONVIF discovered devices that are in the same subnet as
     * the IoT Edge device.
     *
     * @param scopes the scopes value to set.
     * @return the DiscoveredOnvifDevice object itself.
     */
    public DiscoveredOnvifDevice setScopes(List<String> scopes) {
        this.scopes = scopes;
        return this;
    }

    /**
     * Get the endpoints property: An array of media profile endpoints that the ONVIF discovered device supports.
     *
     * @return the endpoints value.
     */
    public List<String> getEndpoints() {
        return this.endpoints;
    }

    /**
     * Set the endpoints property: An array of media profile endpoints that the ONVIF discovered device supports.
     *
     * @param endpoints the endpoints value to set.
     * @return the DiscoveredOnvifDevice object itself.
     */
    public DiscoveredOnvifDevice setEndpoints(List<String> endpoints) {
        this.endpoints = endpoints;
        return this;
    }
}
