@pulumi/azure-native
Version:
[](https://slack.pulumi.com) [](https://npmjs.com/package/@pulumi/azure-native) [;
exports.SecurityRule = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* Network security rule.
*
* Uses Azure REST API version 2024-05-01. In version 2.x of the Azure Native provider, it used API version 2023-02-01.
*
* Other available API versions: 2018-06-01, 2018-07-01, 2018-08-01, 2018-10-01, 2018-11-01, 2018-12-01, 2019-02-01, 2019-04-01, 2019-06-01, 2019-07-01, 2019-08-01, 2019-09-01, 2019-11-01, 2019-12-01, 2020-03-01, 2020-04-01, 2020-05-01, 2020-06-01, 2020-07-01, 2020-08-01, 2020-11-01, 2021-02-01, 2021-03-01, 2021-05-01, 2021-08-01, 2022-01-01, 2022-05-01, 2022-07-01, 2022-09-01, 2022-11-01, 2023-02-01, 2023-04-01, 2023-05-01, 2023-06-01, 2023-09-01, 2023-11-01, 2024-01-01, 2024-03-01, 2024-07-01. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native network [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
*/
class SecurityRule extends pulumi.CustomResource {
/**
* Get an existing SecurityRule 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 opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, opts) {
return new SecurityRule(name, undefined, Object.assign(Object.assign({}, opts), { id: id }));
}
/**
* Returns true if the given object is an instance of SecurityRule. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === SecurityRule.__pulumiType;
}
/**
* Create a SecurityRule 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, args, opts) {
let resourceInputs = {};
opts = opts || {};
if (!opts.id) {
if ((!args || args.access === undefined) && !opts.urn) {
throw new Error("Missing required property 'access'");
}
if ((!args || args.direction === undefined) && !opts.urn) {
throw new Error("Missing required property 'direction'");
}
if ((!args || args.networkSecurityGroupName === undefined) && !opts.urn) {
throw new Error("Missing required property 'networkSecurityGroupName'");
}
if ((!args || args.priority === undefined) && !opts.urn) {
throw new Error("Missing required property 'priority'");
}
if ((!args || args.protocol === undefined) && !opts.urn) {
throw new Error("Missing required property 'protocol'");
}
if ((!args || args.resourceGroupName === undefined) && !opts.urn) {
throw new Error("Missing required property 'resourceGroupName'");
}
resourceInputs["access"] = args ? args.access : undefined;
resourceInputs["description"] = args ? args.description : undefined;
resourceInputs["destinationAddressPrefix"] = args ? args.destinationAddressPrefix : undefined;
resourceInputs["destinationAddressPrefixes"] = args ? args.destinationAddressPrefixes : undefined;
resourceInputs["destinationApplicationSecurityGroups"] = args ? args.destinationApplicationSecurityGroups : undefined;
resourceInputs["destinationPortRange"] = args ? args.destinationPortRange : undefined;
resourceInputs["destinationPortRanges"] = args ? args.destinationPortRanges : undefined;
resourceInputs["direction"] = args ? args.direction : undefined;
resourceInputs["id"] = args ? args.id : undefined;
resourceInputs["name"] = args ? args.name : undefined;
resourceInputs["networkSecurityGroupName"] = args ? args.networkSecurityGroupName : undefined;
resourceInputs["priority"] = args ? args.priority : undefined;
resourceInputs["protocol"] = args ? args.protocol : undefined;
resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined;
resourceInputs["securityRuleName"] = args ? args.securityRuleName : undefined;
resourceInputs["sourceAddressPrefix"] = args ? args.sourceAddressPrefix : undefined;
resourceInputs["sourceAddressPrefixes"] = args ? args.sourceAddressPrefixes : undefined;
resourceInputs["sourceApplicationSecurityGroups"] = args ? args.sourceApplicationSecurityGroups : undefined;
resourceInputs["sourcePortRange"] = args ? args.sourcePortRange : undefined;
resourceInputs["sourcePortRanges"] = args ? args.sourcePortRanges : undefined;
resourceInputs["type"] = args ? args.type : undefined;
resourceInputs["azureApiVersion"] = undefined /*out*/;
resourceInputs["etag"] = undefined /*out*/;
resourceInputs["provisioningState"] = undefined /*out*/;
}
else {
resourceInputs["access"] = undefined /*out*/;
resourceInputs["azureApiVersion"] = undefined /*out*/;
resourceInputs["description"] = undefined /*out*/;
resourceInputs["destinationAddressPrefix"] = undefined /*out*/;
resourceInputs["destinationAddressPrefixes"] = undefined /*out*/;
resourceInputs["destinationApplicationSecurityGroups"] = undefined /*out*/;
resourceInputs["destinationPortRange"] = undefined /*out*/;
resourceInputs["destinationPortRanges"] = undefined /*out*/;
resourceInputs["direction"] = undefined /*out*/;
resourceInputs["etag"] = undefined /*out*/;
resourceInputs["name"] = undefined /*out*/;
resourceInputs["priority"] = undefined /*out*/;
resourceInputs["protocol"] = undefined /*out*/;
resourceInputs["provisioningState"] = undefined /*out*/;
resourceInputs["sourceAddressPrefix"] = undefined /*out*/;
resourceInputs["sourceAddressPrefixes"] = undefined /*out*/;
resourceInputs["sourceApplicationSecurityGroups"] = undefined /*out*/;
resourceInputs["sourcePortRange"] = undefined /*out*/;
resourceInputs["sourcePortRanges"] = undefined /*out*/;
resourceInputs["type"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
const aliasOpts = { aliases: [{ type: "azure-native:network/v20150501preview:SecurityRule" }, { type: "azure-native:network/v20150615:SecurityRule" }, { type: "azure-native:network/v20160330:SecurityRule" }, { type: "azure-native:network/v20160601:SecurityRule" }, { type: "azure-native:network/v20160901:SecurityRule" }, { type: "azure-native:network/v20161201:SecurityRule" }, { type: "azure-native:network/v20170301:SecurityRule" }, { type: "azure-native:network/v20170601:SecurityRule" }, { type: "azure-native:network/v20170801:SecurityRule" }, { type: "azure-native:network/v20170901:SecurityRule" }, { type: "azure-native:network/v20171001:SecurityRule" }, { type: "azure-native:network/v20171101:SecurityRule" }, { type: "azure-native:network/v20180101:SecurityRule" }, { type: "azure-native:network/v20180201:SecurityRule" }, { type: "azure-native:network/v20180401:SecurityRule" }, { type: "azure-native:network/v20180601:SecurityRule" }, { type: "azure-native:network/v20180701:SecurityRule" }, { type: "azure-native:network/v20180801:SecurityRule" }, { type: "azure-native:network/v20181001:SecurityRule" }, { type: "azure-native:network/v20181101:SecurityRule" }, { type: "azure-native:network/v20181201:SecurityRule" }, { type: "azure-native:network/v20190201:SecurityRule" }, { type: "azure-native:network/v20190401:SecurityRule" }, { type: "azure-native:network/v20190601:SecurityRule" }, { type: "azure-native:network/v20190701:SecurityRule" }, { type: "azure-native:network/v20190801:SecurityRule" }, { type: "azure-native:network/v20190901:SecurityRule" }, { type: "azure-native:network/v20191101:SecurityRule" }, { type: "azure-native:network/v20191201:SecurityRule" }, { type: "azure-native:network/v20200301:SecurityRule" }, { type: "azure-native:network/v20200401:SecurityRule" }, { type: "azure-native:network/v20200501:SecurityRule" }, { type: "azure-native:network/v20200601:SecurityRule" }, { type: "azure-native:network/v20200701:SecurityRule" }, { type: "azure-native:network/v20200801:SecurityRule" }, { type: "azure-native:network/v20201101:SecurityRule" }, { type: "azure-native:network/v20210201:SecurityRule" }, { type: "azure-native:network/v20210301:SecurityRule" }, { type: "azure-native:network/v20210501:SecurityRule" }, { type: "azure-native:network/v20210801:SecurityRule" }, { type: "azure-native:network/v20220101:SecurityRule" }, { type: "azure-native:network/v20220501:SecurityRule" }, { type: "azure-native:network/v20220701:SecurityRule" }, { type: "azure-native:network/v20220901:SecurityRule" }, { type: "azure-native:network/v20221101:SecurityRule" }, { type: "azure-native:network/v20230201:SecurityRule" }, { type: "azure-native:network/v20230401:SecurityRule" }, { type: "azure-native:network/v20230501:SecurityRule" }, { type: "azure-native:network/v20230601:SecurityRule" }, { type: "azure-native:network/v20230901:SecurityRule" }, { type: "azure-native:network/v20231101:SecurityRule" }, { type: "azure-native:network/v20240101:SecurityRule" }, { type: "azure-native:network/v20240301:SecurityRule" }, { type: "azure-native:network/v20240501:SecurityRule" }, { type: "azure-native:network/v20240701:SecurityRule" }] };
opts = pulumi.mergeOptions(opts, aliasOpts);
super(SecurityRule.__pulumiType, name, resourceInputs, opts);
}
}
exports.SecurityRule = SecurityRule;
/** @internal */
SecurityRule.__pulumiType = 'azure-native:network:SecurityRule';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHlSdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbmV0d29yay9zZWN1cml0eVJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNFQUFzRTtBQUN0RSxpRkFBaUY7OztBQUVqRix5Q0FBeUM7QUFJekMsMENBQTBDO0FBRTFDOzs7Ozs7R0FNRztBQUNILE1BQWEsWUFBYSxTQUFRLE1BQU0sQ0FBQyxjQUFjO0lBQ25EOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUEyQixFQUFFLElBQW1DO1FBQzVGLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQWdCLGtDQUFPLElBQUksS0FBRSxFQUFFLEVBQUUsRUFBRSxJQUFHLENBQUM7SUFDekUsQ0FBQztJQUtEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUTtRQUM3QixJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUNuQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxZQUFZLENBQUM7SUFDN0QsQ0FBQztJQW1GRDs7Ozs7O09BTUc7SUFDSCxZQUFZLElBQVksRUFBRSxJQUFzQixFQUFFLElBQW1DO1FBQ2pGLElBQUksY0FBYyxHQUFrQixFQUFFLENBQUM7UUFDdkMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQzthQUN6RDtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksSUFB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QUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsNkNBQTZDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw2Q0FBNkMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0bUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7QUEzTEwsb0NBNExDO0FBL0tHLGdCQUFnQjtBQUNPLHlCQUFZLEdBQUcsbUNBQW1DLENBQUMifQ==