aws-sdk-codegurusecurity 1.98.0

AWS SDK for Amazon CodeGuru Security
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Information about a finding that was detected in your code.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Finding {
    /// <p>The time when the finding was created.</p>
    pub created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>A description of the finding.</p>
    pub description: ::std::option::Option<::std::string::String>,
    /// <p>The identifier for the component that generated a finding such as AmazonCodeGuruSecurity.</p>
    pub generator_id: ::std::option::Option<::std::string::String>,
    /// <p>The identifier for a finding.</p>
    pub id: ::std::option::Option<::std::string::String>,
    /// <p>The time when the finding was last updated. Findings are updated when you remediate them or when the finding code location changes.</p>
    pub updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>The type of finding.</p>
    pub r#type: ::std::option::Option<::std::string::String>,
    /// <p>The status of the finding. A finding status can be open or closed.</p>
    pub status: ::std::option::Option<crate::types::Status>,
    /// <p>The resource where Amazon CodeGuru Security detected a finding.</p>
    pub resource: ::std::option::Option<crate::types::Resource>,
    /// <p>An object that describes the detected security vulnerability.</p>
    pub vulnerability: ::std::option::Option<crate::types::Vulnerability>,
    /// <p>The severity of the finding. Severity can be critical, high, medium, low, or informational. For information on severity levels, see <a href="https://docs.aws.amazon.com/codeguru/latest/security-ug/findings-overview.html#severity-distribution">Finding severity</a> in the <i>Amazon CodeGuru Security User Guide</i>.</p>
    pub severity: ::std::option::Option<crate::types::Severity>,
    /// <p>An object that contains the details about how to remediate a finding.</p>
    pub remediation: ::std::option::Option<crate::types::Remediation>,
    /// <p>The title of the finding.</p>
    pub title: ::std::option::Option<::std::string::String>,
    /// <p>One or more tags or categorizations that are associated with a detector. These tags are defined by type, programming language, or other classification such as maintainability or consistency.</p>
    pub detector_tags: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    /// <p>The identifier for the detector that detected the finding in your code. A detector is a defined rule based on industry standards and AWS best practices.</p>
    pub detector_id: ::std::option::Option<::std::string::String>,
    /// <p>The name of the detector that identified the security vulnerability in your code.</p>
    pub detector_name: ::std::option::Option<::std::string::String>,
    /// <p>The identifier for the rule that generated the finding.</p>
    pub rule_id: ::std::option::Option<::std::string::String>,
}
impl Finding {
    /// <p>The time when the finding was created.</p>
    pub fn created_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.created_at.as_ref()
    }
    /// <p>A description of the finding.</p>
    pub fn description(&self) -> ::std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The identifier for the component that generated a finding such as AmazonCodeGuruSecurity.</p>
    pub fn generator_id(&self) -> ::std::option::Option<&str> {
        self.generator_id.as_deref()
    }
    /// <p>The identifier for a finding.</p>
    pub fn id(&self) -> ::std::option::Option<&str> {
        self.id.as_deref()
    }
    /// <p>The time when the finding was last updated. Findings are updated when you remediate them or when the finding code location changes.</p>
    pub fn updated_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.updated_at.as_ref()
    }
    /// <p>The type of finding.</p>
    pub fn r#type(&self) -> ::std::option::Option<&str> {
        self.r#type.as_deref()
    }
    /// <p>The status of the finding. A finding status can be open or closed.</p>
    pub fn status(&self) -> ::std::option::Option<&crate::types::Status> {
        self.status.as_ref()
    }
    /// <p>The resource where Amazon CodeGuru Security detected a finding.</p>
    pub fn resource(&self) -> ::std::option::Option<&crate::types::Resource> {
        self.resource.as_ref()
    }
    /// <p>An object that describes the detected security vulnerability.</p>
    pub fn vulnerability(&self) -> ::std::option::Option<&crate::types::Vulnerability> {
        self.vulnerability.as_ref()
    }
    /// <p>The severity of the finding. Severity can be critical, high, medium, low, or informational. For information on severity levels, see <a href="https://docs.aws.amazon.com/codeguru/latest/security-ug/findings-overview.html#severity-distribution">Finding severity</a> in the <i>Amazon CodeGuru Security User Guide</i>.</p>
    pub fn severity(&self) -> ::std::option::Option<&crate::types::Severity> {
        self.severity.as_ref()
    }
    /// <p>An object that contains the details about how to remediate a finding.</p>
    pub fn remediation(&self) -> ::std::option::Option<&crate::types::Remediation> {
        self.remediation.as_ref()
    }
    /// <p>The title of the finding.</p>
    pub fn title(&self) -> ::std::option::Option<&str> {
        self.title.as_deref()
    }
    /// <p>One or more tags or categorizations that are associated with a detector. These tags are defined by type, programming language, or other classification such as maintainability or consistency.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.detector_tags.is_none()`.
    pub fn detector_tags(&self) -> &[::std::string::String] {
        self.detector_tags.as_deref().unwrap_or_default()
    }
    /// <p>The identifier for the detector that detected the finding in your code. A detector is a defined rule based on industry standards and AWS best practices.</p>
    pub fn detector_id(&self) -> ::std::option::Option<&str> {
        self.detector_id.as_deref()
    }
    /// <p>The name of the detector that identified the security vulnerability in your code.</p>
    pub fn detector_name(&self) -> ::std::option::Option<&str> {
        self.detector_name.as_deref()
    }
    /// <p>The identifier for the rule that generated the finding.</p>
    pub fn rule_id(&self) -> ::std::option::Option<&str> {
        self.rule_id.as_deref()
    }
}
impl Finding {
    /// Creates a new builder-style object to manufacture [`Finding`](crate::types::Finding).
    pub fn builder() -> crate::types::builders::FindingBuilder {
        crate::types::builders::FindingBuilder::default()
    }
}

