@pulumi/linode 4.9.0-alpha.1700200497 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/output.d.ts CHANGED
@@ -738,6 +738,15 @@ export interface GetInstanceNetworkingIpv4Private {
738
738
  * The type of address this is.
739
739
  */
740
740
  type: string;
741
+ vpcNat11: outputs.GetInstanceNetworkingIpv4PrivateVpcNat11;
742
+ }
743
+ export interface GetInstanceNetworkingIpv4PrivateVpcNat11 {
744
+ /**
745
+ * The address.
746
+ */
747
+ address: string;
748
+ subnetId: number;
749
+ vpcId: number;
741
750
  }
742
751
  export interface GetInstanceNetworkingIpv4Public {
743
752
  /**
@@ -776,6 +785,15 @@ export interface GetInstanceNetworkingIpv4Public {
776
785
  * The type of address this is.
777
786
  */
778
787
  type: string;
788
+ vpcNat11: outputs.GetInstanceNetworkingIpv4PublicVpcNat11;
789
+ }
790
+ export interface GetInstanceNetworkingIpv4PublicVpcNat11 {
791
+ /**
792
+ * The address.
793
+ */
794
+ address: string;
795
+ subnetId: number;
796
+ vpcId: number;
779
797
  }
780
798
  export interface GetInstanceNetworkingIpv4Reserved {
781
799
  /**
@@ -814,6 +832,15 @@ export interface GetInstanceNetworkingIpv4Reserved {
814
832
  * The type of address this is.
815
833
  */
816
834
  type: string;
835
+ vpcNat11: outputs.GetInstanceNetworkingIpv4ReservedVpcNat11;
836
+ }
837
+ export interface GetInstanceNetworkingIpv4ReservedVpcNat11 {
838
+ /**
839
+ * The address.
840
+ */
841
+ address: string;
842
+ subnetId: number;
843
+ vpcId: number;
817
844
  }
818
845
  export interface GetInstanceNetworkingIpv4Shared {
819
846
  /**
@@ -852,6 +879,15 @@ export interface GetInstanceNetworkingIpv4Shared {
852
879
  * The type of address this is.
853
880
  */
854
881
  type: string;
882
+ vpcNat11: outputs.GetInstanceNetworkingIpv4SharedVpcNat11;
883
+ }
884
+ export interface GetInstanceNetworkingIpv4SharedVpcNat11 {
885
+ /**
886
+ * The address.
887
+ */
888
+ address: string;
889
+ subnetId: number;
890
+ vpcId: number;
855
891
  }
