import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Runbook resource in Oracle Cloud Infrastructure Fleet Apps Management service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/fleet-management/latest/Runbook
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/fleet_apps_management
 *
 * Creates a runbook.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testRunbook = new oci.fleetappsmanagement.Runbook("test_runbook", {
 *     compartmentId: compartmentId,
 *     displayName: runbookDisplayName,
 *     operation: runbookOperation,
 *     runbookVersion: {
 *         executionWorkflowDetails: {
 *             workflows: [{
 *                 groupName: testGroup.name,
 *                 steps: [{
 *                     type: runbookRunbookVersionExecutionWorkflowDetailsWorkflowStepsType,
 *                     groupName: testGroup.name,
 *                     stepName: runbookRunbookVersionExecutionWorkflowDetailsWorkflowStepsStepName,
 *                     steps: runbookRunbookVersionExecutionWorkflowDetailsWorkflowStepsSteps,
 *                 }],
 *                 type: runbookRunbookVersionExecutionWorkflowDetailsWorkflowType,
 *             }],
 *         },
 *         groups: [{
 *             name: runbookRunbookVersionGroupsName,
 *             type: runbookRunbookVersionGroupsType,
 *             properties: {
 *                 actionOnFailure: runbookRunbookVersionGroupsPropertiesActionOnFailure,
 *                 notificationPreferences: {
 *                     shouldNotifyOnPause: runbookRunbookVersionGroupsPropertiesNotificationPreferencesShouldNotifyOnPause === "true",
 *                     shouldNotifyOnTaskFailure: runbookRunbookVersionGroupsPropertiesNotificationPreferencesShouldNotifyOnTaskFailure === "true",
 *                     shouldNotifyOnTaskSuccess: runbookRunbookVersionGroupsPropertiesNotificationPreferencesShouldNotifyOnTaskSuccess === "true",
 *                 },
 *                 pauseDetails: {
 *                     kind: runbookRunbookVersionGroupsPropertiesPauseDetailsKind,
 *                     durationInMinutes: Number(runbookRunbookVersionGroupsPropertiesPauseDetailsDurationInMinutes),
 *                 },
 *                 preCondition: runbookRunbookVersionGroupsPropertiesPreCondition,
 *                 runOn: {
 *                     kind: runbookRunbookVersionGroupsPropertiesRunOnKind,
 *                     condition: runbookRunbookVersionGroupsPropertiesRunOnCondition,
 *                     host: runbookRunbookVersionGroupsPropertiesRunOnHost,
 *                     previousTaskInstanceDetails: [{
 *                         outputVariableDetails: {
 *                             outputVariableName: runbookRunbookVersionGroupsPropertiesRunOnPreviousTaskInstanceDetailsOutputVariableDetailsOutputVariableName,
 *                             stepName: runbookRunbookVersionGroupsPropertiesRunOnPreviousTaskInstanceDetailsOutputVariableDetailsStepName,
 *                         },
 *                         resourceId: testResource.id,
 *                         resourceType: runbookRunbookVersionGroupsPropertiesRunOnPreviousTaskInstanceDetailsResourceType,
 *                     }],
 *                 },
 *             },
 *         }],
 *         tasks: [{
 *             stepName: runbookRunbookVersionTasksStepName,
 *             taskRecordDetails: {
 *                 scope: runbookRunbookVersionTasksTaskRecordDetailsScope,
 *                 description: runbookRunbookVersionTasksTaskRecordDetailsDescription,
 *                 executionDetails: {
 *                     executionType: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsExecutionType,
 *                     catalogId: testCatalog.id,
 *                     command: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsCommand,
 *                     configFile: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsConfigFile,
 *                     content: {
 *                         sourceType: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsContentSourceType,
 *                         bucket: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsContentBucket,
 *                         catalogId: testCatalog.id,
 *                         checksum: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsContentChecksum,
 *                         namespace: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsContentNamespace,
 *                         object: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsContentObject,
 *                     },
 *                     credentials: [{
 *                         displayName: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsCredentialsDisplayName,
 *                         id: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsCredentialsId,
 *                     }],
 *                     endpoint: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsEndpoint,
 *                     isExecutableContent: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsIsExecutableContent === "true",
 *                     isLocked: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsIsLocked === "true",
 *                     isReadOutputVariableEnabled: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsIsReadOutputVariableEnabled === "true",
 *                     systemVariables: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsSystemVariables,
 *                     targetCompartmentId: testCompartment.id,
 *                     variables: {
 *                         inputVariables: [{
 *                             description: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsVariablesInputVariablesDescription,
 *                             name: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsVariablesInputVariablesName,
 *                             type: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsVariablesInputVariablesType,
 *                         }],
 *                         outputVariables: runbookRunbookVersionTasksTaskRecordDetailsExecutionDetailsVariablesOutputVariables,
 *                     },
 *                 },
 *                 isApplySubjectTask: runbookRunbookVersionTasksTaskRecordDetailsIsApplySubjectTask === "true",
 *                 isCopyToLibraryEnabled: runbookRunbookVersionTasksTaskRecordDetailsIsCopyToLibraryEnabled === "true",
 *                 isDiscoveryOutputTask: runbookRunbookVersionTasksTaskRecordDetailsIsDiscoveryOutputTask === "true",
 *                 name: runbookRunbookVersionTasksTaskRecordDetailsName,
 *                 osType: runbookRunbookVersionTasksTaskRecordDetailsOsType,
 *                 platform: runbookRunbookVersionTasksTaskRecordDetailsPlatform,
 *                 properties: {
 *                     numRetries: Number(runbookRunbookVersionTasksTaskRecordDetailsPropertiesNumRetries),
 *                     timeoutInSeconds: Number(runbookRunbookVersionTasksTaskRecordDetailsPropertiesTimeoutInSeconds),
 *                 },
 *                 taskRecordId: testTaskRecord.id,
 *             },
 *             outputVariableMappings: [{
 *                 name: runbookRunbookVersionTasksOutputVariableMappingsName,
 *                 outputVariableDetails: {
 *                     outputVariableName: runbookRunbookVersionTasksOutputVariableMappingsOutputVariableDetailsOutputVariableName,
 *                     stepName: runbookRunbookVersionTasksOutputVariableMappingsOutputVariableDetailsStepName,
 *                 },
 *             }],
 *             stepProperties: {
 *                 actionOnFailure: runbookRunbookVersionTasksStepPropertiesActionOnFailure,
 *                 notificationPreferences: {
 *                     shouldNotifyOnPause: runbookRunbookVersionTasksStepPropertiesNotificationPreferencesShouldNotifyOnPause === "true",
 *                     shouldNotifyOnTaskFailure: runbookRunbookVersionTasksStepPropertiesNotificationPreferencesShouldNotifyOnTaskFailure === "true",
 *                     shouldNotifyOnTaskSuccess: runbookRunbookVersionTasksStepPropertiesNotificationPreferencesShouldNotifyOnTaskSuccess === "true",
 *                 },
 *                 pauseDetails: {
 *                     kind: runbookRunbookVersionTasksStepPropertiesPauseDetailsKind,
 *                     durationInMinutes: Number(runbookRunbookVersionTasksStepPropertiesPauseDetailsDurationInMinutes),
 *                 },
 *                 preCondition: runbookRunbookVersionTasksStepPropertiesPreCondition,
 *                 runOn: {
 *                     kind: runbookRunbookVersionTasksStepPropertiesRunOnKind,
 *                     condition: runbookRunbookVersionTasksStepPropertiesRunOnCondition,
 *                     host: runbookRunbookVersionTasksStepPropertiesRunOnHost,
 *                     previousTaskInstanceDetails: [{
 *                         outputVariableDetails: {
 *                             outputVariableName: runbookRunbookVersionTasksStepPropertiesRunOnPreviousTaskInstanceDetailsOutputVariableDetailsOutputVariableName,
 *                             stepName: runbookRunbookVersionTasksStepPropertiesRunOnPreviousTaskInstanceDetailsOutputVariableDetailsStepName,
 *                         },
 *                         resourceId: testResource.id,
 *                         resourceType: runbookRunbookVersionTasksStepPropertiesRunOnPreviousTaskInstanceDetailsResourceType,
 *                     }],
 *                 },
 *             },
 *         }],
 *         isLatest: runbookRunbookVersionIsLatest === "true",
 *         rollbackWorkflowDetails: {
 *             scope: runbookRunbookVersionRollbackWorkflowDetailsScope,
 *             workflows: [{
 *                 groupName: testGroup.name,
 *                 steps: [{
 *                     type: runbookRunbookVersionRollbackWorkflowDetailsWorkflowStepsType,
 *                     groupName: testGroup.name,
 *                     stepName: runbookRunbookVersionRollbackWorkflowDetailsWorkflowStepsStepName,
 *                     steps: runbookRunbookVersionRollbackWorkflowDetailsWorkflowStepsSteps,
 *                 }],
 *                 type: runbookRunbookVersionRollbackWorkflowDetailsWorkflowType,
 *             }],
 *         },
 *         version: runbookRunbookVersionVersion,
 *     },
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     description: runbookDescription,
 *     estimatedTime: runbookEstimatedTime,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     isDefault: runbookIsDefault === "true",
 *     isSudoAccessNeeded: runbookIsSudoAccessNeeded === "true",
 *     osType: runbookOsType,
 *     platform: runbookPlatform,
 * });
 * ```
 *
 * ## Import
 *
 * Runbooks can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:FleetAppsManagement/runbook:Runbook test_runbook "id"
 * ```
 */