/// A builder for [`Finding`](crate::types::Finding).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct FindingBuilder {
    pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) description: ::std::option::Option<::std::string::String>,
    pub(crate) generator_id: ::std::option::Option<::std::string::String>,
    pub(crate) id: ::std::option::Option<::std::string::String>,
    pub(crate) updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) r#type: ::std::option::Option<::std::string::String>,
    pub(crate) status: ::std::option::Option<crate::types::Status>,
    pub(crate) resource: ::std::option::Option<crate::types::Resource>,
    pub(crate) vulnerability: ::std::option::Option<crate::types::Vulnerability>,
    pub(crate) severity: ::std::option::Option<crate::types::Severity>,
    pub(crate) remediation: ::std::option::Option<crate::types::Remediation>,
    pub(crate) title: ::std::option::Option<::std::string::String>,
    pub(crate) detector_tags: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub(crate) detector_id: ::std::option::Option<::std::string::String>,
    pub(crate) detector_name: ::std::option::Option<::std::string::String>,
    pub(crate) rule_id: ::std::option::Option<::std::string::String>,
}
impl FindingBuilder {
    /// <p>The time when the finding was created.</p>
    pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.created_at = ::std::option::Option::Some(input);
        self
    }
    /// <p>The time when the finding was created.</p>
    pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.created_at = input;
        self
    }
    /// <p>The time when the finding was created.</p>
    pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.created_at
    }
    /// <p>A description of the finding.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.description = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>A description of the finding.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>A description of the finding.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.description
    }
    /// <p>The identifier for the component that generated a finding such as AmazonCodeGuruSecurity.</p>
    pub fn generator_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.generator_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier for the component that generated a finding such as AmazonCodeGuruSecurity.</p>
    pub fn set_generator_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.generator_id = input;
        self
    }
    /// <p>The identifier for the component that generated a finding such as AmazonCodeGuruSecurity.</p>
    pub fn get_generator_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.generator_id
    }
    /// <p>The identifier for a finding.</p>
    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier for a finding.</p>
    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.id = input;
        self
    }
    /// <p>The identifier for a finding.</p>
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.id
    }
    /// <p>The time when the finding was last updated. Findings are updated when you remediate them or when the finding code location changes.</p>
    pub fn updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.updated_at = ::std::option::Option::Some(input);
        self
    }
    /// <p>The time when the finding was last updated. Findings are updated when you remediate them or when the finding code location changes.</p>
    pub fn set_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.updated_at = input;
        self
    }
    /// <p>The time when the finding was last updated. Findings are updated when you remediate them or when the finding code location changes.</p>
    pub fn get_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.updated_at
    }
    /// <p>The type of finding.</p>
    pub fn r#type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.r#type = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The type of finding.</p>
    pub fn set_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.r#type = input;
        self
    }
    /// <p>The type of finding.</p>
    pub fn get_type(&self) -> &::std::option::Option<::std::string::String> {
        &self.r#type
    }
    /// <p>The status of the finding. A finding status can be open or closed.</p>
    pub fn status(mut self, input: crate::types::Status) -> Self {
        self.status = ::std::option::Option::Some(input);
        self
    }
    /// <p>The status of the finding. A finding status can be open or closed.</p>
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::Status>) -> Self {
        self.status = input;
        self
    }
    /// <p>The status of the finding. A finding status can be open or closed.</p>
    pub fn get_status(&self) -> &::std::option::Option<crate::types::Status> {
        &self.status
    }
    /// <p>The resource where Amazon CodeGuru Security detected a finding.</p>
    pub fn resource(mut self, input: crate::types::Resource) -> Self {
        self.resource = ::std::option::Option::Some(input);
        self
    }
    /// <p>The resource where Amazon CodeGuru Security detected a finding.</p>
    pub fn set_resource(mut self, input: ::std::option::Option<crate::types::Resource>) -> Self {
        self.resource = input;
        self
    }
    /// <p>The resource where Amazon CodeGuru Security detected a finding.</p>
    pub fn get_resource(&self) -> &::std::option::Option<crate::types::Resource> {
        &self.resource
    }
    /// <p>An object that describes the detected security vulnerability.</p>
    pub fn vulnerability(mut self, input: crate::types::Vulnerability) -> Self {
        self.vulnerability = ::std::option::Option::Some(input);
        self
    }
    /// <p>An object that describes the detected security vulnerability.</p>
    pub fn set_vulnerability(mut self, input: ::std::option::Option<crate::types::Vulnerability>) -> Self {
        self.vulnerability = input;
        self
    }
    /// <p>An object that describes the detected security vulnerability.</p>
    pub fn get_vulnerability(&self) -> &::std::option::Option<crate::types::Vulnerability> {
        &self.vulnerability
    }
    /// <p>The severity of the finding. Severity can be critical, high, medium, low, or informational. For information on severity levels, see <a href="https://docs.aws.amazon.com/codeguru/latest/security-ug/findings-overview.html#severity-distribution">Finding severity</a> in the <i>Amazon CodeGuru Security User Guide</i>.</p>
    pub fn severity(mut self, input: crate::types::Severity) -> Self {
        self.severity = ::std::option::Option::Some(input);
        self
    }
    /// <p>The severity of the finding. Severity can be critical, high, medium, low, or informational. For information on severity levels, see <a href="https://docs.aws.amazon.com/codeguru/latest/security-ug/findings-overview.html#severity-distribution">Finding severity</a> in the <i>Amazon CodeGuru Security User Guide</i>.</p>
    pub fn set_severity(mut self, input: ::std::option::Option<crate::types::Severity>) -> Self {
        self.severity = input;
        self
    }
    /// <p>The severity of the finding. Severity can be critical, high, medium, low, or informational. For information on severity levels, see <a href="https://docs.aws.amazon.com/codeguru/latest/security-ug/findings-overview.html#severity-distribution">Finding severity</a> in the <i>Amazon CodeGuru Security User Guide</i>.</p>
    pub fn get_severity(&self) -> &::std::option::Option<crate::types::Severity> {
        &self.severity
    }
    /// <p>An object that contains the details about how to remediate a finding.</p>
    pub fn remediation(mut self, input: crate::types::Remediation) -> Self {
        self.remediation = ::std::option::Option::Some(input);
        self
    }
    /// <p>An object that contains the details about how to remediate a finding.</p>
    pub fn set_remediation(mut self, input: ::std::option::Option<crate::types::Remediation>) -> Self {
        self.remediation = input;
        self
    }
    /// <p>An object that contains the details about how to remediate a finding.</p>
    pub fn get_remediation(&self) -> &::std::option::Option<crate::types::Remediation> {
        &self.remediation
    }
    /// <p>The title of the finding.</p>
    pub fn title(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.title = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The title of the finding.</p>
    pub fn set_title(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.title = input;
        self
    }
    /// <p>The title of the finding.</p>
    pub fn get_title(&self) -> &::std::option::Option<::std::string::String> {
        &self.title
    }
    /// Appends an item to `detector_tags`.
    ///
    /// To override the contents of this collection use [`set_detector_tags`](Self::set_detector_tags).
    ///
    /// <p>One or more tags or categorizations that are associated with a detector. These tags are defined by type, programming language, or other classification such as maintainability or consistency.</p>
    pub fn detector_tags(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.detector_tags.unwrap_or_default();
        v.push(input.into());
        self.detector_tags = ::std::option::Option::Some(v);
        self
    }
    /// <p>One or more tags or categorizations that are associated with a detector. These tags are defined by type, programming language, or other classification such as maintainability or consistency.</p>
    pub fn set_detector_tags(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.detector_tags = input;
        self
    }
    /// <p>One or more tags or categorizations that are associated with a detector. These tags are defined by type, programming language, or other classification such as maintainability or consistency.</p>
    pub fn get_detector_tags(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.detector_tags
    }
    /// <p>The identifier for the detector that detected the finding in your code. A detector is a defined rule based on industry standards and AWS best practices.</p>
    pub fn detector_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.detector_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier for the detector that detected the finding in your code. A detector is a defined rule based on industry standards and AWS best practices.</p>
    pub fn set_detector_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.detector_id = input;
        self
    }
    /// <p>The identifier for the detector that detected the finding in your code. A detector is a defined rule based on industry standards and AWS best practices.</p>
    pub fn get_detector_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.detector_id
    }
    /// <p>The name of the detector that identified the security vulnerability in your code.</p>
    pub fn detector_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.detector_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the detector that identified the security vulnerability in your code.</p>
    pub fn set_detector_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.detector_name = input;
        self
    }
    /// <p>The name of the detector that identified the security vulnerability in your code.</p>
    pub fn get_detector_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.detector_name
    }
    /// <p>The identifier for the rule that generated the finding.</p>
    pub fn rule_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.rule_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier for the rule that generated the finding.</p>
    pub fn set_rule_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.rule_id = input;
        self
    }
    /// <p>The identifier for the rule that generated the finding.</p>
    pub fn get_rule_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.rule_id
    }
    /// Consumes the builder and constructs a [`Finding`](crate::types::Finding).
    pub fn build(self) -> crate::types::Finding {
        crate::types::Finding {
            created_at: self.created_at,
            description: self.description,
            generator_id: self.generator_id,
            id: self.id,
            updated_at: self.updated_at,
            r#type: self.r#type,
            status: self.status,
            resource: self.resource,
            vulnerability: self.vulnerability,
            severity: self.severity,
            remediation: self.remediation,
            title: self.title,
            detector_tags: self.detector_tags,
            detector_id: self.detector_id,
            detector_name: self.detector_name,
            rule_id: self.rule_id,
        }
    }
}