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