# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs
from ._inputs import *

__all__ = [
    'GetSecurityAssessmentFindingResult',
    'AwaitableGetSecurityAssessmentFindingResult',
    'get_security_assessment_finding',
    'get_security_assessment_finding_output',
]

@pulumi.output_type
class GetSecurityAssessmentFindingResult:
    """
    A collection of values returned by getSecurityAssessmentFinding.
    """
    def __init__(__self__, access_level=None, compartment_id_in_subtree=None, filters=None, finding_key=None, findings=None, id=None, references=None, security_assessment_id=None, severity=None):
        if access_level and not isinstance(access_level, str):
            raise TypeError("Expected argument 'access_level' to be a str")
        pulumi.set(__self__, "access_level", access_level)
        if compartment_id_in_subtree and not isinstance(compartment_id_in_subtree, bool):
            raise TypeError("Expected argument 'compartment_id_in_subtree' to be a bool")
        pulumi.set(__self__, "compartment_id_in_subtree", compartment_id_in_subtree)
        if filters and not isinstance(filters, list):
            raise TypeError("Expected argument 'filters' to be a list")
        pulumi.set(__self__, "filters", filters)
        if finding_key and not isinstance(finding_key, str):
            raise TypeError("Expected argument 'finding_key' to be a str")
        pulumi.set(__self__, "finding_key", finding_key)
        if findings and not isinstance(findings, list):
            raise TypeError("Expected argument 'findings' to be a list")
        pulumi.set(__self__, "findings", findings)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if references and not isinstance(references, str):
            raise TypeError("Expected argument 'references' to be a str")
        pulumi.set(__self__, "references", references)
        if security_assessment_id and not isinstance(security_assessment_id, str):
            raise TypeError("Expected argument 'security_assessment_id' to be a str")
        pulumi.set(__self__, "security_assessment_id", security_assessment_id)
        if severity and not isinstance(severity, str):
            raise TypeError("Expected argument 'severity' to be a str")
        pulumi.set(__self__, "severity", severity)

    @property
    @pulumi.getter(name="accessLevel")
    def access_level(self) -> Optional[str]:
        return pulumi.get(self, "access_level")

    @property
    @pulumi.getter(name="compartmentIdInSubtree")
    def compartment_id_in_subtree(self) -> Optional[bool]:
        return pulumi.get(self, "compartment_id_in_subtree")

    @property
    @pulumi.getter
    def filters(self) -> Optional[Sequence['outputs.GetSecurityAssessmentFindingFilterResult']]:
        return pulumi.get(self, "filters")

    @property
    @pulumi.getter(name="findingKey")
    def finding_key(self) -> Optional[str]:
        return pulumi.get(self, "finding_key")

    @property
    @pulumi.getter
    def findings(self) -> Sequence['outputs.GetSecurityAssessmentFindingFindingResult']:
        return pulumi.get(self, "findings")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def references(self) -> Optional[str]:
        return pulumi.get(self, "references")

    @property
    @pulumi.getter(name="securityAssessmentId")
    def security_assessment_id(self) -> str:
        return pulumi.get(self, "security_assessment_id")

    @property
    @pulumi.getter
    def severity(self) -> Optional[str]:
        return pulumi.get(self, "severity")


class AwaitableGetSecurityAssessmentFindingResult(GetSecurityAssessmentFindingResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetSecurityAssessmentFindingResult(
            access_level=self.access_level,
            compartment_id_in_subtree=self.compartment_id_in_subtree,
            filters=self.filters,
            finding_key=self.finding_key,
            findings=self.findings,
            id=self.id,
            references=self.references,
            security_assessment_id=self.security_assessment_id,
            severity=self.severity)


def get_security_assessment_finding(access_level: Optional[str] = None,
                                    compartment_id_in_subtree: Optional[bool] = None,
                                    filters: Optional[Sequence[pulumi.InputType['GetSecurityAssessmentFindingFilterArgs']]] = None,
                                    finding_key: Optional[str] = None,
                                    references: Optional[str] = None,
                                    security_assessment_id: Optional[str] = None,
                                    severity: Optional[str] = None,
                                    opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSecurityAssessmentFindingResult:
    """
    Use this data source to access information about an existing resource.
    """
    __args__ = dict()
    __args__['accessLevel'] = access_level
    __args__['compartmentIdInSubtree'] = compartment_id_in_subtree
    __args__['filters'] = filters
    __args__['findingKey'] = finding_key
    __args__['references'] = references
    __args__['securityAssessmentId'] = security_assessment_id
    __args__['severity'] = severity
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('oci:DataSafe/getSecurityAssessmentFinding:getSecurityAssessmentFinding', __args__, opts=opts, typ=GetSecurityAssessmentFindingResult).value

    return AwaitableGetSecurityAssessmentFindingResult(
        access_level=__ret__.access_level,
        compartment_id_in_subtree=__ret__.compartment_id_in_subtree,
        filters=__ret__.filters,
        finding_key=__ret__.finding_key,
        findings=__ret__.findings,
        id=__ret__.id,
        references=__ret__.references,
        security_assessment_id=__ret__.security_assessment_id,
        severity=__ret__.severity)


@_utilities.lift_output_func(get_security_assessment_finding)
def get_security_assessment_finding_output(access_level: Optional[pulumi.Input[Optional[str]]] = None,
                                           compartment_id_in_subtree: Optional[pulumi.Input[Optional[bool]]] = None,
                                           filters: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetSecurityAssessmentFindingFilterArgs']]]]] = None,
                                           finding_key: Optional[pulumi.Input[Optional[str]]] = None,
                                           references: Optional[pulumi.Input[Optional[str]]] = None,
                                           security_assessment_id: Optional[pulumi.Input[str]] = None,
                                           severity: Optional[pulumi.Input[Optional[str]]] = None,
                                           opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSecurityAssessmentFindingResult]:
    """
    Use this data source to access information about an existing resource.
    """
    ...