export declare class Runbook extends pulumi.CustomResource {
    /**
     * Get an existing Runbook resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: RunbookState, opts?: pulumi.CustomResourceOptions): Runbook;
    /**
     * Returns true if the given object is an instance of Runbook.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Runbook;
    /**
     * (Updatable)
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) A user-friendly description. To provide some insight about the resource. Avoid entering confidential information.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.  Example: `My new resource`
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * (Updatable) Estimated time to successfully complete the runbook execution.
     */
    readonly estimatedTime: pulumi.Output<string>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Does this runbook has draft versions?
     */
    readonly hasDraftVersion: pulumi.Output<boolean>;
    /**
     * (Updatable) Is the runbook default?
     */
    readonly isDefault: pulumi.Output<boolean>;
    /**
     * (Updatable) Does this runbook need SUDO access to execute?
     */
    readonly isSudoAccessNeeded: pulumi.Output<boolean>;
    /**
     * Latest runbook version.
     */
    readonly latestVersion: pulumi.Output<string>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) The lifecycle operation performed by the task.
     */
    readonly operation: pulumi.Output<string>;
    /**
     * (Updatable) The OS type for the runbook.
     */
    readonly osType: pulumi.Output<string>;
    /**
     * (Updatable) The platform of the runbook.
     */
    readonly platform: pulumi.Output<string>;
    /**
     * Associated region
     */
    readonly resourceRegion: pulumi.Output<string>;
    /**
     * Version for the runbook. Versioning runbooks in Fleet Application Management involve assigning unique identifiers or version numbers to different iterations of the runbook to track changes, improvements, and updates over time.
     */
    readonly runbookVersion: pulumi.Output<outputs.FleetAppsManagement.RunbookRunbookVersion>;
    /**
     * The current state of the runbook.
     */
    readonly state: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The time this resource was created. An RFC3339 formatted datetime string.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time this resource was last updated. An RFC3339 formatted datetime string.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * The type of the runbook.
     */
    readonly type: pulumi.Output<string>;
    /**
     * Create a Runbook resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: RunbookArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Runbook resources.
 */
