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

package com.azure.resourcemanager.recoveryservicessiterecovery.models;

import com.azure.resourcemanager.recoveryservicessiterecovery.fluent.models.OperationsDiscoveryInner;

/** An immutable client-side representation of OperationsDiscovery. */
public interface OperationsDiscovery {
    /**
     * Gets the name property: Name of the API. The name of the operation being performed on this particular object. It
     * should match the action name that appears in RBAC / the event service. Examples of operations include: *
     * Microsoft.Compute/virtualMachine/capture/action * Microsoft.Compute/virtualMachine/restart/action *
     * Microsoft.Compute/virtualMachine/write * Microsoft.Compute/virtualMachine/read *
     * Microsoft.Compute/virtualMachine/delete Each action should include, in order: (1) Resource Provider Namespace (2)
     * Type hierarchy for which the action applies (e.g. server/databases for a SQL Azure database) (3) Read, Write,
     * Action or Delete indicating which type applies. If it is a PUT/PATCH on a collection or named value, Write should
     * be used. If it is a GET, Read should be used. If it is a DELETE, Delete should be used. If it is a POST, Action
     * should be used. As a note: all resource providers would need to include the "{Resource Provider
     * Namespace}/register/action" operation in their response. This API is used to register for their service, and
     * should include details about the operation (e.g. a localized name for the resource provider + any special
     * considerations like PII release).
     *
     * @return the name value.
     */
    String name();

    /**
     * Gets the display property: Object type.
     *
     * @return the display value.
     */
    Display display();

    /**
     * Gets the origin property: Origin. The intended executor of the operation; governs the display of the operation in
     * the RBAC UX and the audit logs UX. Default value is "user,system".
     *
     * @return the origin value.
     */
    String origin();

    /**
     * Gets the properties property: Properties. Reserved for future use.
     *
     * @return the properties value.
     */
    Object properties();

    /**
     * Gets the inner com.azure.resourcemanager.recoveryservicessiterecovery.fluent.models.OperationsDiscoveryInner
     * object.
     *
     * @return the inner object.
     */
    OperationsDiscoveryInner innerModel();
}
