@pulumi/tailscale 0.5.1-alpha.1643837129 → 0.6.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/config/index.js CHANGED
@@ -3,7 +3,11 @@
3
3
  // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
5
  if (k2 === undefined) k2 = k;
6
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
7
11
  }) : (function(o, m, k, k2) {
8
12
  if (k2 === undefined) k2 = k;
9
13
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;;;;;;;;;;AAEjF,kBAAkB;AAClB,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;;;;;;;;;;;;;;AAEjF,kBAAkB;AAClB,yCAAuB"}
@@ -0,0 +1,64 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * The deviceTags resource is used to apply tags to a device within a Tailnet. For more information on ACL tags, see
4
+ * the [ACL tags documentation](https://tailscale.com/kb/1068/acl-tags/) for more details.
5
+ */
6
+ export declare class DeviceTags extends pulumi.CustomResource {
7
+ /**
8
+ * Get an existing DeviceTags resource's state with the given name, ID, and optional extra
9
+ * properties used to qualify the lookup.
10
+ *
11
+ * @param name The _unique_ name of the resulting resource.
12
+ * @param id The _unique_ provider ID of the resource to lookup.
13
+ * @param state Any extra arguments used during the lookup.
14
+ * @param opts Optional settings to control the behavior of the CustomResource.
15
+ */
16
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DeviceTagsState, opts?: pulumi.CustomResourceOptions): DeviceTags;
17
+ /**
18
+ * Returns true if the given object is an instance of DeviceTags. This is designed to work even
19
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
20
+ */
21
+ static isInstance(obj: any): obj is DeviceTags;
22
+ /**
23
+ * The device to apply tags to.
24
+ */
25
+ readonly deviceId: pulumi.Output<string>;
26
+ /**
27
+ * The tags to apply to the device.
28
+ */
29
+ readonly tags: pulumi.Output<string[]>;
30
+ /**
31
+ * Create a DeviceTags resource with the given unique name, arguments, and options.
32
+ *
33
+ * @param name The _unique_ name of the resource.
34
+ * @param args The arguments to use to populate this resource's properties.
35
+ * @param opts A bag of options that control this resource's behavior.
36
+ */
37
+ constructor(name: string, args: DeviceTagsArgs, opts?: pulumi.CustomResourceOptions);
38
+ }
39
+ /**
40
+ * Input properties used for looking up and filtering DeviceTags resources.
41
+ */
42
+ export interface DeviceTagsState {
43
+ /**
44
+ * The device to apply tags to.
45
+ */
46
+ deviceId?: pulumi.Input<string>;
47
+ /**
48
+ * The tags to apply to the device.
49
+ */
50
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
51
+ }
52
+ /**
53
+ * The set of arguments for constructing a DeviceTags resource.
54
+ */
55
+ export interface DeviceTagsArgs {
56
+ /**
57
+ * The device to apply tags to.
58
+ */
59
+ deviceId: pulumi.Input<string>;
60
+ /**
61
+ * The tags to apply to the device.
62
+ */
63
+ tags: pulumi.Input<pulumi.Input<string>[]>;
64
+ }
package/deviceTags.js ADDED
@@ -0,0 +1,61 @@
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.DeviceTags = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * The deviceTags resource is used to apply tags to a device within a Tailnet. For more information on ACL tags, see
10
+ * the [ACL tags documentation](https://tailscale.com/kb/1068/acl-tags/) for more details.
11
+ */
12
+ class DeviceTags extends pulumi.CustomResource {
13
+ constructor(name, argsOrState, opts) {
14
+ let resourceInputs = {};
15
+ opts = opts || {};
16
+ if (opts.id) {
17
+ const state = argsOrState;
18
+ resourceInputs["deviceId"] = state ? state.deviceId : undefined;
19
+ resourceInputs["tags"] = state ? state.tags : undefined;
20
+ }
21
+ else {
22
+ const args = argsOrState;
23
+ if ((!args || args.deviceId === undefined) && !opts.urn) {
24
+ throw new Error("Missing required property 'deviceId'");
25
+ }
26
+ if ((!args || args.tags === undefined) && !opts.urn) {
27
+ throw new Error("Missing required property 'tags'");
28
+ }
29
+ resourceInputs["deviceId"] = args ? args.deviceId : undefined;
30
+ resourceInputs["tags"] = args ? args.tags : undefined;
31
+ }
32
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
33
+ super(DeviceTags.__pulumiType, name, resourceInputs, opts);
34
+ }
35
+ /**
36
+ * Get an existing DeviceTags resource's state with the given name, ID, and optional extra
37
+ * properties used to qualify the lookup.
38
+ *
39
+ * @param name The _unique_ name of the resulting resource.
40
+ * @param id The _unique_ provider ID of the resource to lookup.
41
+ * @param state Any extra arguments used during the lookup.
42
+ * @param opts Optional settings to control the behavior of the CustomResource.
43
+ */
44
+ static get(name, id, state, opts) {
45
+ return new DeviceTags(name, state, Object.assign(Object.assign({}, opts), { id: id }));
46
+ }
47
+ /**
48
+ * Returns true if the given object is an instance of DeviceTags. This is designed to work even
49
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
50
+ */
51
+ static isInstance(obj) {
52
+ if (obj === undefined || obj === null) {
53
+ return false;
54
+ }
55
+ return obj['__pulumiType'] === DeviceTags.__pulumiType;
56
+ }
57
+ }
58
+ exports.DeviceTags = DeviceTags;
59
+ /** @internal */
60
+ DeviceTags.__pulumiType = 'tailscale:index/deviceTags:DeviceTags';
61
+ //# sourceMappingURL=deviceTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTags.js","sourceRoot":"","sources":["../deviceTags.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;GAGG;AACH,MAAa,UAAW,SAAQ,MAAM,CAAC,cAAc;IA6CjD,YAAY,IAAY,EAAE,WAA8C,EAAE,IAAmC;QACzG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA0C,CAAC;YACzD,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,WAAyC,CAAC;YACvD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACvD;YACD,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACzD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAhED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAuB,EAAE,IAAmC;QACrH,OAAO,IAAI,UAAU,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IACjE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC,YAAY,CAAC;IAC3D,CAAC;;AA1BL,gCAkEC;AApDG,gBAAgB;AACO,uBAAY,GAAG,uCAAuC,CAAC"}
package/getDevice.d.ts CHANGED
@@ -10,6 +10,7 @@ import * as pulumi from "@pulumi/pulumi";
10
10
  *
11
11
  * const sampleDevice = pulumi.output(tailscale.getDevice({
12
12
  * name: "user1-device.example.com",
13
+ * waitFor: "60s",
13
14
  * }));
14
15
  * ```
15
16
  */
@@ -22,6 +23,10 @@ export interface GetDeviceArgs {
22
23
  * The name of the tailnet device to obtain the attributes of.
23
24
  */
24
25
  name: string;
26
+ /**
27
+ * If specified, the provider will retry obtaining the device data every second until the specified duration has been reached. Must be a value greater than 1 second
28
+ */
29
+ waitFor?: string;
25
30
  }
26
31
  /**
27
32
  * A collection of values returned by getDevice.
@@ -36,10 +41,15 @@ export interface GetDeviceResult {
36
41
  */
37
42
  readonly id: string;
38
43
  readonly name: string;
44
+ /**
45
+ * Tags applied to the device
46
+ */
47
+ readonly tags: string[];
39
48
  /**
40
49
  * The user associated with the device
41
50
  */
42
51
  readonly user: string;
52
+ readonly waitFor?: string;
43
53
  }
44
54
  export declare function getDeviceOutput(args: GetDeviceOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetDeviceResult>;
45
55
  /**
@@ -50,4 +60,8 @@ export interface GetDeviceOutputArgs {
50
60
  * The name of the tailnet device to obtain the attributes of.
51
61
  */
52
62
  name: pulumi.Input<string>;
63
+ /**
64
+ * If specified, the provider will retry obtaining the device data every second until the specified duration has been reached. Must be a value greater than 1 second
65
+ */
66
+ waitFor?: pulumi.Input<string>;
53
67
  }
package/getDevice.js CHANGED
@@ -16,6 +16,7 @@ const utilities = require("./utilities");
16
16
  *
17
17
  * const sampleDevice = pulumi.output(tailscale.getDevice({
18
18
  * name: "user1-device.example.com",
19
+ * waitFor: "60s",
19
20
  * }));
20
21
  * ```
21
22
  */
@@ -26,6 +27,7 @@ function getDevice(args, opts) {
26
27
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
27
28
  return pulumi.runtime.invoke("tailscale:index/getDevice:getDevice", {
28
29
  "name": args.name,
30
+ "waitFor": args.waitFor,
29
31
  }, opts);
30
32
  }
31
33
  exports.getDevice = getDevice;
package/getDevice.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"getDevice.js","sourceRoot":"","sources":["../getDevice.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS,CAAC,IAAmB,EAAE,IAA2B;IACtE,IAAI,CAAC,IAAI,EAAE;QACP,IAAI,GAAG,EAAE,CAAA;KACZ;IAED,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,qCAAqC,EAAE;QAChE,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AATD,8BASC;AA+BD,SAAgB,eAAe,CAAC,IAAyB,EAAE,IAA2B;IAClF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AAC7D,CAAC;AAFD,0CAEC"}
1
+ {"version":3,"file":"getDevice.js","sourceRoot":"","sources":["../getDevice.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,SAAgB,SAAS,CAAC,IAAmB,EAAE,IAA2B;IACtE,IAAI,CAAC,IAAI,EAAE;QACP,IAAI,GAAG,EAAE,CAAA;KACZ;IAED,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,qCAAqC,EAAE;QAChE,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAVD,8BAUC;AAwCD,SAAgB,eAAe,CAAC,IAAyB,EAAE,IAA2B;IAClF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AAC7D,CAAC;AAFD,0CAEC"}
package/index.d.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  export * from "./acl";
2
2
  export * from "./deviceAuthorization";
3
3
  export * from "./deviceSubnetRoutes";
4
+ export * from "./deviceTags";
4
5
  export * from "./dnsNameservers";
5
6
  export * from "./dnsPreferences";
6
7
  export * from "./dnsSearchPaths";
7
8
  export * from "./getDevice";
8
9
  export * from "./getDevices";
9
10
  export * from "./provider";
11
+ export * from "./tailnetKey";
10
12
  import * as config from "./config";
11
13
  import * as types from "./types";
12
14
  export { config, types, };
package/index.js CHANGED
@@ -3,7 +3,11 @@
3
3
  // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
5
  if (k2 === undefined) k2 = k;
6
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
7
11
  }) : (function(o, m, k, k2) {
8
12
  if (k2 === undefined) k2 = k;
9
13
  o[k2] = m[k];
@@ -19,12 +23,14 @@ const utilities = require("./utilities");
19
23
  __exportStar(require("./acl"), exports);
20
24
  __exportStar(require("./deviceAuthorization"), exports);
21
25
  __exportStar(require("./deviceSubnetRoutes"), exports);
26
+ __exportStar(require("./deviceTags"), exports);
22
27
  __exportStar(require("./dnsNameservers"), exports);
23
28
  __exportStar(require("./dnsPreferences"), exports);
24
29
  __exportStar(require("./dnsSearchPaths"), exports);
25
30
  __exportStar(require("./getDevice"), exports);
26
31
  __exportStar(require("./getDevices"), exports);
27
32
  __exportStar(require("./provider"), exports);
33
+ __exportStar(require("./tailnetKey"), exports);
28
34
  // Export sub-modules:
29
35
  const config = require("./config");
30
36
  exports.config = config;
@@ -34,9 +40,11 @@ exports.types = types;
34
40
  const acl_1 = require("./acl");
35
41
  const deviceAuthorization_1 = require("./deviceAuthorization");
36
42
  const deviceSubnetRoutes_1 = require("./deviceSubnetRoutes");
43
+ const deviceTags_1 = require("./deviceTags");
37
44
  const dnsNameservers_1 = require("./dnsNameservers");
38
45
  const dnsPreferences_1 = require("./dnsPreferences");
39
46
  const dnsSearchPaths_1 = require("./dnsSearchPaths");
47
+ const tailnetKey_1 = require("./tailnetKey");
40
48
  const _module = {
41
49
  version: utilities.getVersion(),
42
50
  construct: (name, type, urn) => {
@@ -47,12 +55,16 @@ const _module = {
47
55
  return new deviceAuthorization_1.DeviceAuthorization(name, undefined, { urn });
48
56
  case "tailscale:index/deviceSubnetRoutes:DeviceSubnetRoutes":
49
57
  return new deviceSubnetRoutes_1.DeviceSubnetRoutes(name, undefined, { urn });
58
+ case "tailscale:index/deviceTags:DeviceTags":
59
+ return new deviceTags_1.DeviceTags(name, undefined, { urn });
50
60
  case "tailscale:index/dnsNameservers:DnsNameservers":
51
61
  return new dnsNameservers_1.DnsNameservers(name, undefined, { urn });
52
62
  case "tailscale:index/dnsPreferences:DnsPreferences":
53
63
  return new dnsPreferences_1.DnsPreferences(name, undefined, { urn });
54
64
  case "tailscale:index/dnsSearchPaths:DnsSearchPaths":
55
65
  return new dnsSearchPaths_1.DnsSearchPaths(name, undefined, { urn });
66
+ case "tailscale:index/tailnetKey:TailnetKey":
67
+ return new tailnetKey_1.TailnetKey(name, undefined, { urn });
56
68
  default:
57
69
  throw new Error(`unknown resource type ${type}`);
58
70
  }
@@ -61,9 +73,11 @@ const _module = {
61
73
  pulumi.runtime.registerResourceModule("tailscale", "index/acl", _module);
62
74
  pulumi.runtime.registerResourceModule("tailscale", "index/deviceAuthorization", _module);
63
75
  pulumi.runtime.registerResourceModule("tailscale", "index/deviceSubnetRoutes", _module);
76
+ pulumi.runtime.registerResourceModule("tailscale", "index/deviceTags", _module);
64
77
  pulumi.runtime.registerResourceModule("tailscale", "index/dnsNameservers", _module);
65
78
  pulumi.runtime.registerResourceModule("tailscale", "index/dnsPreferences", _module);
66
79
  pulumi.runtime.registerResourceModule("tailscale", "index/dnsSearchPaths", _module);
80
+ pulumi.runtime.registerResourceModule("tailscale", "index/tailnetKey", _module);
67
81
  const provider_1 = require("./provider");
68
82
  pulumi.runtime.registerResourcePackage("tailscale", {
69
83
  version: utilities.getVersion(),
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;;;;;;;;;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,kBAAkB;AAClB,wCAAsB;AACtB,wDAAsC;AACtC,uDAAqC;AACrC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAE3B,sBAAsB;AACtB,mCAAmC;AAI/B,wBAAM;AAHV,iCAAiC;AAI7B,sBAAK;AAGT,gCAAgC;AAChC,+BAA4B;AAC5B,+DAA4D;AAC5D,6DAA0D;AAC1D,qDAAkD;AAClD,qDAAkD;AAClD,qDAAkD;AAElD,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE;YACV,KAAK,yBAAyB;gBAC1B,OAAO,IAAI,SAAG,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACjD,KAAK,yDAAyD;gBAC1D,OAAO,IAAI,yCAAmB,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACjE,KAAK,uDAAuD;gBACxD,OAAO,IAAI,uCAAkB,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAChE,KAAK,+CAA+C;gBAChD,OAAO,IAAI,+BAAc,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D,KAAK,+CAA+C;gBAChD,OAAO,IAAI,+BAAc,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D,KAAK,+CAA+C;gBAChD,OAAO,IAAI,+BAAc,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACxE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,2BAA2B,EAAE,OAAO,CAAC,CAAA;AACxF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAA;AACvF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAA;AACnF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAA;AACnF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAA;AAEnF,yCAAsC;AAEtC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,WAAW,EAAE;IAChD,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,iBAAiB,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAA2B,EAAE;QACpF,IAAI,IAAI,KAAK,4BAA4B,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACpD;QACD,OAAO,IAAI,mBAAQ,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulumi/tailscale",
3
- "version": "v0.5.1-alpha.1643837129+d824ba76",
3
+ "version": "v0.6.0",
4
4
  "description": "A Pulumi package for creating and managing xyz cloud resources.",
5
5
  "keywords": [
6
6
  "pulumi",
@@ -11,7 +11,7 @@
11
11
  "license": "Apache-2.0",
12
12
  "scripts": {
13
13
  "build": "tsc",
14
- "install": "node scripts/install-pulumi-plugin.js resource tailscale v0.5.1-alpha.1643837129+d824ba76"
14
+ "install": "node scripts/install-pulumi-plugin.js resource tailscale v0.6.0"
15
15
  },
16
16
  "dependencies": {
17
17
  "@pulumi/pulumi": "^3.0.0"
package/package.json.dev CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulumi/tailscale",
3
- "version": "v0.5.1-alpha.1643837129+d824ba76",
3
+ "version": "v0.6.0",
4
4
  "description": "A Pulumi package for creating and managing xyz cloud resources.",
5
5
  "keywords": [
6
6
  "pulumi",
@@ -11,7 +11,7 @@
11
11
  "license": "Apache-2.0",
12
12
  "scripts": {
13
13
  "build": "tsc",
14
- "install": "node scripts/install-pulumi-plugin.js resource tailscale v0.5.1-alpha.1643837129+d824ba76"
14
+ "install": "node scripts/install-pulumi-plugin.js resource tailscale v0.6.0"
15
15
  },
16
16
  "dependencies": {
17
17
  "@pulumi/pulumi": "^3.0.0"
@@ -0,0 +1,105 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * The `tailnetKey` resource allows you to generate pre-authentication keys for your tailnet. See the
4
+ * [Tailscale auth keys](https://tailscale.com/kb/1085/auth-keys/) documentation for more information
5
+ *
6
+ * ## Example Usage
7
+ *
8
+ * ```typescript
9
+ * import * as pulumi from "@pulumi/pulumi";
10
+ * import * as tailscale from "@pulumi/tailscale";
11
+ *
12
+ * const sampleKey = new tailscale.TailnetKey("sample_key", {
13
+ * ephemeral: false,
14
+ * reusable: true,
15
+ * });
16
+ * ```
17
+ */
18
+ export declare class TailnetKey extends pulumi.CustomResource {
19
+ /**
20
+ * Get an existing TailnetKey resource's state with the given name, ID, and optional extra
21
+ * properties used to qualify the lookup.
22
+ *
23
+ * @param name The _unique_ name of the resulting resource.
24
+ * @param id The _unique_ provider ID of the resource to lookup.
25
+ * @param state Any extra arguments used during the lookup.
26
+ * @param opts Optional settings to control the behavior of the CustomResource.
27
+ */
28
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TailnetKeyState, opts?: pulumi.CustomResourceOptions): TailnetKey;
29
+ /**
30
+ * Returns true if the given object is an instance of TailnetKey. This is designed to work even
31
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
32
+ */
33
+ static isInstance(obj: any): obj is TailnetKey;
34
+ /**
35
+ * Determines if the generated key is ephemeral. Ephemeral keys are used for authenticating
36
+ * ephemeral nodes for short-lived workloads.
37
+ */
38
+ readonly ephemeral: pulumi.Output<boolean | undefined>;
39
+ /**
40
+ * The generated authentication key.
41
+ */
42
+ readonly key: pulumi.Output<string>;
43
+ /**
44
+ * Determines if the generated key is reusable. Reusable keys can be used to connect multiple
45
+ * nodes. For example, multiple instances of on-prem database might use a reusable key to connect.
46
+ */
47
+ readonly reusable: pulumi.Output<boolean | undefined>;
48
+ /**
49
+ * Set of tags to apply to the machines authenticated by the key. These tags can be used in ACL
50
+ * rules, see the [Tailscale ACL tag documentation](https://tailscale.com/kb/1068/acl-tags/).
51
+ */
52
+ readonly tags: pulumi.Output<string[] | undefined>;
53
+ /**
54
+ * Create a TailnetKey resource with the given unique name, arguments, and options.
55
+ *
56
+ * @param name The _unique_ name of the resource.
57
+ * @param args The arguments to use to populate this resource's properties.
58
+ * @param opts A bag of options that control this resource's behavior.
59
+ */
60
+ constructor(name: string, args?: TailnetKeyArgs, opts?: pulumi.CustomResourceOptions);
61
+ }
62
+ /**
63
+ * Input properties used for looking up and filtering TailnetKey resources.
64
+ */
65
+ export interface TailnetKeyState {
66
+ /**
67
+ * Determines if the generated key is ephemeral. Ephemeral keys are used for authenticating
68
+ * ephemeral nodes for short-lived workloads.
69
+ */
70
+ ephemeral?: pulumi.Input<boolean>;
71
+ /**
72
+ * The generated authentication key.
73
+ */
74
+ key?: pulumi.Input<string>;
75
+ /**
76
+ * Determines if the generated key is reusable. Reusable keys can be used to connect multiple
77
+ * nodes. For example, multiple instances of on-prem database might use a reusable key to connect.
78
+ */
79
+ reusable?: pulumi.Input<boolean>;
80
+ /**
81
+ * Set of tags to apply to the machines authenticated by the key. These tags can be used in ACL
82
+ * rules, see the [Tailscale ACL tag documentation](https://tailscale.com/kb/1068/acl-tags/).
83
+ */
84
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
85
+ }
86
+ /**
87
+ * The set of arguments for constructing a TailnetKey resource.
88
+ */
89
+ export interface TailnetKeyArgs {
90
+ /**
91
+ * Determines if the generated key is ephemeral. Ephemeral keys are used for authenticating
92
+ * ephemeral nodes for short-lived workloads.
93
+ */
94
+ ephemeral?: pulumi.Input<boolean>;
95
+ /**
96
+ * Determines if the generated key is reusable. Reusable keys can be used to connect multiple
97
+ * nodes. For example, multiple instances of on-prem database might use a reusable key to connect.
98
+ */
99
+ reusable?: pulumi.Input<boolean>;
100
+ /**
101
+ * Set of tags to apply to the machines authenticated by the key. These tags can be used in ACL
102
+ * rules, see the [Tailscale ACL tag documentation](https://tailscale.com/kb/1068/acl-tags/).
103
+ */
104
+ tags?: pulumi.Input<pulumi.Input<string>[]>;
105
+ }
package/tailnetKey.js ADDED
@@ -0,0 +1,71 @@
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.TailnetKey = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * The `tailnetKey` resource allows you to generate pre-authentication keys for your tailnet. See the
10
+ * [Tailscale auth keys](https://tailscale.com/kb/1085/auth-keys/) documentation for more information
11
+ *
12
+ * ## Example Usage
13
+ *
14
+ * ```typescript
15
+ * import * as pulumi from "@pulumi/pulumi";
16
+ * import * as tailscale from "@pulumi/tailscale";
17
+ *
18
+ * const sampleKey = new tailscale.TailnetKey("sample_key", {
19
+ * ephemeral: false,
20
+ * reusable: true,
21
+ * });
22
+ * ```
23
+ */
24
+ class TailnetKey extends pulumi.CustomResource {
25
+ constructor(name, argsOrState, opts) {
26
+ let resourceInputs = {};
27
+ opts = opts || {};
28
+ if (opts.id) {
29
+ const state = argsOrState;
30
+ resourceInputs["ephemeral"] = state ? state.ephemeral : undefined;
31
+ resourceInputs["key"] = state ? state.key : undefined;
32
+ resourceInputs["reusable"] = state ? state.reusable : undefined;
33
+ resourceInputs["tags"] = state ? state.tags : undefined;
34
+ }
35
+ else {
36
+ const args = argsOrState;
37
+ resourceInputs["ephemeral"] = args ? args.ephemeral : undefined;
38
+ resourceInputs["reusable"] = args ? args.reusable : undefined;
39
+ resourceInputs["tags"] = args ? args.tags : undefined;
40
+ resourceInputs["key"] = undefined /*out*/;
41
+ }
42
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
43
+ super(TailnetKey.__pulumiType, name, resourceInputs, opts);
44
+ }
45
+ /**
46
+ * Get an existing TailnetKey resource's state with the given name, ID, and optional extra
47
+ * properties used to qualify the lookup.
48
+ *
49
+ * @param name The _unique_ name of the resulting resource.
50
+ * @param id The _unique_ provider ID of the resource to lookup.
51
+ * @param state Any extra arguments used during the lookup.
52
+ * @param opts Optional settings to control the behavior of the CustomResource.
53
+ */
54
+ static get(name, id, state, opts) {
55
+ return new TailnetKey(name, state, Object.assign(Object.assign({}, opts), { id: id }));
56
+ }
57
+ /**
58
+ * Returns true if the given object is an instance of TailnetKey. This is designed to work even
59
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
60
+ */
61
+ static isInstance(obj) {
62
+ if (obj === undefined || obj === null) {
63
+ return false;
64
+ }
65
+ return obj['__pulumiType'] === TailnetKey.__pulumiType;
66
+ }
67
+ }
68
+ exports.TailnetKey = TailnetKey;
69
+ /** @internal */
70
+ TailnetKey.__pulumiType = 'tailscale:index/tailnetKey:TailnetKey';
71
+ //# sourceMappingURL=tailnetKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailnetKey.js","sourceRoot":"","sources":["../tailnetKey.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,MAAa,UAAW,SAAQ,MAAM,CAAC,cAAc;IAwDjD,YAAY,IAAY,EAAE,WAA8C,EAAE,IAAmC;QACzG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA0C,CAAC;YACzD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,WAAyC,CAAC;YACvD,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAC7C;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAzED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAuB,EAAE,IAAmC;QACrH,OAAO,IAAI,UAAU,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IACjE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC,YAAY,CAAC;IAC3D,CAAC;;AA1BL,gCA2EC;AA7DG,gBAAgB;AACO,uBAAY,GAAG,uCAAuC,CAAC"}
package/types/output.d.ts CHANGED
@@ -11,6 +11,10 @@ export interface GetDevicesDevice {
11
11
  * The name of the device
12
12
  */
13
13
  name: string;
14
+ /**
15
+ * Tags applied to the device
16
+ */
17
+ tags: string[];
14
18
  /**
15
19
  * The user associated with the device
16
20
  */