import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Describes a Network security rule * * > NOTE: The use of networkSecurityRule is only applicable in AHV clusters and requires Microsegmentation to be enabled. This feature is a function of the Flow product and requires a Flow license. For more information on Flow and Microsegmentation please visit https://www.nutanix.com/products/flow * * ## Example Usage * * ### Isolate Development VMs From Production VMs And Get Its Information) * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const isolation = new nutanix.NetworkSecurityRule("isolation", { * name: "example-isolation-rule", * description: "Isolation Rule Example", * isolationRuleAction: "APPLY", * isolationRuleFirstEntityFilterKindLists: ["vm"], * isolationRuleFirstEntityFilterType: "CATEGORIES_MATCH_ALL", * isolationRuleFirstEntityFilterParams: [{ * name: "Environment", * values: ["Dev"], * }], * isolationRuleSecondEntityFilterKindLists: ["vm"], * isolationRuleSecondEntityFilterType: "CATEGORIES_MATCH_ALL", * isolationRuleSecondEntityFilterParams: [{ * name: "Environment", * values: ["Production"], * }], * }); * const test = nutanix.getNetworkSecurityRuleOutput({ * networkSecurityRuleId: isolation.id, * }); * ``` * */ export declare function getNetworkSecurityRule(args: GetNetworkSecurityRuleArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getNetworkSecurityRule. */ export interface GetNetworkSecurityRuleArgs { /** * Categories for the network_security_rule. */ categories?: inputs.GetNetworkSecurityRuleCategory[]; /** * Represents network security rule UUID */ networkSecurityRuleId: string; } /** * A collection of values returned by getNetworkSecurityRule. */ export interface GetNetworkSecurityRuleResult { /** * - These rules govern what flows are allowed. Target group is a required attribute. Empty inboundAllowList will not anything into target group. Empty outboundAllowList will allow everything from target group. */ readonly adRuleAction: string; /** * The set of categories that matching VMs need to have. */ readonly adRuleInboundAllowLists: outputs.GetNetworkSecurityRuleAdRuleInboundAllowList[]; readonly adRuleOutboundAllowLists: outputs.GetNetworkSecurityRuleAdRuleOutboundAllowList[]; /** * - Default policy for communication within target group. */ readonly adRuleTargetGroupDefaultInternalPolicy: string; /** * - List of kinds associated with this filter. */ readonly adRuleTargetGroupFilterKindLists: string[]; /** * - A list of category key and list of values. */ readonly adRuleTargetGroupFilterParams: outputs.GetNetworkSecurityRuleAdRuleTargetGroupFilterParam[]; /** * - The type of the filter being used. */ readonly adRuleTargetGroupFilterType: string; /** * - Way to identify the object for which rule is applied. */ readonly adRuleTargetGroupPeerSpecificationType: string; readonly allowIpv6Traffic: boolean; readonly apiVersion: string; /** * - These rules govern what flows are allowed. Target group is a required attribute. Empty inboundAllowList will not anything into target group. Empty outboundAllowList will allow everything from target group. */ readonly appRuleAction: string; readonly appRuleInboundAllowLists: outputs.GetNetworkSecurityRuleAppRuleInboundAllowList[]; readonly appRuleOutboundAllowLists: outputs.GetNetworkSecurityRuleAppRuleOutboundAllowList[]; /** * - Default policy for communication within target group. */ readonly appRuleTargetGroupDefaultInternalPolicy: string; /** * - List of kinds associated with this filter. */ readonly appRuleTargetGroupFilterKindLists: string[]; /** * - A list of category key and list of values. */ readonly appRuleTargetGroupFilterParams: outputs.GetNetworkSecurityRuleAppRuleTargetGroupFilterParam[]; /** * - The type of the filter being used. */ readonly appRuleTargetGroupFilterType: string; /** * - Way to identify the object for which rule is applied. */ readonly appRuleTargetGroupPeerSpecificationType: string; /** * Categories for the network_security_rule. */ readonly categories: outputs.GetNetworkSecurityRuleCategory[]; /** * A description for network_security_rule. */ readonly description: string; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; readonly isPolicyHitlogEnabled: boolean; /** * - These rules are used for environmental isolation. */ readonly isolationRuleAction: string; /** * - List of kinds associated with this filter. */ readonly isolationRuleFirstEntityFilterKindLists: string[]; /** * - A list of category key and list of values. */ readonly isolationRuleFirstEntityFilterParams: outputs.GetNetworkSecurityRuleIsolationRuleFirstEntityFilterParam[]; /** * - The type of the filter being used. */ readonly isolationRuleFirstEntityFilterType: string; /** * - List of kinds associated with this filter. */ readonly isolationRuleSecondEntityFilterKindLists: string[]; /** * - A list of category key and list of values. */ readonly isolationRuleSecondEntityFilterParams: outputs.GetNetworkSecurityRuleIsolationRuleSecondEntityFilterParam[]; /** * - The type of the filter being used. */ readonly isolationRuleSecondEntityFilterType: string; readonly metadata: { [key: string]: string; }; /** * - the name. */ readonly name: string; /** * (Required) The ID for the rule you want to retrieve. */ readonly networkSecurityRuleId: string; /** * The reference to a user. */ readonly ownerReference: { [key: string]: string; }; /** * The reference to a project. */ readonly projectReference: { [key: string]: string; }; /** * These rules are used for quarantining suspected VMs. Target group is a required attribute. Empty inboundAllowList will not allow anything into target group. Empty outboundAllowList will allow everything from target group. */ readonly quarantineRuleAction: string; readonly quarantineRuleInboundAllowLists: outputs.GetNetworkSecurityRuleQuarantineRuleInboundAllowList[]; readonly quarantineRuleOutboundAllowLists: outputs.GetNetworkSecurityRuleQuarantineRuleOutboundAllowList[]; /** * - Default policy for communication within target group. */ readonly quarantineRuleTargetGroupDefaultInternalPolicy: string; /** * - List of kinds associated with this filter. */ readonly quarantineRuleTargetGroupFilterKindLists: string[]; /** * - A list of category key and list of values. */ readonly quarantineRuleTargetGroupFilterParams: outputs.GetNetworkSecurityRuleQuarantineRuleTargetGroupFilterParam[]; /** * - The type of the filter being used. */ readonly quarantineRuleTargetGroupFilterType: string; /** * - Way to identify the object for which rule is applied. */ readonly quarantineRuleTargetGroupPeerSpecificationType: string; } /** * Describes a Network security rule * * > NOTE: The use of networkSecurityRule is only applicable in AHV clusters and requires Microsegmentation to be enabled. This feature is a function of the Flow product and requires a Flow license. For more information on Flow and Microsegmentation please visit https://www.nutanix.com/products/flow * * ## Example Usage * * ### Isolate Development VMs From Production VMs And Get Its Information) * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const isolation = new nutanix.NetworkSecurityRule("isolation", { * name: "example-isolation-rule", * description: "Isolation Rule Example", * isolationRuleAction: "APPLY", * isolationRuleFirstEntityFilterKindLists: ["vm"], * isolationRuleFirstEntityFilterType: "CATEGORIES_MATCH_ALL", * isolationRuleFirstEntityFilterParams: [{ * name: "Environment", * values: ["Dev"], * }], * isolationRuleSecondEntityFilterKindLists: ["vm"], * isolationRuleSecondEntityFilterType: "CATEGORIES_MATCH_ALL", * isolationRuleSecondEntityFilterParams: [{ * name: "Environment", * values: ["Production"], * }], * }); * const test = nutanix.getNetworkSecurityRuleOutput({ * networkSecurityRuleId: isolation.id, * }); * ``` * */ export declare function getNetworkSecurityRuleOutput(args: GetNetworkSecurityRuleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getNetworkSecurityRule. */ export interface GetNetworkSecurityRuleOutputArgs { /** * Categories for the network_security_rule. */ categories?: pulumi.Input[] | undefined>; /** * Represents network security rule UUID */ networkSecurityRuleId: pulumi.Input; } //# sourceMappingURL=getNetworkSecurityRule.d.ts.map