export interface RunbookState {
    /**
     * (Updatable)
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-friendly description. To provide some insight about the resource. Avoid entering confidential information.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.  Example: `My new resource`
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Estimated time to successfully complete the runbook execution.
     */
    estimatedTime?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Does this runbook has draft versions?
     */
    hasDraftVersion?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Is the runbook default?
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Does this runbook need SUDO access to execute?
     */
    isSudoAccessNeeded?: pulumi.Input<boolean | undefined>;
    /**
     * Latest runbook version.
     */
    latestVersion?: pulumi.Input<string | undefined>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The lifecycle operation performed by the task.
     */
    operation?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OS type for the runbook.
     */
    osType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The platform of the runbook.
     */
    platform?: pulumi.Input<string | undefined>;
    /**
     * Associated region
     */
    resourceRegion?: pulumi.Input<string | undefined>;
    /**
     * Version for the runbook. Versioning runbooks in Fleet Application Management involve assigning unique identifiers or version numbers to different iterations of the runbook to track changes, improvements, and updates over time.
     */
    runbookVersion?: pulumi.Input<inputs.FleetAppsManagement.RunbookRunbookVersion | undefined>;
    /**
     * The current state of the runbook.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The time this resource was created. An RFC3339 formatted datetime string.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time this resource was last updated. An RFC3339 formatted datetime string.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * The type of the runbook.
     */
    type?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Runbook resource.
 */
export interface RunbookArgs {
    /**
     * (Updatable)
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-friendly description. To provide some insight about the resource. Avoid entering confidential information.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.  Example: `My new resource`
     */
    displayName: pulumi.Input<string>;
    /**
     * (Updatable) Estimated time to successfully complete the runbook execution.
     */
    estimatedTime?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Is the runbook default?
     */
    isDefault?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Does this runbook need SUDO access to execute?
     */
    isSudoAccessNeeded?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) The lifecycle operation performed by the task.
     */
    operation: pulumi.Input<string>;
    /**
     * (Updatable) The OS type for the runbook.
     */
    osType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The platform of the runbook.
     */
    platform?: pulumi.Input<string | undefined>;
    /**
     * Version for the runbook. Versioning runbooks in Fleet Application Management involve assigning unique identifiers or version numbers to different iterations of the runbook to track changes, improvements, and updates over time.
     */
    runbookVersion: pulumi.Input<inputs.FleetAppsManagement.RunbookRunbookVersion>;
}
//# sourceMappingURL=runbook.d.ts.map