@pulumi/gcp 8.36.0 → 8.37.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.
Files changed (108) hide show
  1. package/apihub/index.d.ts +3 -0
  2. package/apihub/index.js +6 -1
  3. package/apihub/index.js.map +1 -1
  4. package/apihub/plugin.d.ts +403 -0
  5. package/apihub/plugin.js +195 -0
  6. package/apihub/plugin.js.map +1 -0
  7. package/bigqueryanalyticshub/dataExchange.d.ts +3 -3
  8. package/bigqueryanalyticshub/listing.d.ts +3 -3
  9. package/cloudidentity/groupMembership.d.ts +12 -0
  10. package/cloudidentity/groupMembership.js +2 -0
  11. package/cloudidentity/groupMembership.js.map +1 -1
  12. package/cloudrunv2/job.d.ts +23 -0
  13. package/cloudrunv2/job.js +23 -0
  14. package/cloudrunv2/job.js.map +1 -1
  15. package/cloudrunv2/service.d.ts +0 -1
  16. package/cloudrunv2/service.js +0 -1
  17. package/cloudrunv2/service.js.map +1 -1
  18. package/cloudrunv2/workerPool.d.ts +9 -10
  19. package/cloudrunv2/workerPool.js +9 -10
  20. package/cloudrunv2/workerPool.js.map +1 -1
  21. package/compute/disk.d.ts +15 -12
  22. package/compute/disk.js.map +1 -1
  23. package/compute/firewallPolicyRule.d.ts +97 -0
  24. package/compute/firewallPolicyRule.js +75 -0
  25. package/compute/firewallPolicyRule.js.map +1 -1
  26. package/compute/getInstanceGroupManager.d.ts +1 -0
  27. package/compute/getInstanceGroupManager.js.map +1 -1
  28. package/compute/getRegionDisk.d.ts +1 -0
  29. package/compute/getRegionDisk.js.map +1 -1
  30. package/compute/index.d.ts +3 -0
  31. package/compute/index.js +6 -1
  32. package/compute/index.js.map +1 -1
  33. package/compute/instanceGroupManager.d.ts +75 -6
  34. package/compute/instanceGroupManager.js +59 -0
  35. package/compute/instanceGroupManager.js.map +1 -1
  36. package/compute/network.d.ts +17 -0
  37. package/compute/network.js +2 -0
  38. package/compute/network.js.map +1 -1
  39. package/compute/networkFirewallPolicy.d.ts +21 -0
  40. package/compute/networkFirewallPolicy.js +2 -0
  41. package/compute/networkFirewallPolicy.js.map +1 -1
  42. package/compute/networkFirewallPolicyWithRules.d.ts +18 -0
  43. package/compute/networkFirewallPolicyWithRules.js +2 -0
  44. package/compute/networkFirewallPolicyWithRules.js.map +1 -1
  45. package/compute/regionDisk.d.ts +44 -0
  46. package/compute/regionDisk.js +19 -0
  47. package/compute/regionDisk.js.map +1 -1
  48. package/compute/regionNetworkFirewallPolicy.d.ts +33 -0
  49. package/compute/regionNetworkFirewallPolicy.js +14 -0
  50. package/compute/regionNetworkFirewallPolicy.js.map +1 -1
  51. package/compute/regionNetworkFirewallPolicyWithRules.d.ts +43 -0
  52. package/compute/regionNetworkFirewallPolicyWithRules.js +27 -0
  53. package/compute/regionNetworkFirewallPolicyWithRules.js.map +1 -1
  54. package/compute/wireGroup.d.ts +250 -0
  55. package/compute/wireGroup.js +127 -0
  56. package/compute/wireGroup.js.map +1 -0
  57. package/container/cluster.d.ts +15 -0
  58. package/container/cluster.js +2 -0
  59. package/container/cluster.js.map +1 -1
  60. package/container/getCluster.d.ts +1 -0
  61. package/container/getCluster.js.map +1 -1
  62. package/container/nodePool.d.ts +6 -0
  63. package/container/nodePool.js.map +1 -1
  64. package/diagflow/cxGenerativeSettings.d.ts +222 -0
  65. package/diagflow/cxGenerativeSettings.js +139 -0
  66. package/diagflow/cxGenerativeSettings.js.map +1 -0
  67. package/diagflow/index.d.ts +3 -0
  68. package/diagflow/index.js +6 -1
  69. package/diagflow/index.js.map +1 -1
  70. package/dns/recordSet.d.ts +1 -0
  71. package/dns/recordSet.js +1 -0
  72. package/dns/recordSet.js.map +1 -1
  73. package/firestore/database.d.ts +0 -9
  74. package/firestore/database.js.map +1 -1
  75. package/iam/workloadIdentityPoolManagedIdentity.d.ts +31 -0
  76. package/iam/workloadIdentityPoolManagedIdentity.js +10 -0
  77. package/iam/workloadIdentityPoolManagedIdentity.js.map +1 -1
  78. package/kms/autokeyConfig.d.ts +8 -0
  79. package/kms/autokeyConfig.js +2 -0
  80. package/kms/autokeyConfig.js.map +1 -1
  81. package/kms/getAutokeyConfig.d.ts +1 -0
  82. package/kms/getAutokeyConfig.js.map +1 -1
  83. package/memorystore/getInstance.d.ts +1 -0
  84. package/memorystore/getInstance.js.map +1 -1
  85. package/memorystore/instance.d.ts +13 -0
  86. package/memorystore/instance.js +3 -0
  87. package/memorystore/instance.js.map +1 -1
  88. package/monitoring/metricDescriptor.d.ts +13 -13
  89. package/monitoring/metricDescriptor.js +0 -6
  90. package/monitoring/metricDescriptor.js.map +1 -1
  91. package/notebooks/instance.d.ts +4 -4
  92. package/notebooks/instance.js +4 -4
  93. package/package.json +2 -2
  94. package/redis/getInstance.d.ts +1 -0
  95. package/redis/getInstance.js.map +1 -1
  96. package/redis/instance.d.ts +16 -0
  97. package/redis/instance.js +2 -0
  98. package/redis/instance.js.map +1 -1
  99. package/secretmanager/getRegionalSecret.d.ts +1 -0
  100. package/secretmanager/getRegionalSecret.js.map +1 -1
  101. package/secretmanager/regionalSecret.d.ts +4 -0
  102. package/secretmanager/regionalSecret.js +3 -0
  103. package/secretmanager/regionalSecret.js.map +1 -1
  104. package/types/input.d.ts +439 -9
  105. package/types/output.d.ts +488 -10
  106. package/workbench/instance.d.ts +1 -0
  107. package/workbench/instance.js +1 -0
  108. package/workbench/instance.js.map +1 -1