856
892
  export interface GetInstanceNetworkingIpv6 {
857
893
  globals: outputs.GetInstanceNetworkingIpv6Global[];
@@ -913,6 +949,15 @@ export interface GetInstanceNetworkingIpv6LinkLocal {
913
949
  * The type of address this is.
914
950
  */
915
951
  type: string;
952
+ vpcNat11: outputs.GetInstanceNetworkingIpv6LinkLocalVpcNat11;
953
+ }
954
+ export interface GetInstanceNetworkingIpv6LinkLocalVpcNat11 {
955
+ /**
956
+ * The address.
957
+ */
958
+ address: string;
959
+ subnetId: number;
960
+ vpcId: number;
916
961
  }
917
962
  export interface GetInstanceNetworkingIpv6Slaac {
918
963
  /**
@@ -951,6 +996,15 @@ export interface GetInstanceNetworkingIpv6Slaac {
951
996
  * The type of address this is.
952
997
  */
953
998
  type: string;
999
+ vpcNat11: outputs.GetInstanceNetworkingIpv6SlaacVpcNat11;
1000
+ }
1001
+ export interface GetInstanceNetworkingIpv6SlaacVpcNat11 {
1002
+ /**
1003
+ * The address.
1004
+ */
1005
+ address: string;
1006
+ subnetId: number;
1007
+ vpcId: number;
954
1008
  }
955
1009
  export interface GetInstanceTypeAddons {
956
1010
  backups: outputs.GetInstanceTypeAddonsBackup[];
@@ -1089,6 +1143,9 @@ export interface GetInstancesInstance {
1089
1143
  * The display group of the Linode instance.
1090
1144
  */
1091
1145
  group: string;
1146
+ /**
1147
+ * Whether this Instance was created with user-data.
1148
+ */
1092
1149
  hasUserData: boolean;
1093
1150
  hostUuid: string;
1094
1151
  /**
@@ -1112,7 +1169,7 @@ export interface GetInstancesInstance {
1112
1169
  */
1113
1170
  ipv6: string;
1114
1171
  /**
1115
- * (Optional) The name of this interface. If the interface is a `vlan`, a label is required. Must be undefined for `public` purpose interfaces.
1172
+ * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
1116
1173
  */
1117
1174
  label: string;
1118
1175
  /**
@@ -1193,7 +1250,7 @@ export interface GetInstancesInstanceConfig {
1193
1250
  */
1194
1251
  kernel: string;
1195
1252
  /**
1196
- * (Optional) The name of this interface. If the interface is a `vlan`, a label is required. Must be undefined for `public` purpose interfaces.
1253
+ * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
1197
1254
  */
1198
1255
  label: string;
1199
1256
  /**
@@ -1358,18 +1415,53 @@ export interface GetInstancesInstanceConfigHelper {
1358
1415
  updatedbDisabled: boolean;
1359
1416
  }
1360
1417
  export interface GetInstancesInstanceConfigInterface {
1418
+ active: boolean;
1419
+ /**
1420
+ * The ID of the disk in the Linode API.
1421
+ */
1422
+ id: number;
1361
1423
  /**
1362
- * (Optional) This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation.
1424
+ * IPv4 CIDR VPC Subnet ranges that are routed to this Interface. IPv6 ranges are also available to select participants in the Beta program.
1425
+ */
1426
+ ipRanges?: string[];
1427
+ /**
1428
+ * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation. (e.g. `10.0.0.1/24`) This field is only allowed for interfaces with the `vlan` purpose.
1363
1429
  */
1364
1430
  ipamAddress?: string;
1365
1431
  /**
1366
- * (Optional) The name of this interface. If the interface is a `vlan`, a label is required. Must be undefined for `public` purpose interfaces.
1432
+ * This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.
1433
+ */
1434
+ ipv4: outputs.GetInstancesInstanceConfigInterfaceIpv4;
1435
+ /**
1436
+ * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
1367
1437
  */
1368
1438
  label?: string;
1369
1439
  /**
1370
- * (Required) The type of interface. (`public`, `vlan`)
1440
+ * Whether the interface is the primary interface that should have the default route for this Linode. This field is only allowed for interfaces with the `public` or `vpc` purpose.
1441
+ */
1442
+ primary?: boolean;
1443
+ /**
1444
+ * The type of interface. (`public`, `vlan`, `vpc`)
1445
+ */
1446
+ purpose: string;
1447
+ /**
1448
+ * The name of the VPC Subnet to join. This field is only allowed and required for interfaces with the `vpc` purpose.
1449
+ */
1450
+ subnetId?: number;
1451
+ /**
1452
+ * The ID of VPC which this interface is attached to.
1371
1453
  */
1372
- purpose?: string;
1454
+ vpcId: number;
1455
+ }
1456
+ export interface GetInstancesInstanceConfigInterfaceIpv4 {
1457
+ /**
1458
+ * The public IP that will be used for the one-to-one NAT purpose. If this is `any`, the public IPv4 address assigned to this Linode is used on this interface and will be 1:1 NATted with the VPC IPv4 address.
1459
+ */
1460
+ nat11: string;
1461
+ /**
1462
+ * The IP from the VPC subnet to use for this interface. A random address will be assigned if this is not specified in a VPC interface.
1463
+ */
1464
+ vpc: string;
1373
1465
  }
1374
1466
  export interface GetInstancesInstanceDisk {
1375
1467
  /**
@@ -1381,7 +1473,7 @@ export interface GetInstancesInstanceDisk {
1381
1473
  */
1382
1474
  id: number;
1383
1475
  /**
1384
- * (Optional) The name of this interface. If the interface is a `vlan`, a label is required. Must be undefined for `public` purpose interfaces.
1476
+ * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
1385
1477
  */
1386
1478
  label: string;
1387
1479
  /**
@@ -2304,6 +2396,114 @@ export interface GetVolumesVolume {
2304
2396
  */
2305
2397
  updated: string;
2306
2398
  }
2399
+ export interface GetVpcSubnetLinode {
2400
+ /**
2401
+ * The unique id of this VPC subnet.
2402
+ */
2403
+ id: number;
2404
+ interfaces: outputs.GetVpcSubnetLinodeInterface[];
2405
+ }
2406
+ export interface GetVpcSubnetLinodeInterface {
2407
+ active: boolean;
2408
+ /**
2409
+ * The unique id of this VPC subnet.
2410
+ */
2411
+ id: number;
2412
+ }
2413
+ export interface GetVpcSubnetsFilter {
2414
+ /**
2415
+ * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
2416
+ */
2417
+ matchBy?: string;
2418
+ /**
2419
+ * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
2420
+ */
2421
+ name: string;
2422
+ /**
2423
+ * A list of values for the filter to allow. These values should all be in string form.
2424
+ */
2425
+ values: string[];
2426
+ }
2427
+ export interface GetVpcSubnetsVpcSubnet {
2428
+ /**
2429
+ * The date and time when the VPC Subnet was created.
2430
+ */
2431
+ created: string;
2432
+ /**
2433
+ * The unique id of the VPC subnet.
2434
+ */
2435
+ id: number;
2436
+ /**
2437
+ * The IPv4 range of this subnet in CIDR format.
2438
+ */
2439
+ ipv4: string;
2440
+ /**
2441
+ * The label of the VPC subnet.
2442
+ */
2443
+ label: string;
2444
+ /**
2445
+ * A list of Linode IDs that added to this subnet.
2446
+ */
2447
+ linodes: outputs.GetVpcSubnetsVpcSubnetLinode[];
2448
+ /**
2449
+ * The date and time when the VPC Subnet was last updated.
2450
+ */
2451
+ updated: string;
2452
+ }
2453
+ export interface GetVpcSubnetsVpcSubnetLinode {
2454
+ /**
2455
+ * The unique id of the VPC subnet.
2456
+ */
2457
+ id: number;
2458
+ interfaces: outputs.GetVpcSubnetsVpcSubnetLinodeInterface[];
2459
+ }
2460
+ export interface GetVpcSubnetsVpcSubnetLinodeInterface {
2461
+ active: boolean;
2462
+ /**
2463
+ * The unique id of the VPC subnet.
2464
+ */
2465
+ id: number;
2466
+ }
2467
+ export interface GetVpcsFilter {
2468
+ /**
2469
+ * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
2470
+ */
2471
+ matchBy?: string;
2472
+ /**
2473
+ * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
2474
+ */
2475
+ name: string;
2476
+ /**
2477
+ * A list of values for the filter to allow. These values should all be in string form.
2478
+ */
2479
+ values: string[];
2480
+ }
2481
+ export interface GetVpcsVpc {
2482
+ /**
2483
+ * The date and time when the VPC was created.
2484
+ */
2485
+ created: string;
2486
+ /**
2487
+ * The user-defined description of this VPC.
2488
+ */
2489
+ description: string;
2490
+ /**
2491
+ * The unique id of this VPC.
2492
+ */
2493
+ id: number;
2494
+ /**
2495
+ * The label of the VPC.
2496
+ */
2497
+ label: string;
2498
+ /**
2499
+ * The region where the VPC is deployed.
2500
+ */
2501
+ region: string;
2502
+ /**
2503
+ * The date and time when the VPC was last updated.
2504
+ */
2505
+ updated: string;
2506
+ }
2307
2507
  export interface InstanceAlerts {
2308
2508
  cpu: number;
2309
2509
  io: number;
@@ -2519,18 +2719,57 @@ export interface InstanceConfigHelpers {
2519
2719
  updatedbDisabled?: boolean;
2520
2720
  }
2521
2721
  export interface InstanceConfigInterface {
2722
+ active: boolean;
2723
+ /**
2724
+ * The ID of the disk in the Linode API.
2725
+ */
2726
+ id: number;
2522
2727
  /**
2523
- * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation.
2728
+ * IPv4 CIDR VPC Subnet ranges that are routed to this Interface. IPv6 ranges are also available to select participants in the Beta program.
2729
+ */
2730
+ ipRanges?: string[];
2731
+ /**
2732
+ * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation. (e.g. `10.0.0.1/24`) This field is only allowed for interfaces with the `vlan` purpose.
2524
2733
  */
2525
2734
  ipamAddress?: string;
2526
2735
  /**
2527
- * The name of this interface. If the interface is a VLAN, a label is required.
2736
+ * This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.
2737
+ */
2738
+ ipv4: outputs.InstanceConfigInterfaceIpv4;
2739
+ /**
2740
+ * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
2528
2741
  */
2529
2742
  label?: string;
2530
2743
  /**
2531
- * The type of interface. (`public`, `vlan`)
2744
+ * Whether the interface is the primary interface that should have the default route for this Linode. This field is only allowed for interfaces with the `public` or `vpc` purpose.
2745
+ *
2746
+ * * `ipv4` - (Optional) The IPv4 configuration of the VPC interface. This field is currently only allowed for interfaces with the `vpc` purpose.
2747
+ *
2748
+ * The following computed attribute is available in a VPC interface:
2749
+ */
2750
+ primary?: boolean;
2751
+ /**
2752
+ * The type of interface. (`public`, `vlan`, `vpc`)
2753
+ */
2754
+ purpose: string;
2755
+ /**
2756
+ * The name of the VPC Subnet to join. This field is only allowed and required for interfaces with the `vpc` purpose.
2757
+ */
2758
+ subnetId?: number;
2759
+ /**
2760
+ * The ID of VPC which this interface is attached to.
2761
+ */
2762
+ vpcId: number;
2763
+ }
2764
+ export interface InstanceConfigInterfaceIpv4 {
2765
+ /**
2766
+ * The public IP that will be used for the one-to-one NAT purpose. If this is `any`, the public IPv4 address assigned to this Linode is used on this interface and will be 1:1 NATted with the VPC IPv4 address.
2767
+ */
2768
+ nat11: string;
2769
+ /**
2770
+ * The IP from the VPC subnet to use for this interface. A random address will be assigned if this is not specified in a VPC interface.
2532
2771
  */
2533
- purpose?: string;
2772
+ vpc: string;
2534
2773
  }
2535
2774
  export interface InstanceDisk {
2536
2775
  /**
@@ -2581,18 +2820,65 @@ export interface InstanceDisk {
2581
2820
  stackscriptId: number;
2582
2821
  }
2583
2822
  export interface InstanceInterface {
2823
+ active: boolean;
2584
2824
  /**
2585
- * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation.
2825
+ * The ID of the disk in the Linode API.
2826
+ */
2827
+ id: number;
2828
+ /**
2829
+ * IPv4 CIDR VPC Subnet ranges that are routed to this Interface. IPv6 ranges are also available to select participants in the Beta program.
2830
+ */
2831
+ ipRanges?: string[];
2832
+ /**
2833
+ * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation. (e.g. `10.0.0.1/24`) This field is only allowed for interfaces with the `vlan` purpose.
2586
2834
  */
2587
2835
  ipamAddress?: string;
2588
2836
  /**
2589
- * The name of this interface. If the interface is a VLAN, a label is required.
2837
+ * This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.
2838
+ */
2839
+ ipv4: outputs.InstanceInterfaceIpv4;
2840
+ /**
2841
+ * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
2590
2842
  */
2591
2843
  label?: string;
2592
2844
  /**
2593
- * The type of interface. (`public`, `vlan`)
2845
+ * Whether the interface is the primary interface that should have the default route for this Linode. This field is only allowed for interfaces with the `public` or `vpc` purpose.
2846
+ *
2847
+ * * `ipv4` - (Optional) The IPv4 configuration of the VPC interface. This field is currently only allowed for interfaces with the `vpc` purpose.
2848
+ *
2849
+ * The following computed attribute is available in a VPC interface:
2850
+ */
2851
+ primary?: boolean;
2852
+ /**
2853
+ * The type of interface. (`public`, `vlan`, `vpc`)
2854
+ */
2855
+ purpose: string;
2856
+ /**
2857
+ * The name of the VPC Subnet to join. This field is only allowed and required for interfaces with the `vpc` purpose.
2858
+ */
2859
+ subnetId?: number;
2860
+ /**
2861
+ * The ID of VPC which this interface is attached to.
2594
2862
  */
2595
- purpose?: string;
2863
+ vpcId: number;
2864
+ }
2865
+ export interface InstanceInterfaceIpv4 {
2866
+ /**
2867
+ * The public IP that will be used for the one-to-one NAT purpose. If this is `any`, the public IPv4 address assigned to this Linode is used on this interface and will be 1:1 NATted with the VPC IPv4 address.
2868
+ */
2869
+ nat11: string;
2870
+ /**
2871
+ * The IP from the VPC subnet to use for this interface. A random address will be assigned if this is not specified in a VPC interface.
2872
+ */
2873
+ vpc: string;
2874
+ }
2875
+ export interface InstanceIpVpcNat11 {
2876
+ /**
2877
+ * The resulting IPv4 address.
2878
+ */
2879
+ address: string;
2880
+ subnetId: number;
2881
+ vpcId: number;
2596
2882
  }
2597
2883
  export interface InstanceMetadata {
2598
2884
  userData?: string;
@@ -2815,3 +3101,17 @@ export interface UserVolumeGrant {
2815
3101
  id: number;
2816
3102
  permissions: string;
2817
3103
  }
3104
+ export interface VpcSubnetLinode {
3105
+ /**
3106
+ * The ID of the VPC Subnet.
3107
+ */
3108
+ id: number;
3109
+ interfaces: outputs.VpcSubnetLinodeInterface[];
3110
+ }
3111
+ export interface VpcSubnetLinodeInterface {
3112
+ active: boolean;
3113
+ /**
3114
+ * The ID of the VPC Subnet.
3115
+ */
3116
+ id: number;
3117
+ }
package/vpc.d.ts ADDED
@@ -0,0 +1,108 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Manages a Linode VPC.
4
+ *
5
+ * Please refer to linode.VpcSubnet to manage the subnets under a Linode VPC.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * Create a VPC:
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as linode from "@pulumi/linode";
14
+ *
15
+ * const test = new linode.Vpc("test", {
16
+ * description: "My first VPC.",
17
+ * label: "test-vpc",
18
+ * region: "us-east",
19
+ * });
20
+ * ```
21
+ */
22
+ export declare class Vpc extends pulumi.CustomResource {
23
+ /**
24
+ * Get an existing Vpc resource's state with the given name, ID, and optional extra
25
+ * properties used to qualify the lookup.
26
+ *
27
+ * @param name The _unique_ name of the resulting resource.
28
+ * @param id The _unique_ provider ID of the resource to lookup.
29
+ * @param state Any extra arguments used during the lookup.
30
+ * @param opts Optional settings to control the behavior of the CustomResource.
31
+ */
32
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: VpcState, opts?: pulumi.CustomResourceOptions): Vpc;
33
+ /**
34
+ * Returns true if the given object is an instance of Vpc. This is designed to work even
35
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
36
+ */
37
+ static isInstance(obj: any): obj is Vpc;
38
+ /**
39
+ * The date and time when the VPC was created.
40
+ */
41
+ readonly created: pulumi.Output<string>;
42
+ /**
43
+ * The user-defined description of this VPC.
44
+ */
45
+ readonly description: pulumi.Output<string>;
46
+ /**
47
+ * The label of the VPC. This field can only contain ASCII letters, digits and dashes.
48
+ */
49
+ readonly label: pulumi.Output<string>;
50
+ /**
51
+ * The region of the VPC.
52
+ */
53
+ readonly region: pulumi.Output<string>;
54
+ /**
55
+ * The date and time when the VPC was last updated.
56
+ */
57
+ readonly updated: pulumi.Output<string>;
58
+ /**
59
+ * Create a Vpc resource with the given unique name, arguments, and options.
60
+ *
61
+ * @param name The _unique_ name of the resource.
62
+ * @param args The arguments to use to populate this resource's properties.
63
+ * @param opts A bag of options that control this resource's behavior.
64
+ */
65
+ constructor(name: string, args: VpcArgs, opts?: pulumi.CustomResourceOptions);
66
+ }
67
+ /**
68
+ * Input properties used for looking up and filtering Vpc resources.
69
+ */
70
+ export interface VpcState {
71
+ /**
72
+ * The date and time when the VPC was created.
73
+ */
74
+ created?: pulumi.Input<string>;
75
+ /**
76
+ * The user-defined description of this VPC.
77
+ */
78
+ description?: pulumi.Input<string>;
79
+ /**
80
+ * The label of the VPC. This field can only contain ASCII letters, digits and dashes.
81
+ */
82
+ label?: pulumi.Input<string>;
83
+ /**
84
+ * The region of the VPC.
85
+ */
86
+ region?: pulumi.Input<string>;
87
+ /**
88
+ * The date and time when the VPC was last updated.
89
+ */
90
+ updated?: pulumi.Input<string>;
91
+ }
92
+ /**
93
+ * The set of arguments for constructing a Vpc resource.
94
+ */
95
+ export interface VpcArgs {
96
+ /**
97
+ * The user-defined description of this VPC.
98
+ */
99
+ description?: pulumi.Input<string>;
100
+ /**
101
+ * The label of the VPC. This field can only contain ASCII letters, digits and dashes.
102
+ */
103
+ label: pulumi.Input<string>;
104
+ /**
105
+ * The region of the VPC.
106
+ */
107
+ region: pulumi.Input<string>;
108
+ }
package/vpc.js ADDED
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Vpc = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * Manages a Linode VPC.
10
+ *
11
+ * Please refer to linode.VpcSubnet to manage the subnets under a Linode VPC.
12
+ *
13
+ * ## Example Usage
14
+ *
15
+ * Create a VPC:
16
+ *
17
+ * ```typescript
18
+ * import * as pulumi from "@pulumi/pulumi";
19
+ * import * as linode from "@pulumi/linode";
20
+ *
21
+ * const test = new linode.Vpc("test", {
22
+ * description: "My first VPC.",
23
+ * label: "test-vpc",
24
+ * region: "us-east",
25
+ * });
26
+ * ```
27
+ */
28
+ class Vpc extends pulumi.CustomResource {
29
+ /**
30
+ * Get an existing Vpc resource's state with the given name, ID, and optional extra
31
+ * properties used to qualify the lookup.
32
+ *
33
+ * @param name The _unique_ name of the resulting resource.
34
+ * @param id The _unique_ provider ID of the resource to lookup.
35
+ * @param state Any extra arguments used during the lookup.
36
+ * @param opts Optional settings to control the behavior of the CustomResource.
37
+ */
38
+ static get(name, id, state, opts) {
39
+ return new Vpc(name, state, Object.assign(Object.assign({}, opts), { id: id }));
40
+ }
41
+ /**
42
+ * Returns true if the given object is an instance of Vpc. This is designed to work even
43
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
44
+ */
45
+ static isInstance(obj) {
46
+ if (obj === undefined || obj === null) {
47
+ return false;
48
+ }
49
+ return obj['__pulumiType'] === Vpc.__pulumiType;
50
+ }
51
+ constructor(name, argsOrState, opts) {
52
+ let resourceInputs = {};
53
+ opts = opts || {};
54
+ if (opts.id) {
55
+ const state = argsOrState;
56
+ resourceInputs["created"] = state ? state.created : undefined;
57
+ resourceInputs["description"] = state ? state.description : undefined;
58
+ resourceInputs["label"] = state ? state.label : undefined;
59
+ resourceInputs["region"] = state ? state.region : undefined;
60
+ resourceInputs["updated"] = state ? state.updated : undefined;
61
+ }
62
+ else {
63
+ const args = argsOrState;
64
+ if ((!args || args.label === undefined) && !opts.urn) {
65
+ throw new Error("Missing required property 'label'");
66
+ }
67
+ if ((!args || args.region === undefined) && !opts.urn) {
68
+ throw new Error("Missing required property 'region'");
69
+ }
70
+ resourceInputs["description"] = args ? args.description : undefined;
71
+ resourceInputs["label"] = args ? args.label : undefined;
72
+ resourceInputs["region"] = args ? args.region : undefined;
73
+ resourceInputs["created"] = undefined /*out*/;
74
+ resourceInputs["updated"] = undefined /*out*/;
75
+ }
76
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
77
+ super(Vpc.__pulumiType, name, resourceInputs, opts);
78
+ }
79
+ }
80
+ exports.Vpc = Vpc;
81
+ /** @internal */
82
+ Vpc.__pulumiType = 'linode:index/vpc:Vpc';
83
+ //# sourceMappingURL=vpc.js.map
package/vpc.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vpc.js","sourceRoot":"","sources":["../vpc.ts"],"names":[],"mappings":"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"}