// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.securityhub.outputs;

import com.pulumi.aws.securityhub.outputs.InsightFiltersAwsAccountId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersCompanyName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersComplianceStatus;
import com.pulumi.aws.securityhub.outputs.InsightFiltersConfidence;
import com.pulumi.aws.securityhub.outputs.InsightFiltersCreatedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersCriticality;
import com.pulumi.aws.securityhub.outputs.InsightFiltersDescription;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsConfidence;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsCriticality;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsRelatedFindingsId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsRelatedFindingsProductArn;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsSeverityLabel;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsSeverityOriginal;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFindingProviderFieldsType;
import com.pulumi.aws.securityhub.outputs.InsightFiltersFirstObservedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersGeneratorId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersKeyword;
import com.pulumi.aws.securityhub.outputs.InsightFiltersLastObservedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersMalwareName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersMalwarePath;
import com.pulumi.aws.securityhub.outputs.InsightFiltersMalwareState;
import com.pulumi.aws.securityhub.outputs.InsightFiltersMalwareType;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkDestinationDomain;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkDestinationIpv4;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkDestinationIpv6;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkDestinationPort;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkDirection;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkProtocol;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkSourceDomain;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkSourceIpv4;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkSourceIpv6;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkSourceMac;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNetworkSourcePort;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNoteText;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNoteUpdatedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersNoteUpdatedBy;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProcessLaunchedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProcessName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProcessParentPid;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProcessPath;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProcessPid;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProcessTerminatedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProductArn;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProductField;
import com.pulumi.aws.securityhub.outputs.InsightFiltersProductName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersRecommendationText;
import com.pulumi.aws.securityhub.outputs.InsightFiltersRecordState;
import com.pulumi.aws.securityhub.outputs.InsightFiltersRelatedFindingsId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersRelatedFindingsProductArn;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceImageId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceIpv4Address;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceIpv6Address;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceKeyName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceLaunchedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceSubnetId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceType;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsEc2InstanceVpcId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsIamAccessKeyCreatedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsIamAccessKeyStatus;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsIamAccessKeyUserName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsS3BucketOwnerId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceAwsS3BucketOwnerName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceContainerImageId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceContainerImageName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceContainerLaunchedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceContainerName;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceDetailsOther;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceId;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourcePartition;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceRegion;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceTag;
import com.pulumi.aws.securityhub.outputs.InsightFiltersResourceType;
import com.pulumi.aws.securityhub.outputs.InsightFiltersSeverityLabel;
import com.pulumi.aws.securityhub.outputs.InsightFiltersSourceUrl;
import com.pulumi.aws.securityhub.outputs.InsightFiltersThreatIntelIndicatorCategory;
import com.pulumi.aws.securityhub.outputs.InsightFiltersThreatIntelIndicatorLastObservedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersThreatIntelIndicatorSource;
import com.pulumi.aws.securityhub.outputs.InsightFiltersThreatIntelIndicatorSourceUrl;
import com.pulumi.aws.securityhub.outputs.InsightFiltersThreatIntelIndicatorType;
import com.pulumi.aws.securityhub.outputs.InsightFiltersThreatIntelIndicatorValue;
import com.pulumi.aws.securityhub.outputs.InsightFiltersTitle;
import com.pulumi.aws.securityhub.outputs.InsightFiltersType;
import com.pulumi.aws.securityhub.outputs.InsightFiltersUpdatedAt;
import com.pulumi.aws.securityhub.outputs.InsightFiltersUserDefinedValue;
import com.pulumi.aws.securityhub.outputs.InsightFiltersVerificationState;
import com.pulumi.aws.securityhub.outputs.InsightFiltersWorkflowStatus;
import com.pulumi.core.annotations.CustomType;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nullable;

@CustomType
public final class InsightFilters {
    /**
     * @return AWS account ID that a finding is generated in. See String_Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersAwsAccountId> awsAccountIds;
    /**
     * @return The name of the findings provider (company) that owns the solution (product) that generates findings. See String_Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersCompanyName> companyNames;
    /**
     * @return Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersComplianceStatus> complianceStatuses;
    /**
     * @return A finding&#39;s confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersConfidence> confidences;
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersCreatedAt> createdAts;
    /**
     * @return The level of importance assigned to the resources associated with the finding. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersCriticality> criticalities;
    /**
     * @return A finding&#39;s description. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersDescription> descriptions;
    /**
     * @return The finding provider value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsConfidence> findingProviderFieldsConfidences;
    /**
     * @return The finding provider value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsCriticality> findingProviderFieldsCriticalities;
    /**
     * @return The finding identifier of a related finding that is identified by the finding provider. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsRelatedFindingsId> findingProviderFieldsRelatedFindingsIds;
    /**
     * @return The ARN of the solution that generated a related finding that is identified by the finding provider. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsRelatedFindingsProductArn> findingProviderFieldsRelatedFindingsProductArns;
    /**
     * @return The finding provider value for the severity label. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsSeverityLabel> findingProviderFieldsSeverityLabels;
    /**
     * @return The finding provider&#39;s original value for the severity. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsSeverityOriginal> findingProviderFieldsSeverityOriginals;
    /**
     * @return One or more finding types that the finding provider assigned to the finding. Uses the format of `namespace/category/classifier` that classify a finding. Valid namespace values include: `Software and Configuration Checks`, `TTPs`, `Effects`, `Unusual Behaviors`, and `Sensitive Data Identifications`. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFindingProviderFieldsType> findingProviderFieldsTypes;
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersFirstObservedAt> firstObservedAts;
    /**
     * @return The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersGeneratorId> generatorIds;
    /**
     * @return The security findings provider-specific identifier for a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersId> ids;
    /**
     * @return A keyword for a finding. See Keyword Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersKeyword> keywords;
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersLastObservedAt> lastObservedAts;
    /**
     * @return The name of the malware that was observed. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersMalwareName> malwareNames;
    /**
     * @return The filesystem path of the malware that was observed. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersMalwarePath> malwarePaths;
    /**
     * @return The state of the malware that was observed. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersMalwareState> malwareStates;
    /**
     * @return The type of the malware that was observed. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersMalwareType> malwareTypes;
    /**
     * @return The destination domain of network-related information about a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkDestinationDomain> networkDestinationDomains;
    /**
     * @return The destination IPv4 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkDestinationIpv4> networkDestinationIpv4s;
    /**
     * @return The destination IPv6 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkDestinationIpv6> networkDestinationIpv6s;
    /**
     * @return The destination port of network-related information about a finding. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkDestinationPort> networkDestinationPorts;
    /**
     * @return Indicates the direction of network traffic associated with a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkDirection> networkDirections;
    /**
     * @return The protocol of network-related information about a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkProtocol> networkProtocols;
    /**
     * @return The source domain of network-related information about a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkSourceDomain> networkSourceDomains;
    /**
     * @return The source IPv4 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkSourceIpv4> networkSourceIpv4s;
    /**
     * @return The source IPv6 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkSourceIpv6> networkSourceIpv6s;
    /**
     * @return The source media access control (MAC) address of network-related information about a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkSourceMac> networkSourceMacs;
    /**
     * @return The source port of network-related information about a finding. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNetworkSourcePort> networkSourcePorts;
    /**
     * @return The text of a note. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNoteText> noteTexts;
    /**
     * @return The timestamp of when the note was updated. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNoteUpdatedAt> noteUpdatedAts;
    /**
     * @return The principal that created a note. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersNoteUpdatedBy> noteUpdatedBies;
    /**
     * @return The date/time that the process was launched. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProcessLaunchedAt> processLaunchedAts;
    /**
     * @return The name of the process. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProcessName> processNames;
    /**
     * @return The parent process ID. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProcessParentPid> processParentPids;
    /**
     * @return The path to the process executable. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProcessPath> processPaths;
    /**
     * @return The process ID. See Number Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProcessPid> processPids;
    /**
     * @return The date/time that the process was terminated. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProcessTerminatedAt> processTerminatedAts;
    /**
     * @return The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider&#39;s product (solution that generates findings) is registered with Security Hub. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProductArn> productArns;
    /**
     * @return A data type where security-findings providers can include additional solution-specific details that aren&#39;t part of the defined `AwsSecurityFinding` format. See Map Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProductField> productFields;
    /**
     * @return The name of the solution (product) that generates findings. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersProductName> productNames;
    /**
     * @return The recommendation of what to do about the issue described in a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersRecommendationText> recommendationTexts;
    /**
     * @return The updated record state for the finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersRecordState> recordStates;
    /**
     * @return The solution-generated identifier for a related finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersRelatedFindingsId> relatedFindingsIds;
    /**
     * @return The ARN of the solution that generated a related finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersRelatedFindingsProductArn> relatedFindingsProductArns;
    /**
     * @return The IAM profile ARN of the instance. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn> resourceAwsEc2InstanceIamInstanceProfileArns;
    /**
     * @return The Amazon Machine Image (AMI) ID of the instance. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceImageId> resourceAwsEc2InstanceImageIds;
    /**
     * @return The IPv4 addresses associated with the instance. See Ip Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceIpv4Address> resourceAwsEc2InstanceIpv4Addresses;
    /**
     * @return The IPv6 addresses associated with the instance. See Ip Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceIpv6Address> resourceAwsEc2InstanceIpv6Addresses;
    /**
     * @return The key name associated with the instance. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceKeyName> resourceAwsEc2InstanceKeyNames;
    /**
     * @return The date and time the instance was launched. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceLaunchedAt> resourceAwsEc2InstanceLaunchedAts;
    /**
     * @return The identifier of the subnet that the instance was launched in. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceSubnetId> resourceAwsEc2InstanceSubnetIds;
    /**
     * @return The instance type of the instance. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceType> resourceAwsEc2InstanceTypes;
    /**
     * @return The identifier of the VPC that the instance was launched in. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsEc2InstanceVpcId> resourceAwsEc2InstanceVpcIds;
    /**
     * @return The creation date/time of the IAM access key related to a finding. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsIamAccessKeyCreatedAt> resourceAwsIamAccessKeyCreatedAts;
    /**
     * @return The status of the IAM access key related to a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsIamAccessKeyStatus> resourceAwsIamAccessKeyStatuses;
    /**
     * @return The user associated with the IAM access key related to a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsIamAccessKeyUserName> resourceAwsIamAccessKeyUserNames;
    /**
     * @return The canonical user ID of the owner of the S3 bucket. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsS3BucketOwnerId> resourceAwsS3BucketOwnerIds;
    /**
     * @return The display name of the owner of the S3 bucket. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceAwsS3BucketOwnerName> resourceAwsS3BucketOwnerNames;
    /**
     * @return The identifier of the image related to a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceContainerImageId> resourceContainerImageIds;
    /**
     * @return The name of the image related to a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceContainerImageName> resourceContainerImageNames;
    /**
     * @return The date/time that the container was started. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceContainerLaunchedAt> resourceContainerLaunchedAts;
    /**
     * @return The name of the container related to a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceContainerName> resourceContainerNames;
    /**
     * @return The details of a resource that doesn&#39;t have a specific subfield for the resource type defined. See Map Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceDetailsOther> resourceDetailsOthers;
    /**
     * @return The canonical identifier for the given resource type. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceId> resourceIds;
    /**
     * @return The canonical AWS partition name that the Region is assigned to. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourcePartition> resourcePartitions;
    /**
     * @return The canonical AWS external Region name where this resource is located. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceRegion> resourceRegions;
    /**
     * @return A list of AWS tags associated with a resource at the time the finding was processed. See Map Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceTag> resourceTags;
    /**
     * @return Specifies the type of the resource that details are provided for. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersResourceType> resourceTypes;
    /**
     * @return The label of a finding&#39;s severity. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersSeverityLabel> severityLabels;
    /**
     * @return A URL that links to a page about the current finding in the security-findings provider&#39;s solution. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersSourceUrl> sourceUrls;
    /**
     * @return The category of a threat intelligence indicator. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersThreatIntelIndicatorCategory> threatIntelIndicatorCategories;
    /**
     * @return The date/time of the last observation of a threat intelligence indicator. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersThreatIntelIndicatorLastObservedAt> threatIntelIndicatorLastObservedAts;
    /**
     * @return The URL for more details from the source of the threat intelligence. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersThreatIntelIndicatorSourceUrl> threatIntelIndicatorSourceUrls;
    /**
     * @return The source of the threat intelligence. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersThreatIntelIndicatorSource> threatIntelIndicatorSources;
    /**
     * @return The type of a threat intelligence indicator. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersThreatIntelIndicatorType> threatIntelIndicatorTypes;
    /**
     * @return The value of a threat intelligence indicator. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersThreatIntelIndicatorValue> threatIntelIndicatorValues;
    /**
     * @return A finding&#39;s title. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersTitle> titles;
    /**
     * @return A finding type in the format of `namespace/category/classifier` that classifies a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersType> types;
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record. See Date Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersUpdatedAt> updatedAts;
    /**
     * @return A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. See Map Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersUserDefinedValue> userDefinedValues;
    /**
     * @return The veracity of a finding. See String Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersVerificationState> verificationStates;
    /**
     * @return The status of the investigation into a finding. See Workflow Status Filter below for more details.
     * 
     */
    private @Nullable List<InsightFiltersWorkflowStatus> workflowStatuses;