package/apihub/index.d.ts CHANGED
@@ -7,6 +7,9 @@ export declare const Curation: typeof import("./curation").Curation;
7
7
  export { HostProjectRegistrationArgs, HostProjectRegistrationState } from "./hostProjectRegistration";
8
8
  export type HostProjectRegistration = import("./hostProjectRegistration").HostProjectRegistration;
9
9
  export declare const HostProjectRegistration: typeof import("./hostProjectRegistration").HostProjectRegistration;
10
+ export { PluginArgs, PluginState } from "./plugin";
11
+ export type Plugin = import("./plugin").Plugin;
12
+ export declare const Plugin: typeof import("./plugin").Plugin;
10
13
  export { PluginInstanceArgs, PluginInstanceState } from "./pluginInstance";
11
14
  export type PluginInstance = import("./pluginInstance").PluginInstance;
12
15
  export declare const PluginInstance: typeof import("./pluginInstance").PluginInstance;
package/apihub/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
3
  // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.PluginInstance = exports.HostProjectRegistration = exports.Curation = exports.ApiHubInstance = void 0;
5
+ exports.PluginInstance = exports.Plugin = exports.HostProjectRegistration = exports.Curation = exports.ApiHubInstance = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("../utilities");
8
8
  exports.ApiHubInstance = null;
@@ -11,6 +11,8 @@ exports.Curation = null;
11
11
  utilities.lazyLoad(exports, ["Curation"], () => require("./curation"));
12
12
  exports.HostProjectRegistration = null;
13
13
  utilities.lazyLoad(exports, ["HostProjectRegistration"], () => require("./hostProjectRegistration"));
14
+ exports.Plugin = null;
15
+ utilities.lazyLoad(exports, ["Plugin"], () => require("./plugin"));
14
16
  exports.PluginInstance = null;
15
17
  utilities.lazyLoad(exports, ["PluginInstance"], () => require("./pluginInstance"));
