import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Script resource in Oracle Cloud Infrastructure Apm Synthetics service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/apm-synthetic-monitoring/latest/Script
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/apm/apm_synthetics
 *
 * Creates a new script.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testScript = new oci.apmsynthetics.Script("test_script", {
 *     apmDomainId: testApmDomain.id,
 *     content: scriptContent,
 *     contentType: scriptContentType,
 *     displayName: scriptDisplayName,
 *     contentFileName: scriptContentFileName,
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     parameters: [{
 *         paramName: scriptParametersParamName,
 *         isSecret: scriptParametersIsSecret === "true",
 *         paramValue: scriptParametersParamValue,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * Scripts can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:ApmSynthetics/script:Script test_script "scripts/{scriptId}/apmDomainId/{apmDomainId}"
 * ```
 */
export declare class Script extends pulumi.CustomResource {
    /**
     * Get an existing Script 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?: ScriptState, opts?: pulumi.CustomResourceOptions): Script;
    /**
     * Returns true if the given object is an instance of Script.  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 Script;
    /**
     * (Updatable) The APM domain ID the request is intended for.
     */
    readonly apmDomainId: pulumi.Output<string>;
    /**
     * (Updatable) The content of the script. It may contain custom-defined tags that can be used for setting dynamic parameters. The format to set dynamic parameters is: `<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>`. Param value and isParamValueSecret are optional, the default value for isParamValueSecret is false. Examples: With mandatory param name : `<ORAP><ON>param name</ON></ORAP>` With parameter name and value : `<ORAP><ON>param name</ON><OV>param value</OV></ORAP>` Note that the content is valid if it matches the given content type. For example, if the content type is SIDE, then the content should be in Side script format. If the content type is JS, then the content should be in JavaScript format. If the content type is PLAYWRIGHT_TS, then the content should be in TypeScript format.
     */
    readonly content: pulumi.Output<string>;
    /**
     * (Updatable) File name of uploaded script content.
     */
    readonly contentFileName: pulumi.Output<string>;
    /**
     * Size of the script content.
     */
    readonly contentSizeInBytes: pulumi.Output<number>;
    /**
     * (Updatable) Content type of script.
     */
    readonly contentType: 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) Unique name that can be edited. The name should not contain any confidential information.
     */
    readonly displayName: 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;
    }>;
    /**
     * Details of the monitor count per state. Example: `{ "total" : 5, "enabled" : 3 , "disabled" : 2, "invalid" : 0 }`
     */
    readonly monitorStatusCountMaps: pulumi.Output<outputs.ApmSynthetics.ScriptMonitorStatusCountMap[]>;
    /**
     * (Updatable) List of script parameters. Example: `[{"paramName": "userid", "paramValue":"testuser", "isSecret": false}]`
     */
    readonly parameters: pulumi.Output<outputs.ApmSynthetics.ScriptParameter[]>;
    /**
     * The time the resource was created, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: `2020-02-12T22:47:12.613Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time the resource was updated, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: `2020-02-13T22:47:12.613Z`
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * The time the script was uploaded.
     */
    readonly timeUploaded: pulumi.Output<string>;
    /**
     * Create a Script 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: ScriptArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Script resources.
 */
export interface ScriptState {
    /**
     * (Updatable) The APM domain ID the request is intended for.
     */
    apmDomainId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The content of the script. It may contain custom-defined tags that can be used for setting dynamic parameters. The format to set dynamic parameters is: `<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>`. Param value and isParamValueSecret are optional, the default value for isParamValueSecret is false. Examples: With mandatory param name : `<ORAP><ON>param name</ON></ORAP>` With parameter name and value : `<ORAP><ON>param name</ON><OV>param value</OV></ORAP>` Note that the content is valid if it matches the given content type. For example, if the content type is SIDE, then the content should be in Side script format. If the content type is JS, then the content should be in JavaScript format. If the content type is PLAYWRIGHT_TS, then the content should be in TypeScript format.
     */
    content?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) File name of uploaded script content.
     */
    contentFileName?: pulumi.Input<string | undefined>;
    /**
     * Size of the script content.
     */
    contentSizeInBytes?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Content type of script.
     */
    contentType?: 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) Unique name that can be edited. The name should not contain any confidential information.
     */
    displayName?: 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>;
    /**
     * Details of the monitor count per state. Example: `{ "total" : 5, "enabled" : 3 , "disabled" : 2, "invalid" : 0 }`
     */
    monitorStatusCountMaps?: pulumi.Input<pulumi.Input<inputs.ApmSynthetics.ScriptMonitorStatusCountMap>[] | undefined>;
    /**
     * (Updatable) List of script parameters. Example: `[{"paramName": "userid", "paramValue":"testuser", "isSecret": false}]`
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.ApmSynthetics.ScriptParameter>[] | undefined>;
    /**
     * The time the resource was created, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: `2020-02-12T22:47:12.613Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time the resource was updated, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: `2020-02-13T22:47:12.613Z`
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * The time the script was uploaded.
     */
    timeUploaded?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Script resource.
 */
export interface ScriptArgs {
    /**
     * (Updatable) The APM domain ID the request is intended for.
     */
    apmDomainId: pulumi.Input<string>;
    /**
     * (Updatable) The content of the script. It may contain custom-defined tags that can be used for setting dynamic parameters. The format to set dynamic parameters is: `<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>`. Param value and isParamValueSecret are optional, the default value for isParamValueSecret is false. Examples: With mandatory param name : `<ORAP><ON>param name</ON></ORAP>` With parameter name and value : `<ORAP><ON>param name</ON><OV>param value</OV></ORAP>` Note that the content is valid if it matches the given content type. For example, if the content type is SIDE, then the content should be in Side script format. If the content type is JS, then the content should be in JavaScript format. If the content type is PLAYWRIGHT_TS, then the content should be in TypeScript format.
     */
    content: pulumi.Input<string>;
    /**
     * (Updatable) File name of uploaded script content.
     */
    contentFileName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Content type of script.
     */
    contentType: 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) Unique name that can be edited. The name should not contain any confidential information.
     */
    displayName: pulumi.Input<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"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) List of script parameters. Example: `[{"paramName": "userid", "paramValue":"testuser", "isSecret": false}]`
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.ApmSynthetics.ScriptParameter>[] | undefined>;
}
//# sourceMappingURL=script.d.ts.map