import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Vulnerability Audit resource in Oracle Cloud Infrastructure Adm service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/adm/latest/VulnerabilityAudit
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/adm
 *
 * Creates a new Vulnerability Audit by providing a tree of Application Dependencies.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testVulnerabilityAudit = new oci.adm.VulnerabilityAudit("test_vulnerability_audit", {
 *     knowledgeBaseId: testKnowledgeBase.id,
 *     applicationDependencies: [{
 *         nodeId: testNode.id,
 *         applicationDependencyNodeIds: vulnerabilityAuditApplicationDependenciesApplicationDependencyNodeIds,
 *         gav: vulnerabilityAuditApplicationDependenciesGav,
 *         purl: vulnerabilityAuditApplicationDependenciesPurl,
 *     }],
 *     buildType: vulnerabilityAuditBuildType,
 *     compartmentId: compartmentId,
 *     configuration: {
 *         exclusions: vulnerabilityAuditConfigurationExclusions,
 *         maxPermissibleCvssV2score: vulnerabilityAuditConfigurationMaxPermissibleCvssV2score,
 *         maxPermissibleCvssV3score: vulnerabilityAuditConfigurationMaxPermissibleCvssV3score,
 *         maxPermissibleSeverity: vulnerabilityAuditConfigurationMaxPermissibleSeverity,
 *     },
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     displayName: vulnerabilityAuditDisplayName,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     source: {
 *         type: vulnerabilityAuditSourceType,
 *         description: vulnerabilityAuditSourceDescription,
 *         ociResourceId: testOciResource.id,
 *     },
 *     usageData: {
 *         bucket: vulnerabilityAuditUsageDataBucket,
 *         namespace: vulnerabilityAuditUsageDataNamespace,
 *         object: vulnerabilityAuditUsageDataObject,
 *         sourceType: vulnerabilityAuditUsageDataSourceType,
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * VulnerabilityAudits can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Adm/vulnerabilityAudit:VulnerabilityAudit test_vulnerability_audit "id"
 * ```
 */
export declare class VulnerabilityAudit extends pulumi.CustomResource {
    /**
     * Get an existing VulnerabilityAudit 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?: VulnerabilityAuditState, opts?: pulumi.CustomResourceOptions): VulnerabilityAudit;
    /**
     * Returns true if the given object is an instance of VulnerabilityAudit.  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 VulnerabilityAudit;
    /**
     * List of application dependencies (without vulnerabilities).
     */
    readonly applicationDependencies: pulumi.Output<outputs.Adm.VulnerabilityAuditApplicationDependency[]>;
    /**
     * The type of the build tool is restricted to only two values MAVEN or UNSET. Use UNSET when the list of application dependencies is not Maven-related or is a mix of Maven and other ecosystems. This option is soon to be deprecated.
     */
    readonly buildType: pulumi.Output<string>;
    /**
     * (Updatable) The compartment Oracle Cloud identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the vulnerability audit.  If compartment identifier is not provided the compartment of the associated knowledge base will be used instead.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Configuration for a vulnerability audit. A vulnerable application dependency is ignored if its name does match any of the items in `exclusions`, or all of the associated Vulnerabilies have a CVSS v2 score below `maxPermissibleCvssV2Score` and a CVSS v3 score below `maxPermissibleCvssV3Score`. type: object
     */
    readonly configuration: pulumi.Output<outputs.Adm.VulnerabilityAuditConfiguration>;
    /**
     * (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) The name of the vulnerability audit.
     */
    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;
    }>;
    /**
     * Indicates if an audit succeeded according to the configuration. The value is `null` if the audit is in the `CREATING` state.
     */
    readonly isSuccess: pulumi.Output<boolean>;
    /**
     * 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>;
    /**
     * Details on the lifecycle state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * Maximum Common Vulnerability Scoring System Version 2 score observed for non-ignored vulnerable application dependencies.
     */
    readonly maxObservedCvssV2score: pulumi.Output<number>;
    /**
     * Maximum Common Vulnerability Scoring System Version 2 score observed for vulnerable application dependencies including ignored ones.
     */
    readonly maxObservedCvssV2scoreWithIgnored: pulumi.Output<number>;
    /**
     * Maximum Common Vulnerability Scoring System Version 3 score observed for non-ignored vulnerable application dependencies.
     */
    readonly maxObservedCvssV3score: pulumi.Output<number>;
    /**
     * Maximum Common Vulnerability Scoring System Version 3 score observed for vulnerable application dependencies including ignored ones.
     */
    readonly maxObservedCvssV3scoreWithIgnored: pulumi.Output<number>;
    /**
     * Maximum ADM Severity observed for non-ignored vulnerable application dependencies.
     */
    readonly maxObservedSeverity: pulumi.Output<string>;
    /**
     * Maximum ADM Severity observed for vulnerable application dependencies including ignored ones.
     */
    readonly maxObservedSeverityWithIgnored: pulumi.Output<string>;
    /**
     * vulnerability audit source.
     */
    readonly source: pulumi.Output<outputs.Adm.VulnerabilityAuditSource>;
    /**
     * The current lifecycle state of the vulnerability audit.
     */
    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 vulnerability audit (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The update date and time of the vulnerability audit (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * The source details of the usage data in object storage. The usage data file uploaded to object storage must be a gzip archive of the JSON usage data returned from the GraalVM native-image-inspect tool after a native-image build. Set `sourceType` to `objectStorageTuple` and use [UsageDataViaObjectStorageTupleDetails](https://docs.cloud.oracle.com/iaas/api/#/en/adm/latest/requests/UsageDataViaObjectStorageTupleDetails) when specifying the namespace, bucket name, and object name.
     */
    readonly usageData: pulumi.Output<outputs.Adm.VulnerabilityAuditUsageData>;
    /**
     * List of vulnerabilities found in the vulnerability audit. If a vulnerability affects multiple dependencies, the metadata returned here consists of audit-wide aggregates.
     */
    readonly vulnerabilities: pulumi.Output<outputs.Adm.VulnerabilityAuditVulnerability[]>;
    /**
     * Count of non-ignored vulnerable application dependencies.
     */
    readonly vulnerableArtifactsCount: pulumi.Output<number>;
    /**
     * Count of all vulnerable application dependencies.
     */
    readonly vulnerableArtifactsCountWithIgnored: pulumi.Output<number>;
    /**
     * Create a VulnerabilityAudit 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: VulnerabilityAuditArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering VulnerabilityAudit resources.
 */
export interface VulnerabilityAuditState {
    /**
     * List of application dependencies (without vulnerabilities).
     */
    applicationDependencies?: pulumi.Input<pulumi.Input<inputs.Adm.VulnerabilityAuditApplicationDependency>[] | undefined>;
    /**
     * The type of the build tool is restricted to only two values MAVEN or UNSET. Use UNSET when the list of application dependencies is not Maven-related or is a mix of Maven and other ecosystems. This option is soon to be deprecated.
     */
    buildType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The compartment Oracle Cloud identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the vulnerability audit.  If compartment identifier is not provided the compartment of the associated knowledge base will be used instead.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Configuration for a vulnerability audit. A vulnerable application dependency is ignored if its name does match any of the items in `exclusions`, or all of the associated Vulnerabilies have a CVSS v2 score below `maxPermissibleCvssV2Score` and a CVSS v3 score below `maxPermissibleCvssV3Score`. type: object
     */
    configuration?: pulumi.Input<inputs.Adm.VulnerabilityAuditConfiguration | 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) The name of the vulnerability audit.
     */
    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>;
    /**
     * Indicates if an audit succeeded according to the configuration. The value is `null` if the audit is in the `CREATING` state.
     */
    isSuccess?: pulumi.Input<boolean | undefined>;
    /**
     * 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>;
    /**
     * Details on the lifecycle state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * Maximum Common Vulnerability Scoring System Version 2 score observed for non-ignored vulnerable application dependencies.
     */
    maxObservedCvssV2score?: pulumi.Input<number | undefined>;
    /**
     * Maximum Common Vulnerability Scoring System Version 2 score observed for vulnerable application dependencies including ignored ones.
     */
    maxObservedCvssV2scoreWithIgnored?: pulumi.Input<number | undefined>;
    /**
     * Maximum Common Vulnerability Scoring System Version 3 score observed for non-ignored vulnerable application dependencies.
     */
    maxObservedCvssV3score?: pulumi.Input<number | undefined>;
    /**
     * Maximum Common Vulnerability Scoring System Version 3 score observed for vulnerable application dependencies including ignored ones.
     */
    maxObservedCvssV3scoreWithIgnored?: pulumi.Input<number | undefined>;
    /**
     * Maximum ADM Severity observed for non-ignored vulnerable application dependencies.
     */
    maxObservedSeverity?: pulumi.Input<string | undefined>;
    /**
     * Maximum ADM Severity observed for vulnerable application dependencies including ignored ones.
     */
    maxObservedSeverityWithIgnored?: pulumi.Input<string | undefined>;
    /**
     * vulnerability audit source.
     */
    source?: pulumi.Input<inputs.Adm.VulnerabilityAuditSource | undefined>;
    /**
     * The current lifecycle state of the vulnerability audit.
     */
    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 vulnerability audit (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The update date and time of the vulnerability audit (formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339)).
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * The source details of the usage data in object storage. The usage data file uploaded to object storage must be a gzip archive of the JSON usage data returned from the GraalVM native-image-inspect tool after a native-image build. Set `sourceType` to `objectStorageTuple` and use [UsageDataViaObjectStorageTupleDetails](https://docs.cloud.oracle.com/iaas/api/#/en/adm/latest/requests/UsageDataViaObjectStorageTupleDetails) when specifying the namespace, bucket name, and object name.
     */
    usageData?: pulumi.Input<inputs.Adm.VulnerabilityAuditUsageData | undefined>;
    /**
     * List of vulnerabilities found in the vulnerability audit. If a vulnerability affects multiple dependencies, the metadata returned here consists of audit-wide aggregates.
     */
    vulnerabilities?: pulumi.Input<pulumi.Input<inputs.Adm.VulnerabilityAuditVulnerability>[] | undefined>;
    /**
     * Count of non-ignored vulnerable application dependencies.
     */
    vulnerableArtifactsCount?: pulumi.Input<number | undefined>;
    /**
     * Count of all vulnerable application dependencies.
     */
    vulnerableArtifactsCountWithIgnored?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a VulnerabilityAudit resource.
 */
export interface VulnerabilityAuditArgs {
    /**
     * List of application dependencies (without vulnerabilities).
     */
    applicationDependencies?: pulumi.Input<pulumi.Input<inputs.Adm.VulnerabilityAuditApplicationDependency>[] | undefined>;
    /**
     * The type of the build tool is restricted to only two values MAVEN or UNSET. Use UNSET when the list of application dependencies is not Maven-related or is a mix of Maven and other ecosystems. This option is soon to be deprecated.
     */
    buildType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The compartment Oracle Cloud identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the vulnerability audit.  If compartment identifier is not provided the compartment of the associated knowledge base will be used instead.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Configuration for a vulnerability audit. A vulnerable application dependency is ignored if its name does match any of the items in `exclusions`, or all of the associated Vulnerabilies have a CVSS v2 score below `maxPermissibleCvssV2Score` and a CVSS v3 score below `maxPermissibleCvssV3Score`. type: object
     */
    configuration?: pulumi.Input<inputs.Adm.VulnerabilityAuditConfiguration | 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) The name of the vulnerability audit.
     */
    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>;
    /**
     * The Oracle Cloud identifier ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)) of the knowledge base.
     */
    knowledgeBaseId: pulumi.Input<string>;
    /**
     * vulnerability audit source.
     */
    source?: pulumi.Input<inputs.Adm.VulnerabilityAuditSource | undefined>;
    /**
     * The source details of the usage data in object storage. The usage data file uploaded to object storage must be a gzip archive of the JSON usage data returned from the GraalVM native-image-inspect tool after a native-image build. Set `sourceType` to `objectStorageTuple` and use [UsageDataViaObjectStorageTupleDetails](https://docs.cloud.oracle.com/iaas/api/#/en/adm/latest/requests/UsageDataViaObjectStorageTupleDetails) when specifying the namespace, bucket name, and object name.
     */
    usageData?: pulumi.Input<inputs.Adm.VulnerabilityAuditUsageData | undefined>;
}
//# sourceMappingURL=vulnerabilityAudit.d.ts.map