16
18
  const _module = {
@@ -23,6 +25,8 @@ const _module = {
23
25
  return new exports.Curation(name, undefined, { urn });
24
26
  case "gcp:apihub/hostProjectRegistration:HostProjectRegistration":
25
27
  return new exports.HostProjectRegistration(name, undefined, { urn });
28
+ case "gcp:apihub/plugin:Plugin":
29
+ return new exports.Plugin(name, undefined, { urn });
26
30
  case "gcp:apihub/pluginInstance:PluginInstance":
27
31
  return new exports.PluginInstance(name, undefined, { urn });
28
32
  default:
@@ -33,5 +37,6 @@ const _module = {
33
37
  pulumi.runtime.registerResourceModule("gcp", "apihub/apiHubInstance", _module);
34
38
  pulumi.runtime.registerResourceModule("gcp", "apihub/curation", _module);
35
39
  pulumi.runtime.registerResourceModule("gcp", "apihub/hostProjectRegistration", _module);
40
+ pulumi.runtime.registerResourceModule("gcp", "apihub/plugin", _module);
36
41
  pulumi.runtime.registerResourceModule("gcp", "apihub/pluginInstance", _module);
37
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../apihub/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,cAAc,GAAqD,IAAW,CAAC;AAC5F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAItE,QAAA,QAAQ,GAAyC,IAAW,CAAC;AAC1E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAI1D,QAAA,uBAAuB,GAAuE,IAAW,CAAC;AACvH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAIxF,QAAA,cAAc,GAAqD,IAAW,CAAC;AAC5F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAGnF,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,0CAA0C;gBAC3C,OAAO,IAAI,sBAAc,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D,KAAK,8BAA8B;gBAC/B,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACtD,KAAK,4DAA4D;gBAC7D,OAAO,IAAI,+BAAuB,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrE,KAAK,0CAA0C;gBAC3C,OAAO,IAAI,sBAAc,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,KAAK,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA;AAC9E,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AACxE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAA;AACvF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../apihub/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,cAAc,GAAqD,IAAW,CAAC;AAC5F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAItE,QAAA,QAAQ,GAAyC,IAAW,CAAC;AAC1E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAI1D,QAAA,uBAAuB,GAAuE,IAAW,CAAC;AACvH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAIxF,QAAA,MAAM,GAAqC,IAAW,CAAC;AACpE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAItD,QAAA,cAAc,GAAqD,IAAW,CAAC;AAC5F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAGnF,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,0CAA0C;gBAC3C,OAAO,IAAI,sBAAc,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D,KAAK,8BAA8B;gBAC/B,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACtD,KAAK,4DAA4D;gBAC7D,OAAO,IAAI,+BAAuB,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrE,KAAK,0BAA0B;gBAC3B,OAAO,IAAI,cAAM,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACpD,KAAK,0CAA0C;gBAC3C,OAAO,IAAI,sBAAc,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,KAAK,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA;AAC9E,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AACxE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAA;AACvF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AACtE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA"}
@@ -0,0 +1,403 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "../types/input";
3
+ import * as outputs from "../types/output";
4
+ /**
5
+ * A plugin resource in the API hub.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ### Apihub Plugin Full
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as gcp from "@pulumi/gcp";
14
+ *
15
+ * const apihubPluginFull = new gcp.apihub.Plugin("apihub_plugin_full", {
16
+ * location: "us-central1",
17
+ * displayName: "Test Plugin",
18
+ * description: "Test description",
19
+ * pluginId: "plugin-full",
20
+ * pluginCategory: "API_GATEWAY",
21
+ * actionsConfigs: [{
22
+ * id: "sync-metadata",
23
+ * displayName: "Sync Metadata",
24
+ * description: "Syncs API metadata.",
25
+ * triggerMode: "API_HUB_SCHEDULE_TRIGGER",
26
+ * }],
27
+ * documentation: {
28
+ * externalUri: "https://example.com/plugin-documentation",
29
+ * },
30
+ * hostingService: {
31
+ * serviceUri: "https://your-plugin-service.example.com/api",
32
+ * },
33
+ * configTemplate: {
34
+ * authConfigTemplate: {
35
+ * supportedAuthTypes: [
36
+ * "NO_AUTH",
37
+ * "USER_PASSWORD",
38
+ * ],
39
+ * serviceAccount: {
40
+ * serviceAccount: "test@developer.gserviceaccount.com",
41
+ * },
42
+ * },
43
+ * additionalConfigTemplates: [
44
+ * {
45
+ * id: "string-val",
46
+ * description: "API key for the service.",
47
+ * valueType: "STRING",
48
+ * required: false,
49
+ * validationRegex: "^[a-zA-Z0-9]{5,20}$",
50
+ * },
51
+ * {
52
+ * id: "integer-val",
53
+ * description: "API key for the service.",
54
+ * valueType: "INT",
55
+ * required: true,
56
+ * validationRegex: "",
57
+ * },
58
+ * {
59
+ * id: "bool-val",
60
+ * description: "API key for the service.",
61
+ * valueType: "BOOL",
62
+ * required: false,
63
+ * validationRegex: "",
64
+ * },
65
+ * {
66
+ * id: "enum-val",
67
+ * description: "API key for the service.",
68
+ * valueType: "ENUM",
69
+ * enumOptions: [
70
+ * {
71
+ * id: "Option1",
72
+ * displayName: "Option1",
73
+ * description: "Description for Option1",
74
+ * },
75
+ * {
76
+ * id: "Option2",
77
+ * displayName: "Option2",
78
+ * description: "Description for Option2",
79
+ * },
80
+ * ],
81
+ * required: false,
82
+ * validationRegex: "",
83
+ * },
84
+ * ],
85
+ * },
86
+ * });
87
+ * ```
88
+ *
89
+ * ## Import
90
+ *
91
+ * Plugin can be imported using any of these accepted formats:
92
+ *
93
+ * * `projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}`
94
+ *
95
+ * * `{{project}}/{{location}}/{{plugin_id}}`
96
+ *
97
+ * * `{{location}}/{{plugin_id}}`
98
+ *
99
+ * When using the `pulumi import` command, Plugin can be imported using one of the formats above. For example:
100
+ *
101
+ * ```sh
102
+ * $ pulumi import gcp:apihub/plugin:Plugin default projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}
103
+ * ```
104
+ *
105
+ * ```sh
106
+ * $ pulumi import gcp:apihub/plugin:Plugin default {{project}}/{{location}}/{{plugin_id}}
107
+ * ```
108
+ *
109
+ * ```sh
110
+ * $ pulumi import gcp:apihub/plugin:Plugin default {{location}}/{{plugin_id}}
111
+ * ```
112
+ */
113
+ export declare class Plugin extends pulumi.CustomResource {
114
+ /**
115
+ * Get an existing Plugin resource's state with the given name, ID, and optional extra
116
+ * properties used to qualify the lookup.
117
+ *
118
+ * @param name The _unique_ name of the resulting resource.
119
+ * @param id The _unique_ provider ID of the resource to lookup.
120
+ * @param state Any extra arguments used during the lookup.
121
+ * @param opts Optional settings to control the behavior of the CustomResource.
122
+ */
123
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: PluginState, opts?: pulumi.CustomResourceOptions): Plugin;
124
+ /**
125
+ * Returns true if the given object is an instance of Plugin. This is designed to work even
126
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
127
+ */
128
+ static isInstance(obj: any): obj is Plugin;
129
+ /**
130
+ * The configuration of actions supported by the plugin.
131
+ * Structure is documented below.
132
+ */
133
+ readonly actionsConfigs: pulumi.Output<outputs.apihub.PluginActionsConfig[] | undefined>;
134
+ /**
135
+ * ConfigTemplate represents the configuration template for a plugin.
136
+ * Structure is documented below.
137
+ */
138
+ readonly configTemplate: pulumi.Output<outputs.apihub.PluginConfigTemplate | undefined>;
139
+ /**
140
+ * Timestamp indicating when the plugin was created.
141
+ */
142
+ readonly createTime: pulumi.Output<string>;
143
+ /**
144
+ * The plugin description. Max length is 2000 characters (Unicode code
145
+ * points).
146
+ */
147
+ readonly description: pulumi.Output<string | undefined>;
148
+ /**
149
+ * The display name of the plugin. Max length is 50 characters (Unicode code
150
+ * points).
151
+ */
152
+ readonly displayName: pulumi.Output<string>;
153
+ /**
154
+ * Documentation details.
155
+ * Structure is documented below.
156
+ */
157
+ readonly documentation: pulumi.Output<outputs.apihub.PluginDocumentation | undefined>;
158
+ /**
159
+ * The information related to the service implemented by the plugin
160
+ * developer, used to invoke the plugin's functionality.
161
+ * Structure is documented below.
162
+ */
163
+ readonly hostingService: pulumi.Output<outputs.apihub.PluginHostingService | undefined>;
164
+ /**
165
+ * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
166
+ */
167
+ readonly location: pulumi.Output<string>;
168
+ /**
169
+ * Identifier. The name of the plugin.
170
+ * Format: `projects/{project}/locations/{location}/plugins/{plugin}`
171
+ */
172
+ readonly name: pulumi.Output<string>;
173
+ /**
174
+ * The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or
175
+ * 'USER_OWNED'.
176
+ * Possible values:
177
+ * OWNERSHIP_TYPE_UNSPECIFIED
178
+ * SYSTEM_OWNED
179
+ * USER_OWNED
180
+ */
181
+ readonly ownershipType: pulumi.Output<string>;
182
+ /**
183
+ * Possible values:
184
+ * PLUGIN_CATEGORY_UNSPECIFIED
185
+ * API_GATEWAY
186
+ * API_PRODUCER
187
+ */
188
+ readonly pluginCategory: pulumi.Output<string | undefined>;
189
+ /**
190
+ * The ID to use for the Plugin resource, which will become the final
191
+ * component of the Plugin's resource name. This field is optional.
192
+ * * If provided, the same will be used. The service will throw an error if
193
+ * the specified id is already used by another Plugin resource in the API hub
194
+ * instance.
195
+ * * If not provided, a system generated id will be used.
196
+ * This value should be 4-63 characters, overall resource name which will be
197
+ * of format
198
+ * `projects/{project}/locations/{location}/plugins/{plugin}`,
199
+ * its length is limited to 1000 characters and valid characters are
200
+ * /a-z[0-9]-_/.
201
+ *
202
+ *
203
+ * - - -
204
+ */
205
+ readonly pluginId: pulumi.Output<string>;
206
+ /**
207
+ * The ID of the project in which the resource belongs.
208
+ * If it is not provided, the provider project is used.
209
+ */
210
+ readonly project: pulumi.Output<string>;
211
+ /**
212
+ * Represents the state of the plugin.
213
+ * Note this field will not be set for plugins developed via plugin
214
+ * framework as the state will be managed at plugin instance level.
215
+ * Possible values:
216
+ * STATE_UNSPECIFIED
217
+ * ENABLED
218
+ * DISABLED
219
+ */
220
+ readonly state: pulumi.Output<string>;
221
+ /**
222
+ * Timestamp indicating when the plugin was last updated.
223
+ */
224
+ readonly updateTime: pulumi.Output<string>;
225
+ /**
226
+ * Create a Plugin resource with the given unique name, arguments, and options.
227
+ *
228
+ * @param name The _unique_ name of the resource.
229
+ * @param args The arguments to use to populate this resource's properties.
230
+ * @param opts A bag of options that control this resource's behavior.
231
+ */
232
+ constructor(name: string, args: PluginArgs, opts?: pulumi.CustomResourceOptions);
233
+ }
234
+ /**
235
+ * Input properties used for looking up and filtering Plugin resources.
236
+ */
237
+ export interface PluginState {
238
+ /**
239
+ * The configuration of actions supported by the plugin.
240
+ * Structure is documented below.
241
+ */
242
+ actionsConfigs?: pulumi.Input<pulumi.Input<inputs.apihub.PluginActionsConfig>[]>;
243
+ /**
244
+ * ConfigTemplate represents the configuration template for a plugin.
245
+ * Structure is documented below.
246
+ */
247
+ configTemplate?: pulumi.Input<inputs.apihub.PluginConfigTemplate>;
248
+ /**
249
+ * Timestamp indicating when the plugin was created.
250
+ */
251
+ createTime?: pulumi.Input<string>;
252
+ /**
253
+ * The plugin description. Max length is 2000 characters (Unicode code
254
+ * points).
255
+ */
256
+ description?: pulumi.Input<string>;
257
+ /**
258
+ * The display name of the plugin. Max length is 50 characters (Unicode code
259
+ * points).
260
+ */
261
+ displayName?: pulumi.Input<string>;
262
+ /**
263
+ * Documentation details.
264
+ * Structure is documented below.
265
+ */
266
+ documentation?: pulumi.Input<inputs.apihub.PluginDocumentation>;
267
+ /**
268
+ * The information related to the service implemented by the plugin
269
+ * developer, used to invoke the plugin's functionality.
270
+ * Structure is documented below.
271
+ */
272
+ hostingService?: pulumi.Input<inputs.apihub.PluginHostingService>;
273
+ /**
274
+ * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
275
+ */
276
+ location?: pulumi.Input<string>;
277
+ /**
278
+ * Identifier. The name of the plugin.
279
+ * Format: `projects/{project}/locations/{location}/plugins/{plugin}`
280
+ */
281
+ name?: pulumi.Input<string>;
282
+ /**
283
+ * The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or
284
+ * 'USER_OWNED'.
285
+ * Possible values:
286
+ * OWNERSHIP_TYPE_UNSPECIFIED
287
+ * SYSTEM_OWNED
288
+ * USER_OWNED
289
+ */
290
+ ownershipType?: pulumi.Input<string>;
291
+ /**
292
+ * Possible values:
293
+ * PLUGIN_CATEGORY_UNSPECIFIED
294
+ * API_GATEWAY
295
+ * API_PRODUCER
296
+ */
297
+ pluginCategory?: pulumi.Input<string>;
298
+ /**
299
+ * The ID to use for the Plugin resource, which will become the final
300
+ * component of the Plugin's resource name. This field is optional.
301
+ * * If provided, the same will be used. The service will throw an error if
302
+ * the specified id is already used by another Plugin resource in the API hub
303
+ * instance.
304
+ * * If not provided, a system generated id will be used.
305
+ * This value should be 4-63 characters, overall resource name which will be
306
+ * of format
307
+ * `projects/{project}/locations/{location}/plugins/{plugin}`,
308
+ * its length is limited to 1000 characters and valid characters are
309
+ * /a-z[0-9]-_/.
310
+ *
311
+ *
312
+ * - - -
313
+ */
314
+ pluginId?: pulumi.Input<string>;
315
+ /**
316
+ * The ID of the project in which the resource belongs.
317
+ * If it is not provided, the provider project is used.
318
+ */
319
+ project?: pulumi.Input<string>;
320
+ /**
321
+ * Represents the state of the plugin.
322
+ * Note this field will not be set for plugins developed via plugin
323
+ * framework as the state will be managed at plugin instance level.
324
+ * Possible values:
325
+ * STATE_UNSPECIFIED
326
+ * ENABLED
327
+ * DISABLED
328
+ */
329
+ state?: pulumi.Input<string>;
330
+ /**
331
+ * Timestamp indicating when the plugin was last updated.
332
+ */
333
+ updateTime?: pulumi.Input<string>;
334
+ }
335
+ /**
336
+ * The set of arguments for constructing a Plugin resource.
337
+ */
338
+ export interface PluginArgs {
339
+ /**
340
+ * The configuration of actions supported by the plugin.
341
+ * Structure is documented below.
342
+ */
343
+ actionsConfigs?: pulumi.Input<pulumi.Input<inputs.apihub.PluginActionsConfig>[]>;
344
+ /**
345
+ * ConfigTemplate represents the configuration template for a plugin.
346
+ * Structure is documented below.
347
+ */
348
+ configTemplate?: pulumi.Input<inputs.apihub.PluginConfigTemplate>;
349
+ /**
350
+ * The plugin description. Max length is 2000 characters (Unicode code
351
+ * points).
352
+ */
353
+ description?: pulumi.Input<string>;
354
+ /**
355
+ * The display name of the plugin. Max length is 50 characters (Unicode code
356
+ * points).
357
+ */
358
+ displayName: pulumi.Input<string>;
359
+ /**
360
+ * Documentation details.
361
+ * Structure is documented below.
362
+ */
363
+ documentation?: pulumi.Input<inputs.apihub.PluginDocumentation>;
364
+ /**
365
+ * The information related to the service implemented by the plugin
366
+ * developer, used to invoke the plugin's functionality.
367
+ * Structure is documented below.
368
+ */
369
+ hostingService?: pulumi.Input<inputs.apihub.PluginHostingService>;
370
+ /**
371
+ * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
372
+ */
373
+ location: pulumi.Input<string>;
374
+ /**
375
+ * Possible values:
376
+ * PLUGIN_CATEGORY_UNSPECIFIED
377
+ * API_GATEWAY
378
+ * API_PRODUCER
379
+ */
380
+ pluginCategory?: pulumi.Input<string>;
381
+ /**
382
+ * The ID to use for the Plugin resource, which will become the final
383
+ * component of the Plugin's resource name. This field is optional.
384
+ * * If provided, the same will be used. The service will throw an error if
385
+ * the specified id is already used by another Plugin resource in the API hub
386
+ * instance.
387
+ * * If not provided, a system generated id will be used.
388
+ * This value should be 4-63 characters, overall resource name which will be
389
+ * of format
390
+ * `projects/{project}/locations/{location}/plugins/{plugin}`,
391
+ * its length is limited to 1000 characters and valid characters are
392
+ * /a-z[0-9]-_/.
393
+ *
394
+ *
395
+ * - - -
396
+ */
397
+ pluginId: pulumi.Input<string>;
398
+ /**
399
+ * The ID of the project in which the resource belongs.
400
+ * If it is not provided, the provider project is used.
401
+ */
402
+ project?: pulumi.Input<string>;
403
+ }
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
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.Plugin = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * A plugin resource in the API hub.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ### Apihub Plugin Full
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as gcp from "@pulumi/gcp";
18
+ *
19
+ * const apihubPluginFull = new gcp.apihub.Plugin("apihub_plugin_full", {
20
+ * location: "us-central1",
21
+ * displayName: "Test Plugin",
22
+ * description: "Test description",
23
+ * pluginId: "plugin-full",
24
+ * pluginCategory: "API_GATEWAY",
25
+ * actionsConfigs: [{
26
+ * id: "sync-metadata",
27
+ * displayName: "Sync Metadata",
28
+ * description: "Syncs API metadata.",
29
+ * triggerMode: "API_HUB_SCHEDULE_TRIGGER",
30
+ * }],
31
+ * documentation: {
32
+ * externalUri: "https://example.com/plugin-documentation",
33
+ * },
34
+ * hostingService: {
35
+ * serviceUri: "https://your-plugin-service.example.com/api",
36
+ * },
37
+ * configTemplate: {
38
+ * authConfigTemplate: {
39
+ * supportedAuthTypes: [
40
+ * "NO_AUTH",
41
+ * "USER_PASSWORD",
42
+ * ],
43
+ * serviceAccount: {
44
+ * serviceAccount: "test@developer.gserviceaccount.com",
45
+ * },
46
+ * },
47
+ * additionalConfigTemplates: [
48
+ * {
49
+ * id: "string-val",
50
+ * description: "API key for the service.",
51
+ * valueType: "STRING",
52
+ * required: false,
53
+ * validationRegex: "^[a-zA-Z0-9]{5,20}$",
54
+ * },
55
+ * {
56
+ * id: "integer-val",
57
+ * description: "API key for the service.",
58
+ * valueType: "INT",
59
+ * required: true,
60
+ * validationRegex: "",
61
+ * },
62
+ * {
63
+ * id: "bool-val",
64
+ * description: "API key for the service.",
65
+ * valueType: "BOOL",
66
+ * required: false,
67
+ * validationRegex: "",
68
+ * },
69
+ * {
70
+ * id: "enum-val",
71
+ * description: "API key for the service.",
72
+ * valueType: "ENUM",
73
+ * enumOptions: [
74
+ * {
75
+ * id: "Option1",
76
+ * displayName: "Option1",
77
+ * description: "Description for Option1",
78
+ * },
79
+ * {
80
+ * id: "Option2",
81
+ * displayName: "Option2",
82
+ * description: "Description for Option2",
83
+ * },
84
+ * ],
85
+ * required: false,
86
+ * validationRegex: "",
87
+ * },
88
+ * ],
89
+ * },
90
+ * });
91
+ * ```
92
+ *
93
+ * ## Import
94
+ *
95
+ * Plugin can be imported using any of these accepted formats:
96
+ *
97
+ * * `projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}`
98
+ *
99
+ * * `{{project}}/{{location}}/{{plugin_id}}`
100
+ *
101
+ * * `{{location}}/{{plugin_id}}`
102
+ *
103
+ * When using the `pulumi import` command, Plugin can be imported using one of the formats above. For example:
104
+ *
105
+ * ```sh
106
+ * $ pulumi import gcp:apihub/plugin:Plugin default projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}
107
+ * ```
108
+ *
109
+ * ```sh
110
+ * $ pulumi import gcp:apihub/plugin:Plugin default {{project}}/{{location}}/{{plugin_id}}
111
+ * ```
112
+ *
113
+ * ```sh
114
+ * $ pulumi import gcp:apihub/plugin:Plugin default {{location}}/{{plugin_id}}
115
+ * ```
116
+ */
117
+ class Plugin extends pulumi.CustomResource {
118
+ /**
119
+ * Get an existing Plugin resource's state with the given name, ID, and optional extra
120
+ * properties used to qualify the lookup.
121
+ *
122
+ * @param name The _unique_ name of the resulting resource.
123
+ * @param id The _unique_ provider ID of the resource to lookup.
124
+ * @param state Any extra arguments used during the lookup.
125
+ * @param opts Optional settings to control the behavior of the CustomResource.
126
+ */
127
+ static get(name, id, state, opts) {
128
+ return new Plugin(name, state, Object.assign(Object.assign({}, opts), { id: id }));
129
+ }
130
+ /**
131
+ * Returns true if the given object is an instance of Plugin. This is designed to work even
132
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
133
+ */
134
+ static isInstance(obj) {
135
+ if (obj === undefined || obj === null) {
136
+ return false;
137
+ }
138
+ return obj['__pulumiType'] === Plugin.__pulumiType;
139
+ }
140
+ constructor(name, argsOrState, opts) {
141
+ let resourceInputs = {};
142
+ opts = opts || {};
143
+ if (opts.id) {
144
+ const state = argsOrState;
145
+ resourceInputs["actionsConfigs"] = state ? state.actionsConfigs : undefined;
146
+ resourceInputs["configTemplate"] = state ? state.configTemplate : undefined;
147
+ resourceInputs["createTime"] = state ? state.createTime : undefined;
148
+ resourceInputs["description"] = state ? state.description : undefined;
149
+ resourceInputs["displayName"] = state ? state.displayName : undefined;
150
+ resourceInputs["documentation"] = state ? state.documentation : undefined;
151
+ resourceInputs["hostingService"] = state ? state.hostingService : undefined;
152
+ resourceInputs["location"] = state ? state.location : undefined;
153
+ resourceInputs["name"] = state ? state.name : undefined;
154
+ resourceInputs["ownershipType"] = state ? state.ownershipType : undefined;
155
+ resourceInputs["pluginCategory"] = state ? state.pluginCategory : undefined;
156
+ resourceInputs["pluginId"] = state ? state.pluginId : undefined;
157
+ resourceInputs["project"] = state ? state.project : undefined;
158
+ resourceInputs["state"] = state ? state.state : undefined;
159
+ resourceInputs["updateTime"] = state ? state.updateTime : undefined;
160
+ }
161
+ else {
162
+ const args = argsOrState;
163
+ if ((!args || args.displayName === undefined) && !opts.urn) {
164
+ throw new Error("Missing required property 'displayName'");
165
+ }
166
+ if ((!args || args.location === undefined) && !opts.urn) {
167
+ throw new Error("Missing required property 'location'");
168
+ }
169
+ if ((!args || args.pluginId === undefined) && !opts.urn) {
170
+ throw new Error("Missing required property 'pluginId'");
171
+ }
172
+ resourceInputs["actionsConfigs"] = args ? args.actionsConfigs : undefined;
173
+ resourceInputs["configTemplate"] = args ? args.configTemplate : undefined;
174
+ resourceInputs["description"] = args ? args.description : undefined;
175
+ resourceInputs["displayName"] = args ? args.displayName : undefined;
176
+ resourceInputs["documentation"] = args ? args.documentation : undefined;
177
+ resourceInputs["hostingService"] = args ? args.hostingService : undefined;
178
+ resourceInputs["location"] = args ? args.location : undefined;
179
+ resourceInputs["pluginCategory"] = args ? args.pluginCategory : undefined;
180
+ resourceInputs["pluginId"] = args ? args.pluginId : undefined;
181
+ resourceInputs["project"] = args ? args.project : undefined;
182
+ resourceInputs["createTime"] = undefined /*out*/;
183
+ resourceInputs["name"] = undefined /*out*/;
184
+ resourceInputs["ownershipType"] = undefined /*out*/;
185
+ resourceInputs["state"] = undefined /*out*/;
186
+ resourceInputs["updateTime"] = undefined /*out*/;
187
+ }
188
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
189
+ super(Plugin.__pulumiType, name, resourceInputs, opts);
190
+ }
191
+ }
192
+ exports.Plugin = Plugin;
193
+ /** @internal */
194
+ Plugin.__pulumiType = 'gcp:apihub/plugin:Plugin';
195
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../apihub/plugin.ts"],"names":[],"mappings":"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"}