import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Remediation Recipe resource in Oracle Cloud Infrastructure Adm service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/adm/latest/RemediationRecipe
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/adm
 *
 * Creates a new Remediation Recipe.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testRemediationRecipe = new oci.adm.RemediationRecipe("test_remediation_recipe", {
 *     compartmentId: compartmentId,
 *     detectConfiguration: {
 *         exclusions: remediationRecipeDetectConfigurationExclusions,
 *         maxPermissibleCvssV2score: remediationRecipeDetectConfigurationMaxPermissibleCvssV2score,
 *         maxPermissibleCvssV3score: remediationRecipeDetectConfigurationMaxPermissibleCvssV3score,
 *         maxPermissibleSeverity: remediationRecipeDetectConfigurationMaxPermissibleSeverity,
 *         upgradePolicy: remediationRecipeDetectConfigurationUpgradePolicy,
 *     },
 *     isRunTriggeredOnKbChange: remediationRecipeIsRunTriggeredOnKbChange === "true",
 *     knowledgeBaseId: testKnowledgeBase.id,
 *     networkConfiguration: {
 *         subnetId: testSubnet.id,
 *         nsgIds: remediationRecipeNetworkConfigurationNsgIds,
 *     },
 *     scmConfiguration: {
 *         branch: remediationRecipeScmConfigurationBranch,
 *         isAutomergeEnabled: remediationRecipeScmConfigurationIsAutomergeEnabled === "true",
 *         scmType: remediationRecipeScmConfigurationScmType,
 *         buildFileLocation: remediationRecipeScmConfigurationBuildFileLocation,
 *         externalScmType: remediationRecipeScmConfigurationExternalScmType,
 *         ociCodeRepositoryId: testRepository.id,
 *         patSecretId: testSecret.id,
 *         repositoryUrl: remediationRecipeScmConfigurationRepositoryUrl,
 *         username: remediationRecipeScmConfigurationUsername,
 *     },
 *     verifyConfiguration: {
 *         buildServiceType: remediationRecipeVerifyConfigurationBuildServiceType,
 *         additionalParameters: remediationRecipeVerifyConfigurationAdditionalParameters,
 *         jenkinsUrl: remediationRecipeVerifyConfigurationJenkinsUrl,
 *         jobName: testJob.name,
 *         patSecretId: testSecret.id,
 *         pipelineId: testPipeline.id,
 *         repositoryUrl: remediationRecipeVerifyConfigurationRepositoryUrl,
 *         triggerSecretId: testSecret.id,
 *         username: remediationRecipeVerifyConfigurationUsername,
 *         workflowName: remediationRecipeVerifyConfigurationWorkflowName,
 *     },
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     displayName: remediationRecipeDisplayName,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * RemediationRecipes can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Adm/remediationRecipe:RemediationRecipe test_remediation_recipe "id"
 * ```
 */
export declare class RemediationRecipe extends pulumi.CustomResource {
    /**
     * Get an existing RemediationRecipe 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?: RemediationRecipeState, opts?: pulumi.CustomResourceOptions): RemediationRecipe;
    /**
     * Returns true if the given object is an instance of RemediationRecipe.  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 RemediationRecipe;
    /**
     * (Updatable) The compartment Oracle Cloud Identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the remediation recipe.
     */
    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 configuration to define the constraints when detecting vulnerable dependencies and recommending remediations.
     */
    readonly detectConfiguration: pulumi.Output<outputs.Adm.RemediationRecipeDetectConfiguration>;
    /**
     * (Updatable) The name of the remediation recipe.
     */
    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;
    }>;
    /**
     * (Updatable) Boolean indicating if a run should be automatically triggered once the knowledge base is updated.
     */
    readonly isRunTriggeredOnKbChange: pulumi.Output<boolean>;
    /**
     * (Updatable) The Oracle Cloud Identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the knowledge base.
     */
    readonly knowledgeBaseId: pulumi.Output<string>;
    /**
     * (Updatable) A network configuration defines the required network characteristics for the remediation run of the recipe to access the source repository and/or verify build services.
     */
    readonly networkConfiguration: pulumi.Output<outputs.Adm.RemediationRecipeNetworkConfiguration>;
    /**
     * (Updatable) A configuration for the Source Code Management tool/platform used by a remediation recipe.
     */
    readonly scmConfiguration: pulumi.Output<outputs.Adm.RemediationRecipeScmConfiguration>;
    /**
     * (Updatable) The target state for the Remediation Recipe. Could be set to `ACTIVE` or `INACTIVE`.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly state: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The creation date and time of the Remediation Recipe (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time the Remediation Recipe was last updated (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * (Updatable) The Verify stage configuration specifies a build service to run a pipeline for the recommended code changes. The build pipeline will be initiated to ensure that there is no breaking change after the dependency versions have been updated in source to avoid vulnerabilities.
     */
    readonly verifyConfiguration: pulumi.Output<outputs.Adm.RemediationRecipeVerifyConfiguration>;
    /**
     * Create a RemediationRecipe 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: RemediationRecipeArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering RemediationRecipe resources.
 */
export interface RemediationRecipeState {
    /**
     * (Updatable) The compartment Oracle Cloud Identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the remediation recipe.
     */
    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 configuration to define the constraints when detecting vulnerable dependencies and recommending remediations.
     */
    detectConfiguration?: pulumi.Input<inputs.Adm.RemediationRecipeDetectConfiguration | undefined>;
    /**
     * (Updatable) The name of the remediation recipe.
     */
    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>;
    /**
     * (Updatable) Boolean indicating if a run should be automatically triggered once the knowledge base is updated.
     */
    isRunTriggeredOnKbChange?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) The Oracle Cloud Identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the knowledge base.
     */
    knowledgeBaseId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A network configuration defines the required network characteristics for the remediation run of the recipe to access the source repository and/or verify build services.
     */
    networkConfiguration?: pulumi.Input<inputs.Adm.RemediationRecipeNetworkConfiguration | undefined>;
    /**
     * (Updatable) A configuration for the Source Code Management tool/platform used by a remediation recipe.
     */
    scmConfiguration?: pulumi.Input<inputs.Adm.RemediationRecipeScmConfiguration | undefined>;
    /**
     * (Updatable) The target state for the Remediation Recipe. Could be set to `ACTIVE` or `INACTIVE`.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The creation date and time of the Remediation Recipe (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time the Remediation Recipe was last updated (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The Verify stage configuration specifies a build service to run a pipeline for the recommended code changes. The build pipeline will be initiated to ensure that there is no breaking change after the dependency versions have been updated in source to avoid vulnerabilities.
     */
    verifyConfiguration?: pulumi.Input<inputs.Adm.RemediationRecipeVerifyConfiguration | undefined>;
}
/**
 * The set of arguments for constructing a RemediationRecipe resource.
 */
export interface RemediationRecipeArgs {
    /**
     * (Updatable) The compartment Oracle Cloud Identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the remediation recipe.
     */
    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 configuration to define the constraints when detecting vulnerable dependencies and recommending remediations.
     */
    detectConfiguration: pulumi.Input<inputs.Adm.RemediationRecipeDetectConfiguration>;
    /**
     * (Updatable) The name of the remediation recipe.
     */
    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>;
    /**
     * (Updatable) Boolean indicating if a run should be automatically triggered once the knowledge base is updated.
     */
    isRunTriggeredOnKbChange: pulumi.Input<boolean>;
    /**
     * (Updatable) The Oracle Cloud Identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the knowledge base.
     */
    knowledgeBaseId: pulumi.Input<string>;
    /**
     * (Updatable) A network configuration defines the required network characteristics for the remediation run of the recipe to access the source repository and/or verify build services.
     */
    networkConfiguration: pulumi.Input<inputs.Adm.RemediationRecipeNetworkConfiguration>;
    /**
     * (Updatable) A configuration for the Source Code Management tool/platform used by a remediation recipe.
     */
    scmConfiguration: pulumi.Input<inputs.Adm.RemediationRecipeScmConfiguration>;
    /**
     * (Updatable) The target state for the Remediation Recipe. Could be set to `ACTIVE` or `INACTIVE`.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The Verify stage configuration specifies a build service to run a pipeline for the recommended code changes. The build pipeline will be initiated to ensure that there is no breaking change after the dependency versions have been updated in source to avoid vulnerabilities.
     */
    verifyConfiguration: pulumi.Input<inputs.Adm.RemediationRecipeVerifyConfiguration>;
}
//# sourceMappingURL=remediationRecipe.d.ts.map