import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface GetAccountsAccountDetail {
    /**
     * The account id.
     */
    accountId?: string;
    /**
     * External Id of the onboarded account
     */
    externalId?: string;
    /**
     * Onboarding status of the account.
     */
    onboardingStatus?: string;
}
export interface GetAccountsAccountDetailArgs {
    /**
     * The account id.
     */
    accountId?: pulumi.Input<string | undefined>;
    /**
     * External Id of the onboarded account
     */
    externalId?: pulumi.Input<string | undefined>;
    /**
     * Onboarding status of the account.
     */
    onboardingStatus?: pulumi.Input<string | undefined>;
}
export interface NgfwEgressNat {
    /**
     * Enable egress NAT
     */
    enabled: pulumi.Input<boolean>;
    settings?: pulumi.Input<pulumi.Input<inputs.NgfwEgressNatSetting>[] | undefined>;
}
export interface NgfwEgressNatSetting {
    /**
     * Set ip pool type from the following options. Valid values are `AWSService` or `BYOIP`.
     */
    ipPoolType?: pulumi.Input<string | undefined>;
    /**
     * The IP pool ID
     */
    ipamPoolId?: pulumi.Input<string | undefined>;
}
export interface NgfwEndpoint {
    /**
     * The account id.
     */
    accountId?: pulumi.Input<string | undefined>;
    /**
     * Enable egress NAT
     */
    egressNatEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Endpoint ID of the security zone
     */
    endpointId?: pulumi.Input<string | undefined>;
    /**
     * The endpoint mode. Valid values are `ServiceManaged` or `CustomerManaged`.
     */
    mode: pulumi.Input<string>;
    prefixes?: pulumi.Input<pulumi.Input<inputs.NgfwEndpointPrefix>[] | undefined>;
    /**
     * The rejected reason.
     */
    rejectedReason?: pulumi.Input<string | undefined>;
    /**
     * The attachment status.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The subnet id.
     */
    subnetId?: pulumi.Input<string | undefined>;
    /**
     * The vpc id.
     */
    vpcId?: pulumi.Input<string | undefined>;
    /**
     * The AZ id.
     */
    zoneId?: pulumi.Input<string | undefined>;
}
export interface NgfwEndpointPrefix {
    privatePrefixes?: pulumi.Input<pulumi.Input<inputs.NgfwEndpointPrefixPrivatePrefix>[] | undefined>;
}
export interface NgfwEndpointPrefixPrivatePrefix {
    cidrs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface NgfwLogProfileLogConfig {
    /**
     * Type of Role for log configuration
     */
    accountId?: pulumi.Input<string | undefined>;
    /**
     * The log destination details.
     */
    logDestination: pulumi.Input<string>;
    /**
     * The log destination type. Valid values are `S3`, `CloudWatchLogs`, or `KinesisDataFirehose`.
     */
    logDestinationType: pulumi.Input<string>;
    /**
     * The list of different log types that are wanted
     */
    logTypes: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Type of Role for log configuration
     */
    roleType?: pulumi.Input<string | undefined>;
}
export interface NgfwLogProfileLogDestination {
    /**
     * The log destination details.
     */
    destination?: pulumi.Input<string | undefined>;
    /**
     * The log destination type. Valid values are `S3`, `CloudWatchLogs`, or `KinesisDataFirehose`.
     */
    destinationType?: pulumi.Input<string | undefined>;
    /**
     * The type of logs. Valid values are `TRAFFIC`, `THREAT`, or `DECRYPTION`.
     */
    logType?: pulumi.Input<string | undefined>;
}
export interface NgfwPrivateAccess {
    /**
     * AWS ResourceID
     */
    resourceId: pulumi.Input<string>;
    /**
     * Type of Private Access
     */
    type: pulumi.Input<string>;
}
export interface NgfwSecurityZone {
    /**
     * The account id.
     */
    accountId?: pulumi.Input<string | undefined>;
    /**
     * Enable egress NAT
     */
    egressNatEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Endpoint ID of the security zone
     */
    endpointId: pulumi.Input<string>;
    /**
     * The endpoint mode. Valid values are `ServiceManaged` or `CustomerManaged`.
     */
    mode?: pulumi.Input<string | undefined>;
    prefixes?: pulumi.Input<pulumi.Input<inputs.NgfwSecurityZonePrefix>[] | undefined>;
    /**
     * The rejected reason.
     */
    rejectedReason?: pulumi.Input<string | undefined>;
    /**
     * The attachment status.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The subnet id.
     */
    subnetId?: pulumi.Input<string | undefined>;
    /**
     * The vpc id.
     */
    vpcId?: pulumi.Input<string | undefined>;
    /**
     * The AZ id.
     */
    zoneId?: pulumi.Input<string | undefined>;
}
export interface NgfwSecurityZonePrefix {
    privatePrefixes?: pulumi.Input<pulumi.Input<inputs.NgfwSecurityZonePrefixPrivatePrefix>[] | undefined>;
}
export interface NgfwSecurityZonePrefixPrivatePrefix {
    cidrs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface NgfwStatus {
    /**
     * The firewall attachments.
     */
    attachments?: pulumi.Input<pulumi.Input<inputs.NgfwStatusAttachment>[] | undefined>;
    /**
     * The device rulestack commit status.
     */
    deviceRulestackCommitStatus?: pulumi.Input<string | undefined>;
    /**
     * The firewall failure reason.
     */
    failureReason?: pulumi.Input<string | undefined>;
    /**
     * The firewall status.
     */
    firewallStatus?: pulumi.Input<string | undefined>;
    /**
     * The rulestack status.
     */
    rulestackStatus?: pulumi.Input<string | undefined>;
}
export interface NgfwStatusAttachment {
    /**
     * The endpoint id.
     */
    endpointId?: pulumi.Input<string | undefined>;
    /**
     * The reject reason.
     */
    rejectedReason?: pulumi.Input<string | undefined>;
    /**
     * The attachment status.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The subnet id.
     */
    subnetId?: pulumi.Input<string | undefined>;
}
export interface NgfwSubnetMapping {
    /**
     * The availability zone, for when the endpoint mode is customer managed.
     */
    availabilityZone?: pulumi.Input<string | undefined>;
    /**
     * The availability zone ID, for when the endpoint mode is customer managed.
     */
    availabilityZoneId?: pulumi.Input<string | undefined>;
    /**
     * The subnet id, for when the endpoint mode is service managed.
     */
    subnetId?: pulumi.Input<string | undefined>;
}
export interface NgfwUserId {
    /**
     * Agent Name for UserID
     */
    agentName?: pulumi.Input<string | undefined>;
    /**
     * The Collector Name
     */
    collectorName?: pulumi.Input<string | undefined>;
    /**
     * List of Custom Include Exclude Networks
     */
    customIncludeExcludeNetworks?: pulumi.Input<pulumi.Input<inputs.NgfwUserIdCustomIncludeExcludeNetwork>[] | undefined>;
    /**
     * Enable UserID Config
     */
    enabled: pulumi.Input<boolean>;
    /**
     * The Port
     */
    port: pulumi.Input<number>;
    /**
     * AWS Secret Key ARN
     */
    secretKeyArn?: pulumi.Input<string | undefined>;
    /**
     * Status and State of UserID Configuration
     */
    userIdStatus?: pulumi.Input<string | undefined>;
}
export interface NgfwUserIdCustomIncludeExcludeNetwork {
    /**
     * Include or exclude this subnet from user-id configuration
     */
    discoveryInclude: pulumi.Input<boolean>;
    /**
     * Enable this specific custom include/exclude network
     */
    enabled: pulumi.Input<boolean>;
    /**
     * Name of subnet filter
     */
    name: pulumi.Input<string>;
    /**
     * Network IP address of the subnet filter
     */
    networkAddress: pulumi.Input<string>;
}
export interface RulestackProfileConfig {
    /**
     * Anti-spyware profile setting. Defaults to `BestPractice`.
     */
    antiSpyware?: pulumi.Input<string | undefined>;
    /**
     * Anti-virus profile setting. Defaults to `BestPractice`.
     */
    antiVirus?: pulumi.Input<string | undefined>;
    /**
     * File blocking profile setting. Defaults to `BestPractice`.
     */
    fileBlocking?: pulumi.Input<string | undefined>;
    /**
     * Outbound trust certificate.
     */
    outboundTrustCertificate?: pulumi.Input<string | undefined>;
    /**
     * Outbound untrust certificate.
     */
    outboundUntrustCertificate?: pulumi.Input<string | undefined>;
    /**
     * URL filtering profile setting. Defaults to `None`.
     */
    urlFiltering?: pulumi.Input<string | undefined>;
    /**
     * Vulnerability profile setting. Defaults to `BestPractice`.
     */
    vulnerability?: pulumi.Input<string | undefined>;
}
export interface SecurityRuleCategory {
    /**
     * List of feeds.
     */
    feeds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of URL category names.
     */
    urlCategoryNames?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface SecurityRuleDestination {
    /**
     * List of CIDRs.
     */
    cidrs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of countries.
     */
    countries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of feeds.
     */
    feeds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of FQDN lists.
     */
    fqdnLists?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of prefix list.
     */
    prefixLists?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
export interface SecurityRuleSource {
    /**
     * List of CIDRs.
     */
    cidrs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of countries.
     */
    countries?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of feeds.
     */
    feeds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of prefix list.
     */
    prefixLists?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
//# sourceMappingURL=input.d.ts.map