    private InsightFilters() {}
    /**
     * @return AWS account ID that a finding is generated in. See String_Filter below for more details.
     * 
     */
    public List<InsightFiltersAwsAccountId> awsAccountIds() {
        return this.awsAccountIds == null ? List.of() : this.awsAccountIds;
    }
    /**
     * @return The name of the findings provider (company) that owns the solution (product) that generates findings. See String_Filter below for more details.
     * 
     */
    public List<InsightFiltersCompanyName> companyNames() {
        return this.companyNames == null ? List.of() : this.companyNames;
    }
    /**
     * @return Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersComplianceStatus> complianceStatuses() {
        return this.complianceStatuses == null ? List.of() : this.complianceStatuses;
    }
    /**
     * @return A finding&#39;s confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersConfidence> confidences() {
        return this.confidences == null ? List.of() : this.confidences;
    }
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersCreatedAt> createdAts() {
        return this.createdAts == null ? List.of() : this.createdAts;
    }
    /**
     * @return The level of importance assigned to the resources associated with the finding. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersCriticality> criticalities() {
        return this.criticalities == null ? List.of() : this.criticalities;
    }
    /**
     * @return A finding&#39;s description. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersDescription> descriptions() {
        return this.descriptions == null ? List.of() : this.descriptions;
    }
    /**
     * @return The finding provider value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsConfidence> findingProviderFieldsConfidences() {
        return this.findingProviderFieldsConfidences == null ? List.of() : this.findingProviderFieldsConfidences;
    }
    /**
     * @return The finding provider value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsCriticality> findingProviderFieldsCriticalities() {
        return this.findingProviderFieldsCriticalities == null ? List.of() : this.findingProviderFieldsCriticalities;
    }
    /**
     * @return The finding identifier of a related finding that is identified by the finding provider. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsRelatedFindingsId> findingProviderFieldsRelatedFindingsIds() {
        return this.findingProviderFieldsRelatedFindingsIds == null ? List.of() : this.findingProviderFieldsRelatedFindingsIds;
    }
    /**
     * @return The ARN of the solution that generated a related finding that is identified by the finding provider. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsRelatedFindingsProductArn> findingProviderFieldsRelatedFindingsProductArns() {
        return this.findingProviderFieldsRelatedFindingsProductArns == null ? List.of() : this.findingProviderFieldsRelatedFindingsProductArns;
    }
    /**
     * @return The finding provider value for the severity label. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsSeverityLabel> findingProviderFieldsSeverityLabels() {
        return this.findingProviderFieldsSeverityLabels == null ? List.of() : this.findingProviderFieldsSeverityLabels;
    }
    /**
     * @return The finding provider&#39;s original value for the severity. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsSeverityOriginal> findingProviderFieldsSeverityOriginals() {
        return this.findingProviderFieldsSeverityOriginals == null ? List.of() : this.findingProviderFieldsSeverityOriginals;
    }
    /**
     * @return One or more finding types that the finding provider assigned to the finding. Uses the format of `namespace/category/classifier` that classify a finding. Valid namespace values include: `Software and Configuration Checks`, `TTPs`, `Effects`, `Unusual Behaviors`, and `Sensitive Data Identifications`. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersFindingProviderFieldsType> findingProviderFieldsTypes() {
        return this.findingProviderFieldsTypes == null ? List.of() : this.findingProviderFieldsTypes;
    }
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersFirstObservedAt> firstObservedAts() {
        return this.firstObservedAts == null ? List.of() : this.firstObservedAts;
    }
    /**
     * @return The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersGeneratorId> generatorIds() {
        return this.generatorIds == null ? List.of() : this.generatorIds;
    }
    /**
     * @return The security findings provider-specific identifier for a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersId> ids() {
        return this.ids == null ? List.of() : this.ids;
    }
    /**
     * @return A keyword for a finding. See Keyword Filter below for more details.
     * 
     */
    public List<InsightFiltersKeyword> keywords() {
        return this.keywords == null ? List.of() : this.keywords;
    }
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersLastObservedAt> lastObservedAts() {
        return this.lastObservedAts == null ? List.of() : this.lastObservedAts;
    }
    /**
     * @return The name of the malware that was observed. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersMalwareName> malwareNames() {
        return this.malwareNames == null ? List.of() : this.malwareNames;
    }
    /**
     * @return The filesystem path of the malware that was observed. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersMalwarePath> malwarePaths() {
        return this.malwarePaths == null ? List.of() : this.malwarePaths;
    }
    /**
     * @return The state of the malware that was observed. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersMalwareState> malwareStates() {
        return this.malwareStates == null ? List.of() : this.malwareStates;
    }
    /**
     * @return The type of the malware that was observed. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersMalwareType> malwareTypes() {
        return this.malwareTypes == null ? List.of() : this.malwareTypes;
    }
    /**
     * @return The destination domain of network-related information about a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkDestinationDomain> networkDestinationDomains() {
        return this.networkDestinationDomains == null ? List.of() : this.networkDestinationDomains;
    }
    /**
     * @return The destination IPv4 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkDestinationIpv4> networkDestinationIpv4s() {
        return this.networkDestinationIpv4s == null ? List.of() : this.networkDestinationIpv4s;
    }
    /**
     * @return The destination IPv6 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkDestinationIpv6> networkDestinationIpv6s() {
        return this.networkDestinationIpv6s == null ? List.of() : this.networkDestinationIpv6s;
    }
    /**
     * @return The destination port of network-related information about a finding. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkDestinationPort> networkDestinationPorts() {
        return this.networkDestinationPorts == null ? List.of() : this.networkDestinationPorts;
    }
    /**
     * @return Indicates the direction of network traffic associated with a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkDirection> networkDirections() {
        return this.networkDirections == null ? List.of() : this.networkDirections;
    }
    /**
     * @return The protocol of network-related information about a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkProtocol> networkProtocols() {
        return this.networkProtocols == null ? List.of() : this.networkProtocols;
    }
    /**
     * @return The source domain of network-related information about a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkSourceDomain> networkSourceDomains() {
        return this.networkSourceDomains == null ? List.of() : this.networkSourceDomains;
    }
    /**
     * @return The source IPv4 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkSourceIpv4> networkSourceIpv4s() {
        return this.networkSourceIpv4s == null ? List.of() : this.networkSourceIpv4s;
    }
    /**
     * @return The source IPv6 address of network-related information about a finding. See Ip Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkSourceIpv6> networkSourceIpv6s() {
        return this.networkSourceIpv6s == null ? List.of() : this.networkSourceIpv6s;
    }
    /**
     * @return The source media access control (MAC) address of network-related information about a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkSourceMac> networkSourceMacs() {
        return this.networkSourceMacs == null ? List.of() : this.networkSourceMacs;
    }
    /**
     * @return The source port of network-related information about a finding. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersNetworkSourcePort> networkSourcePorts() {
        return this.networkSourcePorts == null ? List.of() : this.networkSourcePorts;
    }
    /**
     * @return The text of a note. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNoteText> noteTexts() {
        return this.noteTexts == null ? List.of() : this.noteTexts;
    }
    /**
     * @return The timestamp of when the note was updated. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersNoteUpdatedAt> noteUpdatedAts() {
        return this.noteUpdatedAts == null ? List.of() : this.noteUpdatedAts;
    }
    /**
     * @return The principal that created a note. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersNoteUpdatedBy> noteUpdatedBies() {
        return this.noteUpdatedBies == null ? List.of() : this.noteUpdatedBies;
    }
    /**
     * @return The date/time that the process was launched. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersProcessLaunchedAt> processLaunchedAts() {
        return this.processLaunchedAts == null ? List.of() : this.processLaunchedAts;
    }
    /**
     * @return The name of the process. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersProcessName> processNames() {
        return this.processNames == null ? List.of() : this.processNames;
    }
    /**
     * @return The parent process ID. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersProcessParentPid> processParentPids() {
        return this.processParentPids == null ? List.of() : this.processParentPids;
    }
    /**
     * @return The path to the process executable. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersProcessPath> processPaths() {
        return this.processPaths == null ? List.of() : this.processPaths;
    }
    /**
     * @return The process ID. See Number Filter below for more details.
     * 
     */
    public List<InsightFiltersProcessPid> processPids() {
        return this.processPids == null ? List.of() : this.processPids;
    }
    /**
     * @return The date/time that the process was terminated. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersProcessTerminatedAt> processTerminatedAts() {
        return this.processTerminatedAts == null ? List.of() : this.processTerminatedAts;
    }
    /**
     * @return The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider&#39;s product (solution that generates findings) is registered with Security Hub. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersProductArn> productArns() {
        return this.productArns == null ? List.of() : this.productArns;
    }
    /**
     * @return A data type where security-findings providers can include additional solution-specific details that aren&#39;t part of the defined `AwsSecurityFinding` format. See Map Filter below for more details.
     * 
     */
    public List<InsightFiltersProductField> productFields() {
        return this.productFields == null ? List.of() : this.productFields;
    }
    /**
     * @return The name of the solution (product) that generates findings. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersProductName> productNames() {
        return this.productNames == null ? List.of() : this.productNames;
    }
    /**
     * @return The recommendation of what to do about the issue described in a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersRecommendationText> recommendationTexts() {
        return this.recommendationTexts == null ? List.of() : this.recommendationTexts;
    }
    /**
     * @return The updated record state for the finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersRecordState> recordStates() {
        return this.recordStates == null ? List.of() : this.recordStates;
    }
    /**
     * @return The solution-generated identifier for a related finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersRelatedFindingsId> relatedFindingsIds() {
        return this.relatedFindingsIds == null ? List.of() : this.relatedFindingsIds;
    }
    /**
     * @return The ARN of the solution that generated a related finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersRelatedFindingsProductArn> relatedFindingsProductArns() {
        return this.relatedFindingsProductArns == null ? List.of() : this.relatedFindingsProductArns;
    }
    /**
     * @return The IAM profile ARN of the instance. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn> resourceAwsEc2InstanceIamInstanceProfileArns() {
        return this.resourceAwsEc2InstanceIamInstanceProfileArns == null ? List.of() : this.resourceAwsEc2InstanceIamInstanceProfileArns;
    }
    /**
     * @return The Amazon Machine Image (AMI) ID of the instance. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceImageId> resourceAwsEc2InstanceImageIds() {
        return this.resourceAwsEc2InstanceImageIds == null ? List.of() : this.resourceAwsEc2InstanceImageIds;
    }
    /**
     * @return The IPv4 addresses associated with the instance. See Ip Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceIpv4Address> resourceAwsEc2InstanceIpv4Addresses() {
        return this.resourceAwsEc2InstanceIpv4Addresses == null ? List.of() : this.resourceAwsEc2InstanceIpv4Addresses;
    }
    /**
     * @return The IPv6 addresses associated with the instance. See Ip Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceIpv6Address> resourceAwsEc2InstanceIpv6Addresses() {
        return this.resourceAwsEc2InstanceIpv6Addresses == null ? List.of() : this.resourceAwsEc2InstanceIpv6Addresses;
    }
    /**
     * @return The key name associated with the instance. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceKeyName> resourceAwsEc2InstanceKeyNames() {
        return this.resourceAwsEc2InstanceKeyNames == null ? List.of() : this.resourceAwsEc2InstanceKeyNames;
    }
    /**
     * @return The date and time the instance was launched. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceLaunchedAt> resourceAwsEc2InstanceLaunchedAts() {
        return this.resourceAwsEc2InstanceLaunchedAts == null ? List.of() : this.resourceAwsEc2InstanceLaunchedAts;
    }
    /**
     * @return The identifier of the subnet that the instance was launched in. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceSubnetId> resourceAwsEc2InstanceSubnetIds() {
        return this.resourceAwsEc2InstanceSubnetIds == null ? List.of() : this.resourceAwsEc2InstanceSubnetIds;
    }
    /**
     * @return The instance type of the instance. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceType> resourceAwsEc2InstanceTypes() {
        return this.resourceAwsEc2InstanceTypes == null ? List.of() : this.resourceAwsEc2InstanceTypes;
    }
    /**
     * @return The identifier of the VPC that the instance was launched in. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsEc2InstanceVpcId> resourceAwsEc2InstanceVpcIds() {
        return this.resourceAwsEc2InstanceVpcIds == null ? List.of() : this.resourceAwsEc2InstanceVpcIds;
    }
    /**
     * @return The creation date/time of the IAM access key related to a finding. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsIamAccessKeyCreatedAt> resourceAwsIamAccessKeyCreatedAts() {
        return this.resourceAwsIamAccessKeyCreatedAts == null ? List.of() : this.resourceAwsIamAccessKeyCreatedAts;
    }
    /**
     * @return The status of the IAM access key related to a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsIamAccessKeyStatus> resourceAwsIamAccessKeyStatuses() {
        return this.resourceAwsIamAccessKeyStatuses == null ? List.of() : this.resourceAwsIamAccessKeyStatuses;
    }
    /**
     * @return The user associated with the IAM access key related to a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsIamAccessKeyUserName> resourceAwsIamAccessKeyUserNames() {
        return this.resourceAwsIamAccessKeyUserNames == null ? List.of() : this.resourceAwsIamAccessKeyUserNames;
    }
    /**
     * @return The canonical user ID of the owner of the S3 bucket. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsS3BucketOwnerId> resourceAwsS3BucketOwnerIds() {
        return this.resourceAwsS3BucketOwnerIds == null ? List.of() : this.resourceAwsS3BucketOwnerIds;
    }
    /**
     * @return The display name of the owner of the S3 bucket. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceAwsS3BucketOwnerName> resourceAwsS3BucketOwnerNames() {
        return this.resourceAwsS3BucketOwnerNames == null ? List.of() : this.resourceAwsS3BucketOwnerNames;
    }
    /**
     * @return The identifier of the image related to a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceContainerImageId> resourceContainerImageIds() {
        return this.resourceContainerImageIds == null ? List.of() : this.resourceContainerImageIds;
    }
    /**
     * @return The name of the image related to a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceContainerImageName> resourceContainerImageNames() {
        return this.resourceContainerImageNames == null ? List.of() : this.resourceContainerImageNames;
    }
    /**
     * @return The date/time that the container was started. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceContainerLaunchedAt> resourceContainerLaunchedAts() {
        return this.resourceContainerLaunchedAts == null ? List.of() : this.resourceContainerLaunchedAts;
    }
    /**
     * @return The name of the container related to a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceContainerName> resourceContainerNames() {
        return this.resourceContainerNames == null ? List.of() : this.resourceContainerNames;
    }
    /**
     * @return The details of a resource that doesn&#39;t have a specific subfield for the resource type defined. See Map Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceDetailsOther> resourceDetailsOthers() {
        return this.resourceDetailsOthers == null ? List.of() : this.resourceDetailsOthers;
    }
    /**
     * @return The canonical identifier for the given resource type. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceId> resourceIds() {
        return this.resourceIds == null ? List.of() : this.resourceIds;
    }
    /**
     * @return The canonical AWS partition name that the Region is assigned to. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourcePartition> resourcePartitions() {
        return this.resourcePartitions == null ? List.of() : this.resourcePartitions;
    }
    /**
     * @return The canonical AWS external Region name where this resource is located. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceRegion> resourceRegions() {
        return this.resourceRegions == null ? List.of() : this.resourceRegions;
    }
    /**
     * @return A list of AWS tags associated with a resource at the time the finding was processed. See Map Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceTag> resourceTags() {
        return this.resourceTags == null ? List.of() : this.resourceTags;
    }
    /**
     * @return Specifies the type of the resource that details are provided for. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersResourceType> resourceTypes() {
        return this.resourceTypes == null ? List.of() : this.resourceTypes;
    }
    /**
     * @return The label of a finding&#39;s severity. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersSeverityLabel> severityLabels() {
        return this.severityLabels == null ? List.of() : this.severityLabels;
    }
    /**
     * @return A URL that links to a page about the current finding in the security-findings provider&#39;s solution. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersSourceUrl> sourceUrls() {
        return this.sourceUrls == null ? List.of() : this.sourceUrls;
    }
    /**
     * @return The category of a threat intelligence indicator. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersThreatIntelIndicatorCategory> threatIntelIndicatorCategories() {
        return this.threatIntelIndicatorCategories == null ? List.of() : this.threatIntelIndicatorCategories;
    }
    /**
     * @return The date/time of the last observation of a threat intelligence indicator. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersThreatIntelIndicatorLastObservedAt> threatIntelIndicatorLastObservedAts() {
        return this.threatIntelIndicatorLastObservedAts == null ? List.of() : this.threatIntelIndicatorLastObservedAts;
    }
    /**
     * @return The URL for more details from the source of the threat intelligence. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersThreatIntelIndicatorSourceUrl> threatIntelIndicatorSourceUrls() {
        return this.threatIntelIndicatorSourceUrls == null ? List.of() : this.threatIntelIndicatorSourceUrls;
    }
    /**
     * @return The source of the threat intelligence. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersThreatIntelIndicatorSource> threatIntelIndicatorSources() {
        return this.threatIntelIndicatorSources == null ? List.of() : this.threatIntelIndicatorSources;
    }
    /**
     * @return The type of a threat intelligence indicator. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersThreatIntelIndicatorType> threatIntelIndicatorTypes() {
        return this.threatIntelIndicatorTypes == null ? List.of() : this.threatIntelIndicatorTypes;
    }
    /**
     * @return The value of a threat intelligence indicator. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersThreatIntelIndicatorValue> threatIntelIndicatorValues() {
        return this.threatIntelIndicatorValues == null ? List.of() : this.threatIntelIndicatorValues;
    }
    /**
     * @return A finding&#39;s title. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersTitle> titles() {
        return this.titles == null ? List.of() : this.titles;
    }
    /**
     * @return A finding type in the format of `namespace/category/classifier` that classifies a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersType> types() {
        return this.types == null ? List.of() : this.types;
    }
    /**
     * @return An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record. See Date Filter below for more details.
     * 
     */
    public List<InsightFiltersUpdatedAt> updatedAts() {
        return this.updatedAts == null ? List.of() : this.updatedAts;
    }
    /**
     * @return A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. See Map Filter below for more details.
     * 
     */
    public List<InsightFiltersUserDefinedValue> userDefinedValues() {
        return this.userDefinedValues == null ? List.of() : this.userDefinedValues;
    }
    /**
     * @return The veracity of a finding. See String Filter below for more details.
     * 
     */
    public List<InsightFiltersVerificationState> verificationStates() {
        return this.verificationStates == null ? List.of() : this.verificationStates;
    }
    /**
     * @return The status of the investigation into a finding. See Workflow Status Filter below for more details.
     * 
     */
    public List<InsightFiltersWorkflowStatus> workflowStatuses() {
        return this.workflowStatuses == null ? List.of() : this.workflowStatuses;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static Builder builder(InsightFilters defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable List<InsightFiltersAwsAccountId> awsAccountIds;
        private @Nullable List<InsightFiltersCompanyName> companyNames;
        private @Nullable List<InsightFiltersComplianceStatus> complianceStatuses;
        private @Nullable List<InsightFiltersConfidence> confidences;
        private @Nullable List<InsightFiltersCreatedAt> createdAts;
        private @Nullable List<InsightFiltersCriticality> criticalities;
        private @Nullable List<InsightFiltersDescription> descriptions;
        private @Nullable List<InsightFiltersFindingProviderFieldsConfidence> findingProviderFieldsConfidences;
        private @Nullable List<InsightFiltersFindingProviderFieldsCriticality> findingProviderFieldsCriticalities;
        private @Nullable List<InsightFiltersFindingProviderFieldsRelatedFindingsId> findingProviderFieldsRelatedFindingsIds;
        private @Nullable List<InsightFiltersFindingProviderFieldsRelatedFindingsProductArn> findingProviderFieldsRelatedFindingsProductArns;
        private @Nullable List<InsightFiltersFindingProviderFieldsSeverityLabel> findingProviderFieldsSeverityLabels;
        private @Nullable List<InsightFiltersFindingProviderFieldsSeverityOriginal> findingProviderFieldsSeverityOriginals;
        private @Nullable List<InsightFiltersFindingProviderFieldsType> findingProviderFieldsTypes;
        private @Nullable List<InsightFiltersFirstObservedAt> firstObservedAts;
        private @Nullable List<InsightFiltersGeneratorId> generatorIds;
        private @Nullable List<InsightFiltersId> ids;
        private @Nullable List<InsightFiltersKeyword> keywords;
        private @Nullable List<InsightFiltersLastObservedAt> lastObservedAts;
        private @Nullable List<InsightFiltersMalwareName> malwareNames;
        private @Nullable List<InsightFiltersMalwarePath> malwarePaths;
        private @Nullable List<InsightFiltersMalwareState> malwareStates;
        private @Nullable List<InsightFiltersMalwareType> malwareTypes;
        private @Nullable List<InsightFiltersNetworkDestinationDomain> networkDestinationDomains;
        private @Nullable List<InsightFiltersNetworkDestinationIpv4> networkDestinationIpv4s;
        private @Nullable List<InsightFiltersNetworkDestinationIpv6> networkDestinationIpv6s;
        private @Nullable List<InsightFiltersNetworkDestinationPort> networkDestinationPorts;
        private @Nullable List<InsightFiltersNetworkDirection> networkDirections;
        private @Nullable List<InsightFiltersNetworkProtocol> networkProtocols;
        private @Nullable List<InsightFiltersNetworkSourceDomain> networkSourceDomains;
        private @Nullable List<InsightFiltersNetworkSourceIpv4> networkSourceIpv4s;
        private @Nullable List<InsightFiltersNetworkSourceIpv6> networkSourceIpv6s;
        private @Nullable List<InsightFiltersNetworkSourceMac> networkSourceMacs;
        private @Nullable List<InsightFiltersNetworkSourcePort> networkSourcePorts;
        private @Nullable List<InsightFiltersNoteText> noteTexts;
        private @Nullable List<InsightFiltersNoteUpdatedAt> noteUpdatedAts;
        private @Nullable List<InsightFiltersNoteUpdatedBy> noteUpdatedBies;
        private @Nullable List<InsightFiltersProcessLaunchedAt> processLaunchedAts;
        private @Nullable List<InsightFiltersProcessName> processNames;
        private @Nullable List<InsightFiltersProcessParentPid> processParentPids;
        private @Nullable List<InsightFiltersProcessPath> processPaths;
        private @Nullable List<InsightFiltersProcessPid> processPids;
        private @Nullable List<InsightFiltersProcessTerminatedAt> processTerminatedAts;
        private @Nullable List<InsightFiltersProductArn> productArns;
        private @Nullable List<InsightFiltersProductField> productFields;
        private @Nullable List<InsightFiltersProductName> productNames;
        private @Nullable List<InsightFiltersRecommendationText> recommendationTexts;
        private @Nullable List<InsightFiltersRecordState> recordStates;
        private @Nullable List<InsightFiltersRelatedFindingsId> relatedFindingsIds;
        private @Nullable List<InsightFiltersRelatedFindingsProductArn> relatedFindingsProductArns;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn> resourceAwsEc2InstanceIamInstanceProfileArns;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceImageId> resourceAwsEc2InstanceImageIds;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceIpv4Address> resourceAwsEc2InstanceIpv4Addresses;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceIpv6Address> resourceAwsEc2InstanceIpv6Addresses;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceKeyName> resourceAwsEc2InstanceKeyNames;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceLaunchedAt> resourceAwsEc2InstanceLaunchedAts;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceSubnetId> resourceAwsEc2InstanceSubnetIds;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceType> resourceAwsEc2InstanceTypes;
        private @Nullable List<InsightFiltersResourceAwsEc2InstanceVpcId> resourceAwsEc2InstanceVpcIds;
        private @Nullable List<InsightFiltersResourceAwsIamAccessKeyCreatedAt> resourceAwsIamAccessKeyCreatedAts;
        private @Nullable List<InsightFiltersResourceAwsIamAccessKeyStatus> resourceAwsIamAccessKeyStatuses;
        private @Nullable List<InsightFiltersResourceAwsIamAccessKeyUserName> resourceAwsIamAccessKeyUserNames;
        private @Nullable List<InsightFiltersResourceAwsS3BucketOwnerId> resourceAwsS3BucketOwnerIds;
        private @Nullable List<InsightFiltersResourceAwsS3BucketOwnerName> resourceAwsS3BucketOwnerNames;
        private @Nullable List<InsightFiltersResourceContainerImageId> resourceContainerImageIds;
        private @Nullable List<InsightFiltersResourceContainerImageName> resourceContainerImageNames;
        private @Nullable List<InsightFiltersResourceContainerLaunchedAt> resourceContainerLaunchedAts;
        private @Nullable List<InsightFiltersResourceContainerName> resourceContainerNames;
        private @Nullable List<InsightFiltersResourceDetailsOther> resourceDetailsOthers;
        private @Nullable List<InsightFiltersResourceId> resourceIds;
        private @Nullable List<InsightFiltersResourcePartition> resourcePartitions;
        private @Nullable List<InsightFiltersResourceRegion> resourceRegions;
        private @Nullable List<InsightFiltersResourceTag> resourceTags;
        private @Nullable List<InsightFiltersResourceType> resourceTypes;
        private @Nullable List<InsightFiltersSeverityLabel> severityLabels;
        private @Nullable List<InsightFiltersSourceUrl> sourceUrls;
        private @Nullable List<InsightFiltersThreatIntelIndicatorCategory> threatIntelIndicatorCategories;
        private @Nullable List<InsightFiltersThreatIntelIndicatorLastObservedAt> threatIntelIndicatorLastObservedAts;
        private @Nullable List<InsightFiltersThreatIntelIndicatorSourceUrl> threatIntelIndicatorSourceUrls;
        private @Nullable List<InsightFiltersThreatIntelIndicatorSource> threatIntelIndicatorSources;
        private @Nullable List<InsightFiltersThreatIntelIndicatorType> threatIntelIndicatorTypes;
        private @Nullable List<InsightFiltersThreatIntelIndicatorValue> threatIntelIndicatorValues;
        private @Nullable List<InsightFiltersTitle> titles;
        private @Nullable List<InsightFiltersType> types;
        private @Nullable List<InsightFiltersUpdatedAt> updatedAts;
        private @Nullable List<InsightFiltersUserDefinedValue> userDefinedValues;
        private @Nullable List<InsightFiltersVerificationState> verificationStates;
        private @Nullable List<InsightFiltersWorkflowStatus> workflowStatuses;
        public Builder() {}
        public Builder(InsightFilters defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.awsAccountIds = defaults.awsAccountIds;
    	      this.companyNames = defaults.companyNames;
    	      this.complianceStatuses = defaults.complianceStatuses;
    	      this.confidences = defaults.confidences;
    	      this.createdAts = defaults.createdAts;
    	      this.criticalities = defaults.criticalities;
    	      this.descriptions = defaults.descriptions;
    	      this.findingProviderFieldsConfidences = defaults.findingProviderFieldsConfidences;
    	      this.findingProviderFieldsCriticalities = defaults.findingProviderFieldsCriticalities;
    	      this.findingProviderFieldsRelatedFindingsIds = defaults.findingProviderFieldsRelatedFindingsIds;
    	      this.findingProviderFieldsRelatedFindingsProductArns = defaults.findingProviderFieldsRelatedFindingsProductArns;
    	      this.findingProviderFieldsSeverityLabels = defaults.findingProviderFieldsSeverityLabels;
    	      this.findingProviderFieldsSeverityOriginals = defaults.findingProviderFieldsSeverityOriginals;
    	      this.findingProviderFieldsTypes = defaults.findingProviderFieldsTypes;
    	      this.firstObservedAts = defaults.firstObservedAts;
    	      this.generatorIds = defaults.generatorIds;
    	      this.ids = defaults.ids;
    	      this.keywords = defaults.keywords;
    	      this.lastObservedAts = defaults.lastObservedAts;
    	      this.malwareNames = defaults.malwareNames;
    	      this.malwarePaths = defaults.malwarePaths;
    	      this.malwareStates = defaults.malwareStates;
    	      this.malwareTypes = defaults.malwareTypes;
    	      this.networkDestinationDomains = defaults.networkDestinationDomains;
    	      this.networkDestinationIpv4s = defaults.networkDestinationIpv4s;
    	      this.networkDestinationIpv6s = defaults.networkDestinationIpv6s;
    	      this.networkDestinationPorts = defaults.networkDestinationPorts;
    	      this.networkDirections = defaults.networkDirections;
    	      this.networkProtocols = defaults.networkProtocols;
    	      this.networkSourceDomains = defaults.networkSourceDomains;
    	      this.networkSourceIpv4s = defaults.networkSourceIpv4s;
    	      this.networkSourceIpv6s = defaults.networkSourceIpv6s;
    	      this.networkSourceMacs = defaults.networkSourceMacs;
    	      this.networkSourcePorts = defaults.networkSourcePorts;
    	      this.noteTexts = defaults.noteTexts;
    	      this.noteUpdatedAts = defaults.noteUpdatedAts;
    	      this.noteUpdatedBies = defaults.noteUpdatedBies;
    	      this.processLaunchedAts = defaults.processLaunchedAts;
    	      this.processNames = defaults.processNames;
    	      this.processParentPids = defaults.processParentPids;
    	      this.processPaths = defaults.processPaths;
    	      this.processPids = defaults.processPids;
    	      this.processTerminatedAts = defaults.processTerminatedAts;
    	      this.productArns = defaults.productArns;
    	      this.productFields = defaults.productFields;
    	      this.productNames = defaults.productNames;
    	      this.recommendationTexts = defaults.recommendationTexts;
    	      this.recordStates = defaults.recordStates;
    	      this.relatedFindingsIds = defaults.relatedFindingsIds;
    	      this.relatedFindingsProductArns = defaults.relatedFindingsProductArns;
    	      this.resourceAwsEc2InstanceIamInstanceProfileArns = defaults.resourceAwsEc2InstanceIamInstanceProfileArns;
    	      this.resourceAwsEc2InstanceImageIds = defaults.resourceAwsEc2InstanceImageIds;
    	      this.resourceAwsEc2InstanceIpv4Addresses = defaults.resourceAwsEc2InstanceIpv4Addresses;
    	      this.resourceAwsEc2InstanceIpv6Addresses = defaults.resourceAwsEc2InstanceIpv6Addresses;
    	      this.resourceAwsEc2InstanceKeyNames = defaults.resourceAwsEc2InstanceKeyNames;
    	      this.resourceAwsEc2InstanceLaunchedAts = defaults.resourceAwsEc2InstanceLaunchedAts;
    	      this.resourceAwsEc2InstanceSubnetIds = defaults.resourceAwsEc2InstanceSubnetIds;
    	      this.resourceAwsEc2InstanceTypes = defaults.resourceAwsEc2InstanceTypes;
    	      this.resourceAwsEc2InstanceVpcIds = defaults.resourceAwsEc2InstanceVpcIds;
    	      this.resourceAwsIamAccessKeyCreatedAts = defaults.resourceAwsIamAccessKeyCreatedAts;
    	      this.resourceAwsIamAccessKeyStatuses = defaults.resourceAwsIamAccessKeyStatuses;
    	      this.resourceAwsIamAccessKeyUserNames = defaults.resourceAwsIamAccessKeyUserNames;
    	      this.resourceAwsS3BucketOwnerIds = defaults.resourceAwsS3BucketOwnerIds;
    	      this.resourceAwsS3BucketOwnerNames = defaults.resourceAwsS3BucketOwnerNames;
    	      this.resourceContainerImageIds = defaults.resourceContainerImageIds;
    	      this.resourceContainerImageNames = defaults.resourceContainerImageNames;
    	      this.resourceContainerLaunchedAts = defaults.resourceContainerLaunchedAts;
    	      this.resourceContainerNames = defaults.resourceContainerNames;
    	      this.resourceDetailsOthers = defaults.resourceDetailsOthers;
    	      this.resourceIds = defaults.resourceIds;
    	      this.resourcePartitions = defaults.resourcePartitions;
    	      this.resourceRegions = defaults.resourceRegions;
    	      this.resourceTags = defaults.resourceTags;
    	      this.resourceTypes = defaults.resourceTypes;
    	      this.severityLabels = defaults.severityLabels;
    	      this.sourceUrls = defaults.sourceUrls;
    	      this.threatIntelIndicatorCategories = defaults.threatIntelIndicatorCategories;
    	      this.threatIntelIndicatorLastObservedAts = defaults.threatIntelIndicatorLastObservedAts;
    	      this.threatIntelIndicatorSourceUrls = defaults.threatIntelIndicatorSourceUrls;
    	      this.threatIntelIndicatorSources = defaults.threatIntelIndicatorSources;
    	      this.threatIntelIndicatorTypes = defaults.threatIntelIndicatorTypes;
    	      this.threatIntelIndicatorValues = defaults.threatIntelIndicatorValues;
    	      this.titles = defaults.titles;
    	      this.types = defaults.types;
    	      this.updatedAts = defaults.updatedAts;
    	      this.userDefinedValues = defaults.userDefinedValues;
    	      this.verificationStates = defaults.verificationStates;
    	      this.workflowStatuses = defaults.workflowStatuses;
        }

        @CustomType.Setter
        public Builder awsAccountIds(@Nullable List<InsightFiltersAwsAccountId> awsAccountIds) {
            this.awsAccountIds = awsAccountIds;
            return this;
        }
        public Builder awsAccountIds(InsightFiltersAwsAccountId... awsAccountIds) {
            return awsAccountIds(List.of(awsAccountIds));
        }
        @CustomType.Setter
        public Builder companyNames(@Nullable List<InsightFiltersCompanyName> companyNames) {
            this.companyNames = companyNames;
            return this;
        }
        public Builder companyNames(InsightFiltersCompanyName... companyNames) {
            return companyNames(List.of(companyNames));
        }
        @CustomType.Setter
        public Builder complianceStatuses(@Nullable List<InsightFiltersComplianceStatus> complianceStatuses) {
            this.complianceStatuses = complianceStatuses;
            return this;
        }
        public Builder complianceStatuses(InsightFiltersComplianceStatus... complianceStatuses) {
            return complianceStatuses(List.of(complianceStatuses));
        }
        @CustomType.Setter
        public Builder confidences(@Nullable List<InsightFiltersConfidence> confidences) {
            this.confidences = confidences;
            return this;
        }
        public Builder confidences(InsightFiltersConfidence... confidences) {
            return confidences(List.of(confidences));
        }
        @CustomType.Setter
        public Builder createdAts(@Nullable List<InsightFiltersCreatedAt> createdAts) {
            this.createdAts = createdAts;
            return this;
        }
        public Builder createdAts(InsightFiltersCreatedAt... createdAts) {
            return createdAts(List.of(createdAts));
        }
        @CustomType.Setter
        public Builder criticalities(@Nullable List<InsightFiltersCriticality> criticalities) {
            this.criticalities = criticalities;
            return this;
        }
        public Builder criticalities(InsightFiltersCriticality... criticalities) {
            return criticalities(List.of(criticalities));
        }
        @CustomType.Setter
        public Builder descriptions(@Nullable List<InsightFiltersDescription> descriptions) {
            this.descriptions = descriptions;
            return this;
        }
        public Builder descriptions(InsightFiltersDescription... descriptions) {
            return descriptions(List.of(descriptions));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsConfidences(@Nullable List<InsightFiltersFindingProviderFieldsConfidence> findingProviderFieldsConfidences) {
            this.findingProviderFieldsConfidences = findingProviderFieldsConfidences;
            return this;
        }
        public Builder findingProviderFieldsConfidences(InsightFiltersFindingProviderFieldsConfidence... findingProviderFieldsConfidences) {
            return findingProviderFieldsConfidences(List.of(findingProviderFieldsConfidences));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsCriticalities(@Nullable List<InsightFiltersFindingProviderFieldsCriticality> findingProviderFieldsCriticalities) {
            this.findingProviderFieldsCriticalities = findingProviderFieldsCriticalities;
            return this;
        }
        public Builder findingProviderFieldsCriticalities(InsightFiltersFindingProviderFieldsCriticality... findingProviderFieldsCriticalities) {
            return findingProviderFieldsCriticalities(List.of(findingProviderFieldsCriticalities));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsRelatedFindingsIds(@Nullable List<InsightFiltersFindingProviderFieldsRelatedFindingsId> findingProviderFieldsRelatedFindingsIds) {
            this.findingProviderFieldsRelatedFindingsIds = findingProviderFieldsRelatedFindingsIds;
            return this;
        }
        public Builder findingProviderFieldsRelatedFindingsIds(InsightFiltersFindingProviderFieldsRelatedFindingsId... findingProviderFieldsRelatedFindingsIds) {
            return findingProviderFieldsRelatedFindingsIds(List.of(findingProviderFieldsRelatedFindingsIds));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsRelatedFindingsProductArns(@Nullable List<InsightFiltersFindingProviderFieldsRelatedFindingsProductArn> findingProviderFieldsRelatedFindingsProductArns) {
            this.findingProviderFieldsRelatedFindingsProductArns = findingProviderFieldsRelatedFindingsProductArns;
            return this;
        }
        public Builder findingProviderFieldsRelatedFindingsProductArns(InsightFiltersFindingProviderFieldsRelatedFindingsProductArn... findingProviderFieldsRelatedFindingsProductArns) {
            return findingProviderFieldsRelatedFindingsProductArns(List.of(findingProviderFieldsRelatedFindingsProductArns));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsSeverityLabels(@Nullable List<InsightFiltersFindingProviderFieldsSeverityLabel> findingProviderFieldsSeverityLabels) {
            this.findingProviderFieldsSeverityLabels = findingProviderFieldsSeverityLabels;
            return this;
        }
        public Builder findingProviderFieldsSeverityLabels(InsightFiltersFindingProviderFieldsSeverityLabel... findingProviderFieldsSeverityLabels) {
            return findingProviderFieldsSeverityLabels(List.of(findingProviderFieldsSeverityLabels));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsSeverityOriginals(@Nullable List<InsightFiltersFindingProviderFieldsSeverityOriginal> findingProviderFieldsSeverityOriginals) {
            this.findingProviderFieldsSeverityOriginals = findingProviderFieldsSeverityOriginals;
            return this;
        }
        public Builder findingProviderFieldsSeverityOriginals(InsightFiltersFindingProviderFieldsSeverityOriginal... findingProviderFieldsSeverityOriginals) {
            return findingProviderFieldsSeverityOriginals(List.of(findingProviderFieldsSeverityOriginals));
        }
        @CustomType.Setter
        public Builder findingProviderFieldsTypes(@Nullable List<InsightFiltersFindingProviderFieldsType> findingProviderFieldsTypes) {
            this.findingProviderFieldsTypes = findingProviderFieldsTypes;
            return this;
        }
        public Builder findingProviderFieldsTypes(InsightFiltersFindingProviderFieldsType... findingProviderFieldsTypes) {
            return findingProviderFieldsTypes(List.of(findingProviderFieldsTypes));
        }
        @CustomType.Setter
        public Builder firstObservedAts(@Nullable List<InsightFiltersFirstObservedAt> firstObservedAts) {
            this.firstObservedAts = firstObservedAts;
            return this;
        }
        public Builder firstObservedAts(InsightFiltersFirstObservedAt... firstObservedAts) {
            return firstObservedAts(List.of(firstObservedAts));
        }
        @CustomType.Setter
        public Builder generatorIds(@Nullable List<InsightFiltersGeneratorId> generatorIds) {
            this.generatorIds = generatorIds;
            return this;
        }
        public Builder generatorIds(InsightFiltersGeneratorId... generatorIds) {
            return generatorIds(List.of(generatorIds));
        }
        @CustomType.Setter
        public Builder ids(@Nullable List<InsightFiltersId> ids) {
            this.ids = ids;
            return this;
        }
        public Builder ids(InsightFiltersId... ids) {
            return ids(List.of(ids));
        }
        @CustomType.Setter
        public Builder keywords(@Nullable List<InsightFiltersKeyword> keywords) {
            this.keywords = keywords;
            return this;
        }
        public Builder keywords(InsightFiltersKeyword... keywords) {
            return keywords(List.of(keywords));
        }
        @CustomType.Setter
        public Builder lastObservedAts(@Nullable List<InsightFiltersLastObservedAt> lastObservedAts) {
            this.lastObservedAts = lastObservedAts;
            return this;
        }
        public Builder lastObservedAts(InsightFiltersLastObservedAt... lastObservedAts) {
            return lastObservedAts(List.of(lastObservedAts));
        }
        @CustomType.Setter
        public Builder malwareNames(@Nullable List<InsightFiltersMalwareName> malwareNames) {
            this.malwareNames = malwareNames;
            return this;
        }
        public Builder malwareNames(InsightFiltersMalwareName... malwareNames) {
            return malwareNames(List.of(malwareNames));
        }
        @CustomType.Setter
        public Builder malwarePaths(@Nullable List<InsightFiltersMalwarePath> malwarePaths) {
            this.malwarePaths = malwarePaths;
            return this;
        }
        public Builder malwarePaths(InsightFiltersMalwarePath... malwarePaths) {
            return malwarePaths(List.of(malwarePaths));
        }
        @CustomType.Setter
        public Builder malwareStates(@Nullable List<InsightFiltersMalwareState> malwareStates) {
            this.malwareStates = malwareStates;
            return this;
        }
        public Builder malwareStates(InsightFiltersMalwareState... malwareStates) {
            return malwareStates(List.of(malwareStates));
        }
        @CustomType.Setter
        public Builder malwareTypes(@Nullable List<InsightFiltersMalwareType> malwareTypes) {
            this.malwareTypes = malwareTypes;
            return this;
        }
        public Builder malwareTypes(InsightFiltersMalwareType... malwareTypes) {
            return malwareTypes(List.of(malwareTypes));
        }
        @CustomType.Setter
        public Builder networkDestinationDomains(@Nullable List<InsightFiltersNetworkDestinationDomain> networkDestinationDomains) {
            this.networkDestinationDomains = networkDestinationDomains;
            return this;
        }
        public Builder networkDestinationDomains(InsightFiltersNetworkDestinationDomain... networkDestinationDomains) {
            return networkDestinationDomains(List.of(networkDestinationDomains));
        }
        @CustomType.Setter
        public Builder networkDestinationIpv4s(@Nullable List<InsightFiltersNetworkDestinationIpv4> networkDestinationIpv4s) {
            this.networkDestinationIpv4s = networkDestinationIpv4s;
            return this;
        }
        public Builder networkDestinationIpv4s(InsightFiltersNetworkDestinationIpv4... networkDestinationIpv4s) {
            return networkDestinationIpv4s(List.of(networkDestinationIpv4s));
        }
        @CustomType.Setter
        public Builder networkDestinationIpv6s(@Nullable List<InsightFiltersNetworkDestinationIpv6> networkDestinationIpv6s) {
            this.networkDestinationIpv6s = networkDestinationIpv6s;
            return this;
        }
        public Builder networkDestinationIpv6s(InsightFiltersNetworkDestinationIpv6... networkDestinationIpv6s) {
            return networkDestinationIpv6s(List.of(networkDestinationIpv6s));
        }
        @CustomType.Setter
        public Builder networkDestinationPorts(@Nullable List<InsightFiltersNetworkDestinationPort> networkDestinationPorts) {
            this.networkDestinationPorts = networkDestinationPorts;
            return this;
        }
        public Builder networkDestinationPorts(InsightFiltersNetworkDestinationPort... networkDestinationPorts) {
            return networkDestinationPorts(List.of(networkDestinationPorts));
        }
        @CustomType.Setter
        public Builder networkDirections(@Nullable List<InsightFiltersNetworkDirection> networkDirections) {
            this.networkDirections = networkDirections;
            return this;
        }
        public Builder networkDirections(InsightFiltersNetworkDirection... networkDirections) {
            return networkDirections(List.of(networkDirections));
        }
        @CustomType.Setter
        public Builder networkProtocols(@Nullable List<InsightFiltersNetworkProtocol> networkProtocols) {
            this.networkProtocols = networkProtocols;
            return this;
        }
        public Builder networkProtocols(InsightFiltersNetworkProtocol... networkProtocols) {
            return networkProtocols(List.of(networkProtocols));
        }
        @CustomType.Setter
        public Builder networkSourceDomains(@Nullable List<InsightFiltersNetworkSourceDomain> networkSourceDomains) {
            this.networkSourceDomains = networkSourceDomains;
            return this;
        }
        public Builder networkSourceDomains(InsightFiltersNetworkSourceDomain... networkSourceDomains) {
            return networkSourceDomains(List.of(networkSourceDomains));
        }
        @CustomType.Setter
        public Builder networkSourceIpv4s(@Nullable List<InsightFiltersNetworkSourceIpv4> networkSourceIpv4s) {
            this.networkSourceIpv4s = networkSourceIpv4s;
            return this;
        }
        public Builder networkSourceIpv4s(InsightFiltersNetworkSourceIpv4... networkSourceIpv4s) {
            return networkSourceIpv4s(List.of(networkSourceIpv4s));
        }
        @CustomType.Setter
        public Builder networkSourceIpv6s(@Nullable List<InsightFiltersNetworkSourceIpv6> networkSourceIpv6s) {
            this.networkSourceIpv6s = networkSourceIpv6s;
            return this;
        }
        public Builder networkSourceIpv6s(InsightFiltersNetworkSourceIpv6... networkSourceIpv6s) {
            return networkSourceIpv6s(List.of(networkSourceIpv6s));
        }
        @CustomType.Setter
        public Builder networkSourceMacs(@Nullable List<InsightFiltersNetworkSourceMac> networkSourceMacs) {
            this.networkSourceMacs = networkSourceMacs;
            return this;
        }
        public Builder networkSourceMacs(InsightFiltersNetworkSourceMac... networkSourceMacs) {
            return networkSourceMacs(List.of(networkSourceMacs));
        }
        @CustomType.Setter
        public Builder networkSourcePorts(@Nullable List<InsightFiltersNetworkSourcePort> networkSourcePorts) {
            this.networkSourcePorts = networkSourcePorts;
            return this;
        }
        public Builder networkSourcePorts(InsightFiltersNetworkSourcePort... networkSourcePorts) {
            return networkSourcePorts(List.of(networkSourcePorts));
        }
        @CustomType.Setter
        public Builder noteTexts(@Nullable List<InsightFiltersNoteText> noteTexts) {
            this.noteTexts = noteTexts;
            return this;
        }
        public Builder noteTexts(InsightFiltersNoteText... noteTexts) {
            return noteTexts(List.of(noteTexts));
        }
        @CustomType.Setter
        public Builder noteUpdatedAts(@Nullable List<InsightFiltersNoteUpdatedAt> noteUpdatedAts) {
            this.noteUpdatedAts = noteUpdatedAts;
            return this;
        }
        public Builder noteUpdatedAts(InsightFiltersNoteUpdatedAt... noteUpdatedAts) {
            return noteUpdatedAts(List.of(noteUpdatedAts));
        }
        @CustomType.Setter
        public Builder noteUpdatedBies(@Nullable List<InsightFiltersNoteUpdatedBy> noteUpdatedBies) {
            this.noteUpdatedBies = noteUpdatedBies;
            return this;
        }
        public Builder noteUpdatedBies(InsightFiltersNoteUpdatedBy... noteUpdatedBies) {
            return noteUpdatedBies(List.of(noteUpdatedBies));
        }
        @CustomType.Setter
        public Builder processLaunchedAts(@Nullable List<InsightFiltersProcessLaunchedAt> processLaunchedAts) {
            this.processLaunchedAts = processLaunchedAts;
            return this;
        }
        public Builder processLaunchedAts(InsightFiltersProcessLaunchedAt... processLaunchedAts) {
            return processLaunchedAts(List.of(processLaunchedAts));
        }
        @CustomType.Setter
        public Builder processNames(@Nullable List<InsightFiltersProcessName> processNames) {
            this.processNames = processNames;
            return this;
        }
        public Builder processNames(InsightFiltersProcessName... processNames) {
            return processNames(List.of(processNames));
        }
        @CustomType.Setter
        public Builder processParentPids(@Nullable List<InsightFiltersProcessParentPid> processParentPids) {
            this.processParentPids = processParentPids;
            return this;
        }
        public Builder processParentPids(InsightFiltersProcessParentPid... processParentPids) {
            return processParentPids(List.of(processParentPids));
        }
        @CustomType.Setter
        public Builder processPaths(@Nullable List<InsightFiltersProcessPath> processPaths) {
            this.processPaths = processPaths;
            return this;
        }
        public Builder processPaths(InsightFiltersProcessPath... processPaths) {
            return processPaths(List.of(processPaths));
        }
        @CustomType.Setter
        public Builder processPids(@Nullable List<InsightFiltersProcessPid> processPids) {
            this.processPids = processPids;
            return this;
        }
        public Builder processPids(InsightFiltersProcessPid... processPids) {
            return processPids(List.of(processPids));
        }
        @CustomType.Setter
        public Builder processTerminatedAts(@Nullable List<InsightFiltersProcessTerminatedAt> processTerminatedAts) {
            this.processTerminatedAts = processTerminatedAts;
            return this;
        }
        public Builder processTerminatedAts(InsightFiltersProcessTerminatedAt... processTerminatedAts) {
            return processTerminatedAts(List.of(processTerminatedAts));
        }
        @CustomType.Setter
        public Builder productArns(@Nullable List<InsightFiltersProductArn> productArns) {
            this.productArns = productArns;
            return this;
        }
        public Builder productArns(InsightFiltersProductArn... productArns) {
            return productArns(List.of(productArns));
        }
        @CustomType.Setter
        public Builder productFields(@Nullable List<InsightFiltersProductField> productFields) {
            this.productFields = productFields;
            return this;
        }
        public Builder productFields(InsightFiltersProductField... productFields) {
            return productFields(List.of(productFields));
        }
        @CustomType.Setter
        public Builder productNames(@Nullable List<InsightFiltersProductName> productNames) {
            this.productNames = productNames;
            return this;
        }
        public Builder productNames(InsightFiltersProductName... productNames) {
            return productNames(List.of(productNames));
        }
        @CustomType.Setter
        public Builder recommendationTexts(@Nullable List<InsightFiltersRecommendationText> recommendationTexts) {
            this.recommendationTexts = recommendationTexts;
            return this;
        }
        public Builder recommendationTexts(InsightFiltersRecommendationText... recommendationTexts) {
            return recommendationTexts(List.of(recommendationTexts));
        }
        @CustomType.Setter
        public Builder recordStates(@Nullable List<InsightFiltersRecordState> recordStates) {
            this.recordStates = recordStates;
            return this;
        }
        public Builder recordStates(InsightFiltersRecordState... recordStates) {
            return recordStates(List.of(recordStates));
        }
        @CustomType.Setter
        public Builder relatedFindingsIds(@Nullable List<InsightFiltersRelatedFindingsId> relatedFindingsIds) {
            this.relatedFindingsIds = relatedFindingsIds;
            return this;
        }
        public Builder relatedFindingsIds(InsightFiltersRelatedFindingsId... relatedFindingsIds) {
            return relatedFindingsIds(List.of(relatedFindingsIds));
        }
        @CustomType.Setter
        public Builder relatedFindingsProductArns(@Nullable List<InsightFiltersRelatedFindingsProductArn> relatedFindingsProductArns) {
            this.relatedFindingsProductArns = relatedFindingsProductArns;
            return this;
        }
        public Builder relatedFindingsProductArns(InsightFiltersRelatedFindingsProductArn... relatedFindingsProductArns) {
            return relatedFindingsProductArns(List.of(relatedFindingsProductArns));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceIamInstanceProfileArns(@Nullable List<InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn> resourceAwsEc2InstanceIamInstanceProfileArns) {
            this.resourceAwsEc2InstanceIamInstanceProfileArns = resourceAwsEc2InstanceIamInstanceProfileArns;
            return this;
        }
        public Builder resourceAwsEc2InstanceIamInstanceProfileArns(InsightFiltersResourceAwsEc2InstanceIamInstanceProfileArn... resourceAwsEc2InstanceIamInstanceProfileArns) {
            return resourceAwsEc2InstanceIamInstanceProfileArns(List.of(resourceAwsEc2InstanceIamInstanceProfileArns));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceImageIds(@Nullable List<InsightFiltersResourceAwsEc2InstanceImageId> resourceAwsEc2InstanceImageIds) {
            this.resourceAwsEc2InstanceImageIds = resourceAwsEc2InstanceImageIds;
            return this;
        }
        public Builder resourceAwsEc2InstanceImageIds(InsightFiltersResourceAwsEc2InstanceImageId... resourceAwsEc2InstanceImageIds) {
            return resourceAwsEc2InstanceImageIds(List.of(resourceAwsEc2InstanceImageIds));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceIpv4Addresses(@Nullable List<InsightFiltersResourceAwsEc2InstanceIpv4Address> resourceAwsEc2InstanceIpv4Addresses) {
            this.resourceAwsEc2InstanceIpv4Addresses = resourceAwsEc2InstanceIpv4Addresses;
            return this;
        }
        public Builder resourceAwsEc2InstanceIpv4Addresses(InsightFiltersResourceAwsEc2InstanceIpv4Address... resourceAwsEc2InstanceIpv4Addresses) {
            return resourceAwsEc2InstanceIpv4Addresses(List.of(resourceAwsEc2InstanceIpv4Addresses));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceIpv6Addresses(@Nullable List<InsightFiltersResourceAwsEc2InstanceIpv6Address> resourceAwsEc2InstanceIpv6Addresses) {
            this.resourceAwsEc2InstanceIpv6Addresses = resourceAwsEc2InstanceIpv6Addresses;
            return this;
        }
        public Builder resourceAwsEc2InstanceIpv6Addresses(InsightFiltersResourceAwsEc2InstanceIpv6Address... resourceAwsEc2InstanceIpv6Addresses) {
            return resourceAwsEc2InstanceIpv6Addresses(List.of(resourceAwsEc2InstanceIpv6Addresses));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceKeyNames(@Nullable List<InsightFiltersResourceAwsEc2InstanceKeyName> resourceAwsEc2InstanceKeyNames) {
            this.resourceAwsEc2InstanceKeyNames = resourceAwsEc2InstanceKeyNames;
            return this;
        }
        public Builder resourceAwsEc2InstanceKeyNames(InsightFiltersResourceAwsEc2InstanceKeyName... resourceAwsEc2InstanceKeyNames) {
            return resourceAwsEc2InstanceKeyNames(List.of(resourceAwsEc2InstanceKeyNames));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceLaunchedAts(@Nullable List<InsightFiltersResourceAwsEc2InstanceLaunchedAt> resourceAwsEc2InstanceLaunchedAts) {
            this.resourceAwsEc2InstanceLaunchedAts = resourceAwsEc2InstanceLaunchedAts;
            return this;
        }
        public Builder resourceAwsEc2InstanceLaunchedAts(InsightFiltersResourceAwsEc2InstanceLaunchedAt... resourceAwsEc2InstanceLaunchedAts) {
            return resourceAwsEc2InstanceLaunchedAts(List.of(resourceAwsEc2InstanceLaunchedAts));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceSubnetIds(@Nullable List<InsightFiltersResourceAwsEc2InstanceSubnetId> resourceAwsEc2InstanceSubnetIds) {
            this.resourceAwsEc2InstanceSubnetIds = resourceAwsEc2InstanceSubnetIds;
            return this;
        }
        public Builder resourceAwsEc2InstanceSubnetIds(InsightFiltersResourceAwsEc2InstanceSubnetId... resourceAwsEc2InstanceSubnetIds) {
            return resourceAwsEc2InstanceSubnetIds(List.of(resourceAwsEc2InstanceSubnetIds));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceTypes(@Nullable List<InsightFiltersResourceAwsEc2InstanceType> resourceAwsEc2InstanceTypes) {
            this.resourceAwsEc2InstanceTypes = resourceAwsEc2InstanceTypes;
            return this;
        }
        public Builder resourceAwsEc2InstanceTypes(InsightFiltersResourceAwsEc2InstanceType... resourceAwsEc2InstanceTypes) {
            return resourceAwsEc2InstanceTypes(List.of(resourceAwsEc2InstanceTypes));
        }
        @CustomType.Setter
        public Builder resourceAwsEc2InstanceVpcIds(@Nullable List<InsightFiltersResourceAwsEc2InstanceVpcId> resourceAwsEc2InstanceVpcIds) {
            this.resourceAwsEc2InstanceVpcIds = resourceAwsEc2InstanceVpcIds;
            return this;
        }
        public Builder resourceAwsEc2InstanceVpcIds(InsightFiltersResourceAwsEc2InstanceVpcId... resourceAwsEc2InstanceVpcIds) {
            return resourceAwsEc2InstanceVpcIds(List.of(resourceAwsEc2InstanceVpcIds));
        }
        @CustomType.Setter
        public Builder resourceAwsIamAccessKeyCreatedAts(@Nullable List<InsightFiltersResourceAwsIamAccessKeyCreatedAt> resourceAwsIamAccessKeyCreatedAts) {
            this.resourceAwsIamAccessKeyCreatedAts = resourceAwsIamAccessKeyCreatedAts;
            return this;
        }
        public Builder resourceAwsIamAccessKeyCreatedAts(InsightFiltersResourceAwsIamAccessKeyCreatedAt... resourceAwsIamAccessKeyCreatedAts) {
            return resourceAwsIamAccessKeyCreatedAts(List.of(resourceAwsIamAccessKeyCreatedAts));
        }
        @CustomType.Setter
        public Builder resourceAwsIamAccessKeyStatuses(@Nullable List<InsightFiltersResourceAwsIamAccessKeyStatus> resourceAwsIamAccessKeyStatuses) {
            this.resourceAwsIamAccessKeyStatuses = resourceAwsIamAccessKeyStatuses;
            return this;
        }
        public Builder resourceAwsIamAccessKeyStatuses(InsightFiltersResourceAwsIamAccessKeyStatus... resourceAwsIamAccessKeyStatuses) {
            return resourceAwsIamAccessKeyStatuses(List.of(resourceAwsIamAccessKeyStatuses));
        }
        @CustomType.Setter
        public Builder resourceAwsIamAccessKeyUserNames(@Nullable List<InsightFiltersResourceAwsIamAccessKeyUserName> resourceAwsIamAccessKeyUserNames) {
            this.resourceAwsIamAccessKeyUserNames = resourceAwsIamAccessKeyUserNames;
            return this;
        }
        public Builder resourceAwsIamAccessKeyUserNames(InsightFiltersResourceAwsIamAccessKeyUserName... resourceAwsIamAccessKeyUserNames) {
            return resourceAwsIamAccessKeyUserNames(List.of(resourceAwsIamAccessKeyUserNames));
        }
        @CustomType.Setter
        public Builder resourceAwsS3BucketOwnerIds(@Nullable List<InsightFiltersResourceAwsS3BucketOwnerId> resourceAwsS3BucketOwnerIds) {
            this.resourceAwsS3BucketOwnerIds = resourceAwsS3BucketOwnerIds;
            return this;
        }
        public Builder resourceAwsS3BucketOwnerIds(InsightFiltersResourceAwsS3BucketOwnerId... resourceAwsS3BucketOwnerIds) {
            return resourceAwsS3BucketOwnerIds(List.of(resourceAwsS3BucketOwnerIds));
        }
        @CustomType.Setter
        public Builder resourceAwsS3BucketOwnerNames(@Nullable List<InsightFiltersResourceAwsS3BucketOwnerName> resourceAwsS3BucketOwnerNames) {
            this.resourceAwsS3BucketOwnerNames = resourceAwsS3BucketOwnerNames;
            return this;
        }
        public Builder resourceAwsS3BucketOwnerNames(InsightFiltersResourceAwsS3BucketOwnerName... resourceAwsS3BucketOwnerNames) {
            return resourceAwsS3BucketOwnerNames(List.of(resourceAwsS3BucketOwnerNames));
        }
        @CustomType.Setter
        public Builder resourceContainerImageIds(@Nullable List<InsightFiltersResourceContainerImageId> resourceContainerImageIds) {
            this.resourceContainerImageIds = resourceContainerImageIds;
            return this;
        }
        public Builder resourceContainerImageIds(InsightFiltersResourceContainerImageId... resourceContainerImageIds) {
            return resourceContainerImageIds(List.of(resourceContainerImageIds));
        }
        @CustomType.Setter
        public Builder resourceContainerImageNames(@Nullable List<InsightFiltersResourceContainerImageName> resourceContainerImageNames) {
            this.resourceContainerImageNames = resourceContainerImageNames;
            return this;
        }
        public Builder resourceContainerImageNames(InsightFiltersResourceContainerImageName... resourceContainerImageNames) {
            return resourceContainerImageNames(List.of(resourceContainerImageNames));
        }
        @CustomType.Setter
        public Builder resourceContainerLaunchedAts(@Nullable List<InsightFiltersResourceContainerLaunchedAt> resourceContainerLaunchedAts) {
            this.resourceContainerLaunchedAts = resourceContainerLaunchedAts;
            return this;
        }
        public Builder resourceContainerLaunchedAts(InsightFiltersResourceContainerLaunchedAt... resourceContainerLaunchedAts) {
            return resourceContainerLaunchedAts(List.of(resourceContainerLaunchedAts));
        }
        @CustomType.Setter
        public Builder resourceContainerNames(@Nullable List<InsightFiltersResourceContainerName> resourceContainerNames) {
            this.resourceContainerNames = resourceContainerNames;
            return this;
        }
        public Builder resourceContainerNames(InsightFiltersResourceContainerName... resourceContainerNames) {
            return resourceContainerNames(List.of(resourceContainerNames));
        }
        @CustomType.Setter
        public Builder resourceDetailsOthers(@Nullable List<InsightFiltersResourceDetailsOther> resourceDetailsOthers) {
            this.resourceDetailsOthers = resourceDetailsOthers;
            return this;
        }
        public Builder resourceDetailsOthers(InsightFiltersResourceDetailsOther... resourceDetailsOthers) {
            return resourceDetailsOthers(List.of(resourceDetailsOthers));
        }
        @CustomType.Setter
        public Builder resourceIds(@Nullable List<InsightFiltersResourceId> resourceIds) {
            this.resourceIds = resourceIds;
            return this;
        }
        public Builder resourceIds(InsightFiltersResourceId... resourceIds) {
            return resourceIds(List.of(resourceIds));
        }
        @CustomType.Setter
        public Builder resourcePartitions(@Nullable List<InsightFiltersResourcePartition> resourcePartitions) {
            this.resourcePartitions = resourcePartitions;
            return this;
        }
        public Builder resourcePartitions(InsightFiltersResourcePartition... resourcePartitions) {
            return resourcePartitions(List.of(resourcePartitions));
        }
        @CustomType.Setter
        public Builder resourceRegions(@Nullable List<InsightFiltersResourceRegion> resourceRegions) {
            this.resourceRegions = resourceRegions;
            return this;
        }
        public Builder resourceRegions(InsightFiltersResourceRegion... resourceRegions) {
            return resourceRegions(List.of(resourceRegions));
        }
        @CustomType.Setter
        public Builder resourceTags(@Nullable List<InsightFiltersResourceTag> resourceTags) {
            this.resourceTags = resourceTags;
            return this;
        }
        public Builder resourceTags(InsightFiltersResourceTag... resourceTags) {
            return resourceTags(List.of(resourceTags));
        }
        @CustomType.Setter
        public Builder resourceTypes(@Nullable List<InsightFiltersResourceType> resourceTypes) {
            this.resourceTypes = resourceTypes;
            return this;
        }
        public Builder resourceTypes(InsightFiltersResourceType... resourceTypes) {
            return resourceTypes(List.of(resourceTypes));
        }
        @CustomType.Setter
        public Builder severityLabels(@Nullable List<InsightFiltersSeverityLabel> severityLabels) {
            this.severityLabels = severityLabels;
            return this;
        }
        public Builder severityLabels(InsightFiltersSeverityLabel... severityLabels) {
            return severityLabels(List.of(severityLabels));
        }
        @CustomType.Setter
        public Builder sourceUrls(@Nullable List<InsightFiltersSourceUrl> sourceUrls) {
            this.sourceUrls = sourceUrls;
            return this;
        }
        public Builder sourceUrls(InsightFiltersSourceUrl... sourceUrls) {
            return sourceUrls(List.of(sourceUrls));
        }
        @CustomType.Setter
        public Builder threatIntelIndicatorCategories(@Nullable List<InsightFiltersThreatIntelIndicatorCategory> threatIntelIndicatorCategories) {
            this.threatIntelIndicatorCategories = threatIntelIndicatorCategories;
            return this;
        }
        public Builder threatIntelIndicatorCategories(InsightFiltersThreatIntelIndicatorCategory... threatIntelIndicatorCategories) {
            return threatIntelIndicatorCategories(List.of(threatIntelIndicatorCategories));
        }
        @CustomType.Setter
        public Builder threatIntelIndicatorLastObservedAts(@Nullable List<InsightFiltersThreatIntelIndicatorLastObservedAt> threatIntelIndicatorLastObservedAts) {
            this.threatIntelIndicatorLastObservedAts = threatIntelIndicatorLastObservedAts;
            return this;
        }
        public Builder threatIntelIndicatorLastObservedAts(InsightFiltersThreatIntelIndicatorLastObservedAt... threatIntelIndicatorLastObservedAts) {
            return threatIntelIndicatorLastObservedAts(List.of(threatIntelIndicatorLastObservedAts));
        }
        @CustomType.Setter
        public Builder threatIntelIndicatorSourceUrls(@Nullable List<InsightFiltersThreatIntelIndicatorSourceUrl> threatIntelIndicatorSourceUrls) {
            this.threatIntelIndicatorSourceUrls = threatIntelIndicatorSourceUrls;
            return this;
        }
        public Builder threatIntelIndicatorSourceUrls(InsightFiltersThreatIntelIndicatorSourceUrl... threatIntelIndicatorSourceUrls) {
            return threatIntelIndicatorSourceUrls(List.of(threatIntelIndicatorSourceUrls));
        }
        @CustomType.Setter
        public Builder threatIntelIndicatorSources(@Nullable List<InsightFiltersThreatIntelIndicatorSource> threatIntelIndicatorSources) {
            this.threatIntelIndicatorSources = threatIntelIndicatorSources;
            return this;
        }
        public Builder threatIntelIndicatorSources(InsightFiltersThreatIntelIndicatorSource... threatIntelIndicatorSources) {
            return threatIntelIndicatorSources(List.of(threatIntelIndicatorSources));
        }
        @CustomType.Setter
        public Builder threatIntelIndicatorTypes(@Nullable List<InsightFiltersThreatIntelIndicatorType> threatIntelIndicatorTypes) {
            this.threatIntelIndicatorTypes = threatIntelIndicatorTypes;
            return this;
        }
        public Builder threatIntelIndicatorTypes(InsightFiltersThreatIntelIndicatorType... threatIntelIndicatorTypes) {
            return threatIntelIndicatorTypes(List.of(threatIntelIndicatorTypes));
        }
        @CustomType.Setter
        public Builder threatIntelIndicatorValues(@Nullable List<InsightFiltersThreatIntelIndicatorValue> threatIntelIndicatorValues) {
            this.threatIntelIndicatorValues = threatIntelIndicatorValues;
            return this;
        }
        public Builder threatIntelIndicatorValues(InsightFiltersThreatIntelIndicatorValue... threatIntelIndicatorValues) {
            return threatIntelIndicatorValues(List.of(threatIntelIndicatorValues));
        }
        @CustomType.Setter
        public Builder titles(@Nullable List<InsightFiltersTitle> titles) {
            this.titles = titles;
            return this;
        }
        public Builder titles(InsightFiltersTitle... titles) {
            return titles(List.of(titles));
        }
        @CustomType.Setter
        public Builder types(@Nullable List<InsightFiltersType> types) {
            this.types = types;
            return this;
        }
        public Builder types(InsightFiltersType... types) {
            return types(List.of(types));
        }
        @CustomType.Setter
        public Builder updatedAts(@Nullable List<InsightFiltersUpdatedAt> updatedAts) {
            this.updatedAts = updatedAts;
            return this;
        }
        public Builder updatedAts(InsightFiltersUpdatedAt... updatedAts) {
            return updatedAts(List.of(updatedAts));
        }
        @CustomType.Setter
        public Builder userDefinedValues(@Nullable List<InsightFiltersUserDefinedValue> userDefinedValues) {
            this.userDefinedValues = userDefinedValues;
            return this;
        }
        public Builder userDefinedValues(InsightFiltersUserDefinedValue... userDefinedValues) {
            return userDefinedValues(List.of(userDefinedValues));
        }
        @CustomType.Setter
        public Builder verificationStates(@Nullable List<InsightFiltersVerificationState> verificationStates) {
            this.verificationStates = verificationStates;
            return this;
        }
        public Builder verificationStates(InsightFiltersVerificationState... verificationStates) {
            return verificationStates(List.of(verificationStates));
        }
        @CustomType.Setter
        public Builder workflowStatuses(@Nullable List<InsightFiltersWorkflowStatus> workflowStatuses) {
            this.workflowStatuses = workflowStatuses;
            return this;
        }
        public Builder workflowStatuses(InsightFiltersWorkflowStatus... workflowStatuses) {
            return workflowStatuses(List.of(workflowStatuses));
        }
        public InsightFilters build() {
            final var o = new InsightFilters();
            o.awsAccountIds = awsAccountIds;
            o.companyNames = companyNames;
            o.complianceStatuses = complianceStatuses;
            o.confidences = confidences;
            o.createdAts = createdAts;
            o.criticalities = criticalities;
            o.descriptions = descriptions;
            o.findingProviderFieldsConfidences = findingProviderFieldsConfidences;
            o.findingProviderFieldsCriticalities = findingProviderFieldsCriticalities;
            o.findingProviderFieldsRelatedFindingsIds = findingProviderFieldsRelatedFindingsIds;
            o.findingProviderFieldsRelatedFindingsProductArns = findingProviderFieldsRelatedFindingsProductArns;
            o.findingProviderFieldsSeverityLabels = findingProviderFieldsSeverityLabels;
            o.findingProviderFieldsSeverityOriginals = findingProviderFieldsSeverityOriginals;
            o.findingProviderFieldsTypes = findingProviderFieldsTypes;
            o.firstObservedAts = firstObservedAts;
            o.generatorIds = generatorIds;
            o.ids = ids;
            o.keywords = keywords;
            o.lastObservedAts = lastObservedAts;
            o.malwareNames = malwareNames;
            o.malwarePaths = malwarePaths;
            o.malwareStates = malwareStates;
            o.malwareTypes = malwareTypes;
            o.networkDestinationDomains = networkDestinationDomains;
            o.networkDestinationIpv4s = networkDestinationIpv4s;
            o.networkDestinationIpv6s = networkDestinationIpv6s;
            o.networkDestinationPorts = networkDestinationPorts;
            o.networkDirections = networkDirections;
            o.networkProtocols = networkProtocols;
            o.networkSourceDomains = networkSourceDomains;
            o.networkSourceIpv4s = networkSourceIpv4s;
            o.networkSourceIpv6s = networkSourceIpv6s;
            o.networkSourceMacs = networkSourceMacs;
            o.networkSourcePorts = networkSourcePorts;
            o.noteTexts = noteTexts;
            o.noteUpdatedAts = noteUpdatedAts;
            o.noteUpdatedBies = noteUpdatedBies;
            o.processLaunchedAts = processLaunchedAts;
            o.processNames = processNames;
            o.processParentPids = processParentPids;
            o.processPaths = processPaths;
            o.processPids = processPids;
            o.processTerminatedAts = processTerminatedAts;
            o.productArns = productArns;
            o.productFields = productFields;
            o.productNames = productNames;
            o.recommendationTexts = recommendationTexts;
            o.recordStates = recordStates;
            o.relatedFindingsIds = relatedFindingsIds;
            o.relatedFindingsProductArns = relatedFindingsProductArns;
            o.resourceAwsEc2InstanceIamInstanceProfileArns = resourceAwsEc2InstanceIamInstanceProfileArns;
            o.resourceAwsEc2InstanceImageIds = resourceAwsEc2InstanceImageIds;
            o.resourceAwsEc2InstanceIpv4Addresses = resourceAwsEc2InstanceIpv4Addresses;
            o.resourceAwsEc2InstanceIpv6Addresses = resourceAwsEc2InstanceIpv6Addresses;
            o.resourceAwsEc2InstanceKeyNames = resourceAwsEc2InstanceKeyNames;
            o.resourceAwsEc2InstanceLaunchedAts = resourceAwsEc2InstanceLaunchedAts;
            o.resourceAwsEc2InstanceSubnetIds = resourceAwsEc2InstanceSubnetIds;
            o.resourceAwsEc2InstanceTypes = resourceAwsEc2InstanceTypes;
            o.resourceAwsEc2InstanceVpcIds = resourceAwsEc2InstanceVpcIds;
            o.resourceAwsIamAccessKeyCreatedAts = resourceAwsIamAccessKeyCreatedAts;
            o.resourceAwsIamAccessKeyStatuses = resourceAwsIamAccessKeyStatuses;
            o.resourceAwsIamAccessKeyUserNames = resourceAwsIamAccessKeyUserNames;
            o.resourceAwsS3BucketOwnerIds = resourceAwsS3BucketOwnerIds;
            o.resourceAwsS3BucketOwnerNames = resourceAwsS3BucketOwnerNames;
            o.resourceContainerImageIds = resourceContainerImageIds;
            o.resourceContainerImageNames = resourceContainerImageNames;
            o.resourceContainerLaunchedAts = resourceContainerLaunchedAts;
            o.resourceContainerNames = resourceContainerNames;
            o.resourceDetailsOthers = resourceDetailsOthers;
            o.resourceIds = resourceIds;
            o.resourcePartitions = resourcePartitions;
            o.resourceRegions = resourceRegions;
            o.resourceTags = resourceTags;
            o.resourceTypes = resourceTypes;
            o.severityLabels = severityLabels;
            o.sourceUrls = sourceUrls;
            o.threatIntelIndicatorCategories = threatIntelIndicatorCategories;
            o.threatIntelIndicatorLastObservedAts = threatIntelIndicatorLastObservedAts;
            o.threatIntelIndicatorSourceUrls = threatIntelIndicatorSourceUrls;
            o.threatIntelIndicatorSources = threatIntelIndicatorSources;
            o.threatIntelIndicatorTypes = threatIntelIndicatorTypes;
            o.threatIntelIndicatorValues = threatIntelIndicatorValues;
            o.titles = titles;
            o.types = types;
            o.updatedAts = updatedAts;
            o.userDefinedValues = userDefinedValues;
            o.verificationStates = verificationStates;
            o.workflowStatuses = workflowStatuses;
            return o;
        }
    }
}
