@pulumi/sdwan
Version:
A Pulumi package for managing resources on Cisco Catalyst SD-WAN.. Based on terraform-provider-sdwan: version v0.4.1
300 lines • 12.2 kB
JavaScript
"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.CiscoVpnFeatureTemplate = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("./utilities");
/**
* This resource can manage a Cisco VPN feature template.
* - Minimum SD-WAN Manager version: `15.0.0`
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as sdwan from "@pulumi/sdwan";
*
* const example = new sdwan.CiscoVpnFeatureTemplate("example", {
* name: "Example",
* description: "My Example",
* deviceTypes: ["vedge-C8000V"],
* vpnId: 1,
* vpnName: "VPN1",
* tenantVpnId: 1,
* organizationName: "org1",
* ompAdminDistanceIpv4: 10,
* ompAdminDistanceIpv6: 10,
* enhanceEcmpKeying: true,
* dnsIpv4Servers: [{
* address: "9.9.9.9",
* role: "primary",
* }],
* dnsIpv6Servers: [{
* address: "2001::9",
* role: "primary",
* }],
* dnsHosts: [{
* hostname: "abc1",
* ip: ["7.7.7.7"],
* }],
* services: [{
* serviceTypes: "FW",
* address: ["8.8.8.8"],
* "interface": "e1",
* trackEnable: true,
* }],
* ipv4StaticServiceRoutes: [{
* prefix: "2.2.2.0/24",
* vpnId: 2,
* service: "sig",
* }],
* ipv4StaticRoutes: [{
* prefix: "3.3.3.0/24",
* null0: false,
* distance: 10,
* vpnId: 5,
* dhcp: false,
* nextHops: [{
* address: "11.1.1.1",
* distance: 20,
* }],
* trackNextHops: [{
* address: "12.1.1.1",
* distance: 20,
* tracker: "tracker1",
* }],
* }],
* ipv6StaticRoutes: [{
* prefix: "2001::/48",
* null0: false,
* vpnId: 5,
* nat: "NAT64",
* nextHops: [{
* address: "2001::11",
* distance: 20,
* }],
* }],
* ipv4StaticGreRoutes: [{
* prefix: "3.3.3.0/24",
* vpnId: 2,
* interfaces: ["e1"],
* }],
* ipv4StaticIpsecRoutes: [{
* prefix: "4.4.4.0/24",
* vpnId: 2,
* interfaces: ["e1"],
* }],
* ompAdvertiseIpv4Routes: [{
* protocol: "bgp",
* routePolicy: "rp1",
* protocolSubType: ["external"],
* prefixes: [{
* prefixEntry: "1.1.1.0/24",
* aggregateOnly: true,
* }],
* }],
* ompAdvertiseIpv6Routes: [{
* protocol: "bgp",
* routePolicy: "rp1",
* protocolSubType: ["external"],
* prefixes: [{
* prefixEntry: "2001:2::/48",
* aggregateOnly: true,
* }],
* }],
* nat64Pools: [{
* name: "POOL1",
* startAddress: "100.1.1.1",
* endAddress: "100.1.2.255",
* overload: true,
* leakFromGlobal: true,
* leakFromGlobalProtocol: "rip",
* leakToGlobal: true,
* }],
* natPools: [{
* name: 1,
* prefixLength: 24,
* rangeStart: "101.1.1.1",
* rangeEnd: "101.1.2.255",
* overload: true,
* direction: "inside",
* trackerId: 10,
* }],
* staticNatRules: [{
* poolName: 1,
* sourceIp: "10.1.1.1",
* translateIp: "105.1.1.1",
* staticNatDirection: "inside",
* trackerId: 10,
* }],
* staticNatSubnetRules: [{
* sourceIpSubnet: "10.2.1.0",
* translateIpSubnet: "105.2.1.0",
* prefixLength: 24,
* staticNatDirection: "inside",
* trackerId: 10,
* }],
* portForwardRules: [{
* poolName: 1,
* sourcePort: 5000,
* translatePort: 6000,
* sourceIp: "10.3.1.1",
* translateIp: "120.3.1.1",
* protocol: "tcp",
* }],
* routeGlobalImports: [{
* protocol: "ospf",
* protocolSubType: ["external"],
* routePolicy: "policy1",
* redistributes: [{
* protocol: "bgp",
* routePolicy: "policy1",
* }],
* }],
* routeVpnImports: [{
* sourceVpnId: 5,
* protocol: "ospf",
* protocolSubType: ["external"],
* routePolicy: "policy1",
* redistributes: [{
* protocol: "bgp",
* routePolicy: "policy1",
* }],
* }],
* routeGlobalExports: [{
* protocol: "ospf",
* protocolSubType: ["external"],
* routePolicy: "policy1",
* redistributes: [{
* protocol: "bgp",
* routePolicy: "policy1",
* }],
* }],
* });
* ```
*
* ## Import
*
* The `pulumi import` command can be used, for example:
*
* ```sh
* $ pulumi import sdwan:index/ciscoVpnFeatureTemplate:CiscoVpnFeatureTemplate example "f6b2c44c-693c-4763-b010-895aa3d236bd"
* ```
*/
class CiscoVpnFeatureTemplate extends pulumi.CustomResource {
/**
* Get an existing CiscoVpnFeatureTemplate 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, id, state, opts) {
return new CiscoVpnFeatureTemplate(name, state, { ...opts, id: id });
}
/**
* Returns true if the given object is an instance of CiscoVpnFeatureTemplate. 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'] === CiscoVpnFeatureTemplate.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["description"] = state?.description;
resourceInputs["deviceTypes"] = state?.deviceTypes;
resourceInputs["dnsHosts"] = state?.dnsHosts;
resourceInputs["dnsIpv4Servers"] = state?.dnsIpv4Servers;
resourceInputs["dnsIpv6Servers"] = state?.dnsIpv6Servers;
resourceInputs["enhanceEcmpKeying"] = state?.enhanceEcmpKeying;
resourceInputs["enhanceEcmpKeyingVariable"] = state?.enhanceEcmpKeyingVariable;
resourceInputs["ipv4StaticGreRoutes"] = state?.ipv4StaticGreRoutes;
resourceInputs["ipv4StaticIpsecRoutes"] = state?.ipv4StaticIpsecRoutes;
resourceInputs["ipv4StaticRoutes"] = state?.ipv4StaticRoutes;
resourceInputs["ipv4StaticServiceRoutes"] = state?.ipv4StaticServiceRoutes;
resourceInputs["ipv6StaticRoutes"] = state?.ipv6StaticRoutes;
resourceInputs["name"] = state?.name;
resourceInputs["nat64Pools"] = state?.nat64Pools;
resourceInputs["natPools"] = state?.natPools;
resourceInputs["ompAdminDistanceIpv4"] = state?.ompAdminDistanceIpv4;
resourceInputs["ompAdminDistanceIpv4Variable"] = state?.ompAdminDistanceIpv4Variable;
resourceInputs["ompAdminDistanceIpv6"] = state?.ompAdminDistanceIpv6;
resourceInputs["ompAdminDistanceIpv6Variable"] = state?.ompAdminDistanceIpv6Variable;
resourceInputs["ompAdvertiseIpv4Routes"] = state?.ompAdvertiseIpv4Routes;
resourceInputs["ompAdvertiseIpv6Routes"] = state?.ompAdvertiseIpv6Routes;
resourceInputs["organizationName"] = state?.organizationName;
resourceInputs["portForwardRules"] = state?.portForwardRules;
resourceInputs["routeGlobalExports"] = state?.routeGlobalExports;
resourceInputs["routeGlobalImports"] = state?.routeGlobalImports;
resourceInputs["routeVpnImports"] = state?.routeVpnImports;
resourceInputs["services"] = state?.services;
resourceInputs["staticNatRules"] = state?.staticNatRules;
resourceInputs["staticNatSubnetRules"] = state?.staticNatSubnetRules;
resourceInputs["templateType"] = state?.templateType;
resourceInputs["tenantVpnId"] = state?.tenantVpnId;
resourceInputs["version"] = state?.version;
resourceInputs["vpnId"] = state?.vpnId;
resourceInputs["vpnName"] = state?.vpnName;
resourceInputs["vpnNameVariable"] = state?.vpnNameVariable;
}
else {
const args = argsOrState;
if (args?.description === undefined && !opts.urn) {
throw new Error("Missing required property 'description'");
}
if (args?.deviceTypes === undefined && !opts.urn) {
throw new Error("Missing required property 'deviceTypes'");
}
resourceInputs["description"] = args?.description;
resourceInputs["deviceTypes"] = args?.deviceTypes;
resourceInputs["dnsHosts"] = args?.dnsHosts;
resourceInputs["dnsIpv4Servers"] = args?.dnsIpv4Servers;
resourceInputs["dnsIpv6Servers"] = args?.dnsIpv6Servers;
resourceInputs["enhanceEcmpKeying"] = args?.enhanceEcmpKeying;
resourceInputs["enhanceEcmpKeyingVariable"] = args?.enhanceEcmpKeyingVariable;
resourceInputs["ipv4StaticGreRoutes"] = args?.ipv4StaticGreRoutes;
resourceInputs["ipv4StaticIpsecRoutes"] = args?.ipv4StaticIpsecRoutes;
resourceInputs["ipv4StaticRoutes"] = args?.ipv4StaticRoutes;
resourceInputs["ipv4StaticServiceRoutes"] = args?.ipv4StaticServiceRoutes;
resourceInputs["ipv6StaticRoutes"] = args?.ipv6StaticRoutes;
resourceInputs["name"] = args?.name;
resourceInputs["nat64Pools"] = args?.nat64Pools;
resourceInputs["natPools"] = args?.natPools;
resourceInputs["ompAdminDistanceIpv4"] = args?.ompAdminDistanceIpv4;
resourceInputs["ompAdminDistanceIpv4Variable"] = args?.ompAdminDistanceIpv4Variable;
resourceInputs["ompAdminDistanceIpv6"] = args?.ompAdminDistanceIpv6;
resourceInputs["ompAdminDistanceIpv6Variable"] = args?.ompAdminDistanceIpv6Variable;
resourceInputs["ompAdvertiseIpv4Routes"] = args?.ompAdvertiseIpv4Routes;
resourceInputs["ompAdvertiseIpv6Routes"] = args?.ompAdvertiseIpv6Routes;
resourceInputs["organizationName"] = args?.organizationName;
resourceInputs["portForwardRules"] = args?.portForwardRules;
resourceInputs["routeGlobalExports"] = args?.routeGlobalExports;
resourceInputs["routeGlobalImports"] = args?.routeGlobalImports;
resourceInputs["routeVpnImports"] = args?.routeVpnImports;
resourceInputs["services"] = args?.services;
resourceInputs["staticNatRules"] = args?.staticNatRules;
resourceInputs["staticNatSubnetRules"] = args?.staticNatSubnetRules;
resourceInputs["tenantVpnId"] = args?.tenantVpnId;
resourceInputs["vpnId"] = args?.vpnId;
resourceInputs["vpnName"] = args?.vpnName;
resourceInputs["vpnNameVariable"] = args?.vpnNameVariable;
resourceInputs["templateType"] = undefined /*out*/;
resourceInputs["version"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(CiscoVpnFeatureTemplate.__pulumiType, name, resourceInputs, opts);
}
}
exports.CiscoVpnFeatureTemplate = CiscoVpnFeatureTemplate;
/** @internal */
CiscoVpnFeatureTemplate.__pulumiType = 'sdwan:index/ciscoVpnFeatureTemplate:CiscoVpnFeatureTemplate';
//# sourceMappingURL=ciscoVpnFeatureTemplate.js.map