import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Create a Network Security Policy * * ## Example * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * // Network Security Policy TWO_ENV_ISOLATION Rule * const isolation_nsp = new nutanix.NetworkSecurityPolicyV2("isolation-nsp", { * name: "isolation_policy", * description: "isolation policy example", * state: "SAVE", * type: "ISOLATION", * rules: [{ * type: "TWO_ENV_ISOLATION", * specs: [{ * twoEnvIsolationRuleSpecs: [{ * firstIsolationGroups: ["ba250e3e-1db1-4950-917f-a9e2ea35b8e3"], * secondIsolationGroups: ["ab520e1d-4950-1db1-917f-a9e2ea35b8e3"], * }], * }], * }], * isHitlogEnabled: true, * }); * // Network Security Policy with GLOBAL scope (VMs resolved by category across all VPCs) * const global_nsp = new nutanix.NetworkSecurityPolicyV2("global-nsp", { * name: "my-global-policy", * description: "Application policy with global scope", * state: "SAVE", * type: "APPLICATION", * scope: "GLOBAL", * rules: [{ * type: "APPLICATION", * specs: [{ * applicationRuleSpecs: [{ * securedGroupCategoryReferences: [example.id], * serviceGroupReferences: [exampleNutanixServiceGroupsV2.id], * srcAddressGroupReferences: [exampleNutanixAddressGroupsV2.id], * }], * }], * }], * }); * ``` * */ export declare class NetworkSecurityPolicyV2 extends pulumi.CustomResource { /** * Get an existing NetworkSecurityPolicyV2 resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: NetworkSecurityPolicyV2State, opts?: pulumi.CustomResourceOptions): NetworkSecurityPolicyV2; /** * Returns true if the given object is an instance of NetworkSecurityPolicyV2. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is NetworkSecurityPolicyV2; /** * created by. */ readonly createdBy: pulumi.Output; /** * creation time of NSP */ readonly creationTime: pulumi.Output; /** * A user defined annotation for a policy. */ readonly description: pulumi.Output; /** * A globally unique identifier of an instance that is suitable for external consumption. */ readonly extId: pulumi.Output; /** * If Hitlog is enabled. */ readonly isHitlogEnabled: pulumi.Output; /** * If Ipv6 Traffic is allowed. */ readonly isIpv6TrafficAllowed: pulumi.Output; /** * Is system defined NSP */ readonly isSystemDefined: pulumi.Output; /** * last updated time */ readonly lastUpdateTime: pulumi.Output; /** * A HATEOAS style link for the response. Each link contains a user-friendly name identifying the link and an address for retrieving the particular resource. */ readonly links: pulumi.Output; /** * Name of the Flow Network Security Policy. */ readonly name: pulumi.Output; /** * A list of rules that form a policy. For isolation policies, use isolation rules; for application or quarantine policies, use application rules. */ readonly rules: pulumi.Output; /** * Defines the scope of the policy. Acceptable values are "ALL_VLAN", "ALL_VPC", "VPC_LIST", and "GLOBAL". */ readonly scope: pulumi.Output; /** * Uuids of the secured groups in the NSP. */ readonly securedGroups: pulumi.Output; /** * Whether the policy is applied or monitored; can be omitted or set null to save the policy without applying or monitoring it. Acceptable values are "SAVE", "MONITOR", "ENFORCE". */ readonly state: pulumi.Output; /** * A globally unique identifier that represents the tenant that owns this entity */ readonly tenantId: pulumi.Output; /** * Defines the type of rules that can be used in a policy. Acceptable values are "QUARANTINE", "ISOLATION", "APPLICATION", "SHAREDSERVICE". */ readonly type: pulumi.Output; /** * A list of external ids for VPCs, used only when the scope of policy is a list of VPCs. */ readonly vpcReferences: pulumi.Output; /** * Create a NetworkSecurityPolicyV2 resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: NetworkSecurityPolicyV2Args, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering NetworkSecurityPolicyV2 resources. */ export interface NetworkSecurityPolicyV2State { /** * created by. */ createdBy?: pulumi.Input; /** * creation time of NSP */ creationTime?: pulumi.Input; /** * A user defined annotation for a policy. */ description?: pulumi.Input; /** * A globally unique identifier of an instance that is suitable for external consumption. */ extId?: pulumi.Input; /** * If Hitlog is enabled. */ isHitlogEnabled?: pulumi.Input; /** * If Ipv6 Traffic is allowed. */ isIpv6TrafficAllowed?: pulumi.Input; /** * Is system defined NSP */ isSystemDefined?: pulumi.Input; /** * last updated time */ lastUpdateTime?: pulumi.Input; /** * A HATEOAS style link for the response. Each link contains a user-friendly name identifying the link and an address for retrieving the particular resource. */ links?: pulumi.Input[] | undefined>; /** * Name of the Flow Network Security Policy. */ name?: pulumi.Input; /** * A list of rules that form a policy. For isolation policies, use isolation rules; for application or quarantine policies, use application rules. */ rules?: pulumi.Input[] | undefined>; /** * Defines the scope of the policy. Acceptable values are "ALL_VLAN", "ALL_VPC", "VPC_LIST", and "GLOBAL". */ scope?: pulumi.Input; /** * Uuids of the secured groups in the NSP. */ securedGroups?: pulumi.Input[] | undefined>; /** * Whether the policy is applied or monitored; can be omitted or set null to save the policy without applying or monitoring it. Acceptable values are "SAVE", "MONITOR", "ENFORCE". */ state?: pulumi.Input; /** * A globally unique identifier that represents the tenant that owns this entity */ tenantId?: pulumi.Input; /** * Defines the type of rules that can be used in a policy. Acceptable values are "QUARANTINE", "ISOLATION", "APPLICATION", "SHAREDSERVICE". */ type?: pulumi.Input; /** * A list of external ids for VPCs, used only when the scope of policy is a list of VPCs. */ vpcReferences?: pulumi.Input[] | undefined>; } /** * The set of arguments for constructing a NetworkSecurityPolicyV2 resource. */ export interface NetworkSecurityPolicyV2Args { /** * A user defined annotation for a policy. */ description?: pulumi.Input; /** * If Hitlog is enabled. */ isHitlogEnabled?: pulumi.Input; /** * If Ipv6 Traffic is allowed. */ isIpv6TrafficAllowed?: pulumi.Input; /** * Name of the Flow Network Security Policy. */ name?: pulumi.Input; /** * A list of rules that form a policy. For isolation policies, use isolation rules; for application or quarantine policies, use application rules. */ rules?: pulumi.Input[] | undefined>; /** * Defines the scope of the policy. Acceptable values are "ALL_VLAN", "ALL_VPC", "VPC_LIST", and "GLOBAL". */ scope?: pulumi.Input; /** * Whether the policy is applied or monitored; can be omitted or set null to save the policy without applying or monitoring it. Acceptable values are "SAVE", "MONITOR", "ENFORCE". */ state?: pulumi.Input; /** * Defines the type of rules that can be used in a policy. Acceptable values are "QUARANTINE", "ISOLATION", "APPLICATION", "SHAREDSERVICE". */ type: pulumi.Input; /** * A list of external ids for VPCs, used only when the scope of policy is a list of VPCs. */ vpcReferences?: pulumi.Input[] | undefined>; } //# sourceMappingURL=networkSecurityPolicyV2.d.ts.map