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

package com.azure.resourcemanager.automation.models;

import com.azure.resourcemanager.automation.fluent.models.RunbookPropertiesInner;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;

/** An immutable client-side representation of RunbookProperties. */
public interface RunbookProperties {
    /**
     * Gets the runbookType property: Gets or sets the type of the runbook.
     *
     * @return the runbookType value.
     */
    RunbookTypeEnum runbookType();

    /**
     * Gets the publishContentLink property: Gets or sets the published runbook content link.
     *
     * @return the publishContentLink value.
     */
    ContentLink publishContentLink();

    /**
     * Gets the state property: Gets or sets the state of the runbook.
     *
     * @return the state value.
     */
    RunbookState state();

    /**
     * Gets the logVerbose property: Gets or sets verbose log option.
     *
     * @return the logVerbose value.
     */
    Boolean logVerbose();

    /**
     * Gets the logProgress property: Gets or sets progress log option.
     *
     * @return the logProgress value.
     */
    Boolean logProgress();

    /**
     * Gets the logActivityTrace property: Gets or sets the option to log activity trace of the runbook.
     *
     * @return the logActivityTrace value.
     */
    Integer logActivityTrace();

    /**
     * Gets the jobCount property: Gets or sets the job count of the runbook.
     *
     * @return the jobCount value.
     */
    Integer jobCount();

    /**
     * Gets the parameters property: Gets or sets the runbook parameters.
     *
     * @return the parameters value.
     */
    Map<String, RunbookParameter> parameters();

    /**
     * Gets the outputTypes property: Gets or sets the runbook output types.
     *
     * @return the outputTypes value.
     */
    List<String> outputTypes();

    /**
     * Gets the draft property: Gets or sets the draft runbook properties.
     *
     * @return the draft value.
     */
    RunbookDraft draft();

    /**
     * Gets the provisioningState property: Gets or sets the provisioning state of the runbook.
     *
     * @return the provisioningState value.
     */
    RunbookProvisioningState provisioningState();

    /**
     * Gets the lastModifiedBy property: Gets or sets the last modified by.
     *
     * @return the lastModifiedBy value.
     */
    String lastModifiedBy();

    /**
     * Gets the creationTime property: Gets or sets the creation time.
     *
     * @return the creationTime value.
     */
    OffsetDateTime creationTime();

    /**
     * Gets the lastModifiedTime property: Gets or sets the last modified time.
     *
     * @return the lastModifiedTime value.
     */
    OffsetDateTime lastModifiedTime();

    /**
     * Gets the description property: Gets or sets the description.
     *
     * @return the description value.
     */
    String description();

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