diff --git a/.github/workflows/pulumi-clickhouse.yml b/.github/workflows/pulumi-clickhouse.yml new file mode 100644 index 00000000..2e414762 --- /dev/null +++ b/.github/workflows/pulumi-clickhouse.yml @@ -0,0 +1,42 @@ +name: Pulumi Clickhouse + +on: + push: + branches: + - master + paths: + - 'pulumi-clickhouse/**' + + pull_request: + paths: + - 'pulumi-clickhouse/**' + - .github/workflows/pulumi-clickhouse.yml + + workflow_dispatch: {} + +defaults: + run: + working-directory: ./pulumi-clickhouse + +permissions: + id-token: write + contents: read + +jobs: + pulumi-clickhouse: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22.17.0' + check-latest: true + - run: pnpm install --frozen-lockfile + - run: pnpm build + - name: Publish + if: github.ref == 'refs/heads/master' || github.event_name == 'workflow_dispatch' + uses: botpress/gh-actions/publish-if-not-exists@master + with: + path: './pulumi-clickhouse/bin' diff --git a/.github/workflows/pulumi-redpanda.yml b/.github/workflows/pulumi-redpanda.yml new file mode 100644 index 00000000..a32a4176 --- /dev/null +++ b/.github/workflows/pulumi-redpanda.yml @@ -0,0 +1,42 @@ +name: Pulumi Redpanda + +on: + push: + branches: + - master + paths: + - 'pulumi-redpanda/**' + + pull_request: + paths: + - 'pulumi-redpanda/**' + - .github/workflows/pulumi-redpanda.yml + + workflow_dispatch: {} + +defaults: + run: + working-directory: ./pulumi-redpanda + +permissions: + id-token: write + contents: read + +jobs: + pulumi-redpanda: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22.17.0' + check-latest: true + - run: pnpm install --frozen-lockfile + - run: pnpm build + - name: Publish + if: github.ref == 'refs/heads/master' || github.event_name == 'workflow_dispatch' + uses: botpress/gh-actions/publish-if-not-exists@master + with: + path: './pulumi-redpanda/bin' diff --git a/pulumi-clickhouse/README.md b/pulumi-clickhouse/README.md new file mode 100644 index 00000000..883630a6 --- /dev/null +++ b/pulumi-clickhouse/README.md @@ -0,0 +1,3 @@ +> This provider is a derived work of the [Terraform Provider](https://github.com/clickhouse/terraform-provider-clickhouse) +> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature, +> please consult the source [`terraform-provider-clickhouse` repo](https://github.com/clickhouse/terraform-provider-clickhouse/issues). diff --git a/pulumi-clickhouse/bin/config/index.d.ts b/pulumi-clickhouse/bin/config/index.d.ts new file mode 100644 index 00000000..d074bb36 --- /dev/null +++ b/pulumi-clickhouse/bin/config/index.d.ts @@ -0,0 +1 @@ +export * from "./vars"; diff --git a/pulumi-clickhouse/bin/config/index.js b/pulumi-clickhouse/bin/config/index.js new file mode 100644 index 00000000..8139147b --- /dev/null +++ b/pulumi-clickhouse/bin/config/index.js @@ -0,0 +1,21 @@ +"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! *** +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// Export members: +__exportStar(require("./vars"), exports); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/config/index.js.map b/pulumi-clickhouse/bin/config/index.js.map new file mode 100644 index 00000000..f0d1c8d9 --- /dev/null +++ b/pulumi-clickhouse/bin/config/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;AAEjF,kBAAkB;AAClB,yCAAuB"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/config/vars.d.ts b/pulumi-clickhouse/bin/config/vars.d.ts new file mode 100644 index 00000000..d9cf275f --- /dev/null +++ b/pulumi-clickhouse/bin/config/vars.d.ts @@ -0,0 +1,20 @@ +/** + * API URL of the ClickHouse OpenAPI the provider will interact with. Alternatively, can be configured using the `CLICKHOUSE_API_URL` environment variable. Only specify if you have a specific deployment of the ClickHouse OpenAPI you want to run against. + */ +export declare const apiUrl: string | undefined; +/** + * ID of the organization the provider will create services under. Alternatively, can be configured using the `CLICKHOUSE_ORG_ID` environment variable. + */ +export declare const organizationId: string | undefined; +/** + * Timeout in seconds for the HTTP client. + */ +export declare const timeoutSeconds: number | undefined; +/** + * Token key of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_KEY` environment variable. + */ +export declare const tokenKey: string | undefined; +/** + * Token secret of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_SECRET` environment variable. + */ +export declare const tokenSecret: string | undefined; diff --git a/pulumi-clickhouse/bin/config/vars.js b/pulumi-clickhouse/bin/config/vars.js new file mode 100644 index 00000000..1fb1989e --- /dev/null +++ b/pulumi-clickhouse/bin/config/vars.js @@ -0,0 +1,37 @@ +"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 }); +const pulumi = require("@pulumi/pulumi"); +const __config = new pulumi.Config("clickhouse"); +Object.defineProperty(exports, "apiUrl", { + get() { + return __config.get("apiUrl"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "organizationId", { + get() { + return __config.get("organizationId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "timeoutSeconds", { + get() { + return __config.getObject("timeoutSeconds"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "tokenKey", { + get() { + return __config.get("tokenKey"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "tokenSecret", { + get() { + return __config.get("tokenSecret"); + }, + enumerable: true, +}); +//# sourceMappingURL=vars.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/config/vars.js.map b/pulumi-clickhouse/bin/config/vars.js.map new file mode 100644 index 00000000..b27a23ec --- /dev/null +++ b/pulumi-clickhouse/bin/config/vars.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vars.js","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;AAEjF,yCAAyC;AAIzC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAMjD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE;IACrC,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE;IAC7C,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE;IAC7C,GAAG;QACC,OAAO,QAAQ,CAAC,SAAS,CAAS,gBAAgB,CAAC,CAAC;IACxD,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;IACvC,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;IAC1C,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/getApiKeyId.d.ts b/pulumi-clickhouse/bin/getApiKeyId.d.ts new file mode 100644 index 00000000..5a3a73da --- /dev/null +++ b/pulumi-clickhouse/bin/getApiKeyId.d.ts @@ -0,0 +1,22 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare function getApiKeyId(args?: GetApiKeyIdArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getApiKeyId. + */ +export interface GetApiKeyIdArgs { + name?: string; +} +/** + * A collection of values returned by getApiKeyId. + */ +export interface GetApiKeyIdResult { + readonly id: string; + readonly name: string; +} +export declare function getApiKeyIdOutput(args?: GetApiKeyIdOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getApiKeyId. + */ +export interface GetApiKeyIdOutputArgs { + name?: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/getApiKeyId.js b/pulumi-clickhouse/bin/getApiKeyId.js new file mode 100644 index 00000000..57aadfe5 --- /dev/null +++ b/pulumi-clickhouse/bin/getApiKeyId.js @@ -0,0 +1,24 @@ +"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.getApiKeyIdOutput = exports.getApiKeyId = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getApiKeyId(args, opts) { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("clickhouse:index/getApiKeyId:getApiKeyId", { + "name": args.name, + }, opts, utilities.getPackage()); +} +exports.getApiKeyId = getApiKeyId; +function getApiKeyIdOutput(args, opts) { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("clickhouse:index/getApiKeyId:getApiKeyId", { + "name": args.name, + }, opts, utilities.getPackage()); +} +exports.getApiKeyIdOutput = getApiKeyIdOutput; +//# sourceMappingURL=getApiKeyId.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/getApiKeyId.js.map b/pulumi-clickhouse/bin/getApiKeyId.js.map new file mode 100644 index 00000000..da9a7b5c --- /dev/null +++ b/pulumi-clickhouse/bin/getApiKeyId.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getApiKeyId.js","sourceRoot":"","sources":["../getApiKeyId.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,SAAgB,WAAW,CAAC,IAAsB,EAAE,IAA2B;IAC3E,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,0CAA0C,EAAE;QACrE,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,kCAMC;AAgBD,SAAgB,iBAAiB,CAAC,IAA4B,EAAE,IAAiC;IAC7F,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,0CAA0C,EAAE;QAC3E,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,8CAMC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/getPrivateEndpointConfig.d.ts b/pulumi-clickhouse/bin/getPrivateEndpointConfig.d.ts new file mode 100644 index 00000000..fdf771d5 --- /dev/null +++ b/pulumi-clickhouse/bin/getPrivateEndpointConfig.d.ts @@ -0,0 +1,29 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare function getPrivateEndpointConfig(args: GetPrivateEndpointConfigArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getPrivateEndpointConfig. + */ +export interface GetPrivateEndpointConfigArgs { + cloudProvider: string; + region: string; +} +/** + * A collection of values returned by getPrivateEndpointConfig. + */ +export interface GetPrivateEndpointConfigResult { + readonly cloudProvider: string; + readonly endpointServiceId: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly region: string; +} +export declare function getPrivateEndpointConfigOutput(args: GetPrivateEndpointConfigOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getPrivateEndpointConfig. + */ +export interface GetPrivateEndpointConfigOutputArgs { + cloudProvider: pulumi.Input; + region: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/getPrivateEndpointConfig.js b/pulumi-clickhouse/bin/getPrivateEndpointConfig.js new file mode 100644 index 00000000..38022944 --- /dev/null +++ b/pulumi-clickhouse/bin/getPrivateEndpointConfig.js @@ -0,0 +1,24 @@ +"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.getPrivateEndpointConfigOutput = exports.getPrivateEndpointConfig = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getPrivateEndpointConfig(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("clickhouse:index/getPrivateEndpointConfig:getPrivateEndpointConfig", { + "cloudProvider": args.cloudProvider, + "region": args.region, + }, opts, utilities.getPackage()); +} +exports.getPrivateEndpointConfig = getPrivateEndpointConfig; +function getPrivateEndpointConfigOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("clickhouse:index/getPrivateEndpointConfig:getPrivateEndpointConfig", { + "cloudProvider": args.cloudProvider, + "region": args.region, + }, opts, utilities.getPackage()); +} +exports.getPrivateEndpointConfigOutput = getPrivateEndpointConfigOutput; +//# sourceMappingURL=getPrivateEndpointConfig.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/getPrivateEndpointConfig.js.map b/pulumi-clickhouse/bin/getPrivateEndpointConfig.js.map new file mode 100644 index 00000000..5f654e9b --- /dev/null +++ b/pulumi-clickhouse/bin/getPrivateEndpointConfig.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getPrivateEndpointConfig.js","sourceRoot":"","sources":["../getPrivateEndpointConfig.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,SAAgB,wBAAwB,CAAC,IAAkC,EAAE,IAA2B;IACpG,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,oEAAoE,EAAE;QAC/F,eAAe,EAAE,IAAI,CAAC,aAAa;QACnC,QAAQ,EAAE,IAAI,CAAC,MAAM;KACxB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,4DAMC;AAsBD,SAAgB,8BAA8B,CAAC,IAAwC,EAAE,IAAiC;IACtH,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,oEAAoE,EAAE;QACrG,eAAe,EAAE,IAAI,CAAC,aAAa;QACnC,QAAQ,EAAE,IAAI,CAAC,MAAM;KACxB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,wEAMC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/index.d.ts b/pulumi-clickhouse/bin/index.d.ts new file mode 100644 index 00000000..5ff361d9 --- /dev/null +++ b/pulumi-clickhouse/bin/index.d.ts @@ -0,0 +1,22 @@ +export { GetApiKeyIdArgs, GetApiKeyIdResult, GetApiKeyIdOutputArgs } from "./getApiKeyId"; +export declare const getApiKeyId: typeof import("./getApiKeyId").getApiKeyId; +export declare const getApiKeyIdOutput: typeof import("./getApiKeyId").getApiKeyIdOutput; +export { GetPrivateEndpointConfigArgs, GetPrivateEndpointConfigResult, GetPrivateEndpointConfigOutputArgs } from "./getPrivateEndpointConfig"; +export declare const getPrivateEndpointConfig: typeof import("./getPrivateEndpointConfig").getPrivateEndpointConfig; +export declare const getPrivateEndpointConfigOutput: typeof import("./getPrivateEndpointConfig").getPrivateEndpointConfigOutput; +export { PrivateEndpointRegistrationArgs, PrivateEndpointRegistrationState } from "./privateEndpointRegistration"; +export type PrivateEndpointRegistration = import("./privateEndpointRegistration").PrivateEndpointRegistration; +export declare const PrivateEndpointRegistration: typeof import("./privateEndpointRegistration").PrivateEndpointRegistration; +export * from "./provider"; +export { ServiceArgs, ServiceState } from "./service"; +export type Service = import("./service").Service; +export declare const Service: typeof import("./service").Service; +export { ServicePrivateEndpointsAttachmentArgs, ServicePrivateEndpointsAttachmentState } from "./servicePrivateEndpointsAttachment"; +export type ServicePrivateEndpointsAttachment = import("./servicePrivateEndpointsAttachment").ServicePrivateEndpointsAttachment; +export declare const ServicePrivateEndpointsAttachment: typeof import("./servicePrivateEndpointsAttachment").ServicePrivateEndpointsAttachment; +export { ServiceTransparentDataEncryptionKeyAssociationArgs, ServiceTransparentDataEncryptionKeyAssociationState } from "./serviceTransparentDataEncryptionKeyAssociation"; +export type ServiceTransparentDataEncryptionKeyAssociation = import("./serviceTransparentDataEncryptionKeyAssociation").ServiceTransparentDataEncryptionKeyAssociation; +export declare const ServiceTransparentDataEncryptionKeyAssociation: typeof import("./serviceTransparentDataEncryptionKeyAssociation").ServiceTransparentDataEncryptionKeyAssociation; +import * as config from "./config"; +import * as types from "./types"; +export { config, types, }; diff --git a/pulumi-clickhouse/bin/index.js b/pulumi-clickhouse/bin/index.js new file mode 100644 index 00000000..63ce6db6 --- /dev/null +++ b/pulumi-clickhouse/bin/index.js @@ -0,0 +1,73 @@ +"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! *** +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.types = exports.config = exports.ServiceTransparentDataEncryptionKeyAssociation = exports.ServicePrivateEndpointsAttachment = exports.Service = exports.PrivateEndpointRegistration = exports.getPrivateEndpointConfigOutput = exports.getPrivateEndpointConfig = exports.getApiKeyIdOutput = exports.getApiKeyId = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +exports.getApiKeyId = null; +exports.getApiKeyIdOutput = null; +utilities.lazyLoad(exports, ["getApiKeyId", "getApiKeyIdOutput"], () => require("./getApiKeyId")); +exports.getPrivateEndpointConfig = null; +exports.getPrivateEndpointConfigOutput = null; +utilities.lazyLoad(exports, ["getPrivateEndpointConfig", "getPrivateEndpointConfigOutput"], () => require("./getPrivateEndpointConfig")); +exports.PrivateEndpointRegistration = null; +utilities.lazyLoad(exports, ["PrivateEndpointRegistration"], () => require("./privateEndpointRegistration")); +__exportStar(require("./provider"), exports); +const provider_1 = require("./provider"); +exports.Service = null; +utilities.lazyLoad(exports, ["Service"], () => require("./service")); +exports.ServicePrivateEndpointsAttachment = null; +utilities.lazyLoad(exports, ["ServicePrivateEndpointsAttachment"], () => require("./servicePrivateEndpointsAttachment")); +exports.ServiceTransparentDataEncryptionKeyAssociation = null; +utilities.lazyLoad(exports, ["ServiceTransparentDataEncryptionKeyAssociation"], () => require("./serviceTransparentDataEncryptionKeyAssociation")); +// Export sub-modules: +const config = require("./config"); +exports.config = config; +const types = require("./types"); +exports.types = types; +const _module = { + version: utilities.getVersion(), + construct: (name, type, urn) => { + switch (type) { + case "clickhouse:index/privateEndpointRegistration:PrivateEndpointRegistration": + return new exports.PrivateEndpointRegistration(name, undefined, { urn }); + case "clickhouse:index/service:Service": + return new exports.Service(name, undefined, { urn }); + case "clickhouse:index/servicePrivateEndpointsAttachment:ServicePrivateEndpointsAttachment": + return new exports.ServicePrivateEndpointsAttachment(name, undefined, { urn }); + case "clickhouse:index/serviceTransparentDataEncryptionKeyAssociation:ServiceTransparentDataEncryptionKeyAssociation": + return new exports.ServiceTransparentDataEncryptionKeyAssociation(name, undefined, { urn }); + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("clickhouse", "index/privateEndpointRegistration", _module); +pulumi.runtime.registerResourceModule("clickhouse", "index/service", _module); +pulumi.runtime.registerResourceModule("clickhouse", "index/servicePrivateEndpointsAttachment", _module); +pulumi.runtime.registerResourceModule("clickhouse", "index/serviceTransparentDataEncryptionKeyAssociation", _module); +pulumi.runtime.registerResourcePackage("clickhouse", { + version: utilities.getVersion(), + constructProvider: (name, type, urn) => { + if (type !== "pulumi:providers:clickhouse") { + throw new Error(`unknown provider type ${type}`); + } + return new provider_1.Provider(name, undefined, { urn }); + }, +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/index.js.map b/pulumi-clickhouse/bin/index.js.map new file mode 100644 index 00000000..76f98cbc --- /dev/null +++ b/pulumi-clickhouse/bin/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/package.json b/pulumi-clickhouse/bin/package.json new file mode 100644 index 00000000..ee5092f4 --- /dev/null +++ b/pulumi-clickhouse/bin/package.json @@ -0,0 +1,23 @@ +{ + "name": "@bpinternal/pulumi-clickhouse", + "version": "3.10.0", + "description": "Pulumi SDK for clickhouse/clickhouse terraform provider", + "main": "bin/index.js", + "types": "bin/index.d.ts", + "repository": { + "url": "https://github.com/botpress/packages" + }, + "author": "Botpress, Inc.", + "license": "MIT", + "scripts": { + "build": "tsc" + }, + "dependencies": { + "@pulumi/pulumi": "^3.142.0", + "async-mutex": "^0.5.0" + }, + "devDependencies": { + "@types/node": "18.16.0", + "typescript": "5.4.5" + } +} diff --git a/pulumi-clickhouse/bin/privateEndpointRegistration.d.ts b/pulumi-clickhouse/bin/privateEndpointRegistration.d.ts new file mode 100644 index 00000000..a0a7a321 --- /dev/null +++ b/pulumi-clickhouse/bin/privateEndpointRegistration.d.ts @@ -0,0 +1,84 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class PrivateEndpointRegistration extends pulumi.CustomResource { + /** + * Get an existing PrivateEndpointRegistration 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: string, id: pulumi.Input, state?: PrivateEndpointRegistrationState, opts?: pulumi.CustomResourceOptions): PrivateEndpointRegistration; + /** + * Returns true if the given object is an instance of PrivateEndpointRegistration. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is PrivateEndpointRegistration; + /** + * Cloud provider of the private endpoint ID + */ + readonly cloudProvider: pulumi.Output; + /** + * Description of the private endpoint + */ + readonly description: pulumi.Output; + /** + * ID of the private endpoint (replaces deprecated attribute `id`) + */ + readonly privateEndpointId: pulumi.Output; + /** + * Region of the private endpoint + */ + readonly region: pulumi.Output; + /** + * Create a PrivateEndpointRegistration resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PrivateEndpointRegistrationArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering PrivateEndpointRegistration resources. + */ +export interface PrivateEndpointRegistrationState { + /** + * Cloud provider of the private endpoint ID + */ + cloudProvider?: pulumi.Input; + /** + * Description of the private endpoint + */ + description?: pulumi.Input; + /** + * ID of the private endpoint (replaces deprecated attribute `id`) + */ + privateEndpointId?: pulumi.Input; + /** + * Region of the private endpoint + */ + region?: pulumi.Input; +} +/** + * The set of arguments for constructing a PrivateEndpointRegistration resource. + */ +export interface PrivateEndpointRegistrationArgs { + /** + * Cloud provider of the private endpoint ID + */ + cloudProvider: pulumi.Input; + /** + * Description of the private endpoint + */ + description?: pulumi.Input; + /** + * ID of the private endpoint (replaces deprecated attribute `id`) + */ + privateEndpointId: pulumi.Input; + /** + * Region of the private endpoint + */ + region: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/privateEndpointRegistration.js b/pulumi-clickhouse/bin/privateEndpointRegistration.js new file mode 100644 index 00000000..c4127247 --- /dev/null +++ b/pulumi-clickhouse/bin/privateEndpointRegistration.js @@ -0,0 +1,64 @@ +"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.PrivateEndpointRegistration = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class PrivateEndpointRegistration extends pulumi.CustomResource { + /** + * Get an existing PrivateEndpointRegistration 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 PrivateEndpointRegistration(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of PrivateEndpointRegistration. 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'] === PrivateEndpointRegistration.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["description"] = state?.description; + resourceInputs["privateEndpointId"] = state?.privateEndpointId; + resourceInputs["region"] = state?.region; + } + else { + const args = argsOrState; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.privateEndpointId === undefined && !opts.urn) { + throw new Error("Missing required property 'privateEndpointId'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["description"] = args?.description; + resourceInputs["privateEndpointId"] = args?.privateEndpointId; + resourceInputs["region"] = args?.region; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(PrivateEndpointRegistration.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.PrivateEndpointRegistration = PrivateEndpointRegistration; +/** @internal */ +PrivateEndpointRegistration.__pulumiType = 'clickhouse:index/privateEndpointRegistration:PrivateEndpointRegistration'; +//# sourceMappingURL=privateEndpointRegistration.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/privateEndpointRegistration.js.map b/pulumi-clickhouse/bin/privateEndpointRegistration.js.map new file mode 100644 index 00000000..158d8b9b --- /dev/null +++ b/pulumi-clickhouse/bin/privateEndpointRegistration.js.map @@ -0,0 +1 @@ +{"version":3,"file":"privateEndpointRegistration.js","sourceRoot":"","sources":["../privateEndpointRegistration.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,2BAA4B,SAAQ,MAAM,CAAC,cAAc;IAClE;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAwC,EAAE,IAAmC;QACtI,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,2BAA2B,CAAC,YAAY,CAAC;IAC5E,CAAC;IA2BD,YAAY,IAAY,EAAE,WAAgF,EAAE,IAAmC;QAC3I,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAA2D,CAAC;YAC1E,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;YAC/D,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAA0D,CAAC;YACxE,IAAI,IAAI,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC1D,CAAC;YACD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;YAClD,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;YAC9D,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;QAC5C,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,2BAA2B,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9H,CAAC;;AAhFL,kEAiFC;AAnEG,gBAAgB;AACO,wCAAY,GAAG,0EAA0E,CAAC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/provider.d.ts b/pulumi-clickhouse/bin/provider.d.ts new file mode 100644 index 00000000..0a8b61f7 --- /dev/null +++ b/pulumi-clickhouse/bin/provider.d.ts @@ -0,0 +1,79 @@ +import * as pulumi from "@pulumi/pulumi"; +/** + * The provider type for the clickhouse package. By default, resources use package-wide configuration + * settings, however an explicit `Provider` instance may be created and passed during resource + * construction to achieve fine-grained programmatic control over provider settings. See the + * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + */ +export declare class Provider extends pulumi.ProviderResource { + /** + * Returns true if the given object is an instance of Provider. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Provider; + /** + * API URL of the ClickHouse OpenAPI the provider will interact with. Alternatively, can be configured using the `CLICKHOUSE_API_URL` environment variable. Only specify if you have a specific deployment of the ClickHouse OpenAPI you want to run against. + */ + readonly apiUrl: pulumi.Output; + /** + * ID of the organization the provider will create services under. Alternatively, can be configured using the `CLICKHOUSE_ORG_ID` environment variable. + */ + readonly organizationId: pulumi.Output; + /** + * Token key of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_KEY` environment variable. + */ + readonly tokenKey: pulumi.Output; + /** + * Token secret of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_SECRET` environment variable. + */ + readonly tokenSecret: pulumi.Output; + /** + * Create a Provider resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions); + /** + * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider. + */ + terraformConfig(): pulumi.Output<{ + [key: string]: any; + }>; +} +/** + * The set of arguments for constructing a Provider resource. + */ +export interface ProviderArgs { + /** + * API URL of the ClickHouse OpenAPI the provider will interact with. Alternatively, can be configured using the `CLICKHOUSE_API_URL` environment variable. Only specify if you have a specific deployment of the ClickHouse OpenAPI you want to run against. + */ + apiUrl?: pulumi.Input; + /** + * ID of the organization the provider will create services under. Alternatively, can be configured using the `CLICKHOUSE_ORG_ID` environment variable. + */ + organizationId?: pulumi.Input; + /** + * Timeout in seconds for the HTTP client. + */ + timeoutSeconds?: pulumi.Input; + /** + * Token key of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_KEY` environment variable. + */ + tokenKey?: pulumi.Input; + /** + * Token secret of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_SECRET` environment variable. + */ + tokenSecret?: pulumi.Input; +} +export declare namespace Provider { + /** + * The results of the Provider.terraformConfig method. + */ + interface TerraformConfigResult { + readonly result: { + [key: string]: any; + }; + } +} diff --git a/pulumi-clickhouse/bin/provider.js b/pulumi-clickhouse/bin/provider.js new file mode 100644 index 00000000..08827692 --- /dev/null +++ b/pulumi-clickhouse/bin/provider.js @@ -0,0 +1,60 @@ +"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.Provider = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +/** + * The provider type for the clickhouse package. By default, resources use package-wide configuration + * settings, however an explicit `Provider` instance may be created and passed during resource + * construction to achieve fine-grained programmatic control over provider settings. See the + * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + */ +class Provider extends pulumi.ProviderResource { + /** + * Returns true if the given object is an instance of Provider. 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'] === "pulumi:providers:" + Provider.__pulumiType; + } + /** + * Create a Provider resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name, args, opts) { + let resourceInputs = {}; + opts = opts || {}; + { + resourceInputs["apiUrl"] = args?.apiUrl; + resourceInputs["organizationId"] = args?.organizationId; + resourceInputs["timeoutSeconds"] = pulumi.output(args?.timeoutSeconds).apply(JSON.stringify); + resourceInputs["tokenKey"] = args?.tokenKey; + resourceInputs["tokenSecret"] = args?.tokenSecret ? pulumi.secret(args.tokenSecret) : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["tokenSecret"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Provider.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } + /** + * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider. + */ + terraformConfig() { + const result = pulumi.runtime.call("pulumi:providers:clickhouse/terraformConfig", { + "__self__": this, + }, this, utilities.getPackage()); + return result.result; + } +} +exports.Provider = Provider; +/** @internal */ +Provider.__pulumiType = 'clickhouse'; +//# sourceMappingURL=provider.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/provider.js.map b/pulumi-clickhouse/bin/provider.js.map new file mode 100644 index 00000000..0c734fb6 --- /dev/null +++ b/pulumi-clickhouse/bin/provider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,MAAM,CAAC,gBAAgB;IAIjD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/E,CAAC;IAmBD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAmB,EAAE,IAA6B;QACxE,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,CAAC;YACG,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7F,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;YAC5C,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED;;OAEG;IACH,eAAe;QACX,MAAM,MAAM,GAAkD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE;YAC7H,UAAU,EAAE,IAAI;SACnB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;;AA/DL,4BAgEC;AA/DG,gBAAgB;AACO,qBAAY,GAAG,YAAY,CAAC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/service.d.ts b/pulumi-clickhouse/bin/service.d.ts new file mode 100644 index 00000000..f9365d21 --- /dev/null +++ b/pulumi-clickhouse/bin/service.d.ts @@ -0,0 +1,452 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class Service extends pulumi.CustomResource { + /** + * Get an existing Service 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: string, id: pulumi.Input, state?: ServiceState, opts?: pulumi.CustomResourceOptions): Service; + /** + * Returns true if the given object is an instance of Service. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Service; + /** + * Configuration of service backup settings. + */ + readonly backupConfiguration: pulumi.Output; + /** + * ID of the backup to restore when creating new service. If specified, the service will be created as a restore operation + */ + readonly backupId: pulumi.Output; + /** + * BYOC ID related to the cloud provider account you want to create this service into. + */ + readonly byocId: pulumi.Output; + /** + * Cloud provider ('aws', 'gcp', or 'azure') in which the service is deployed in. + */ + readonly cloudProvider: pulumi.Output; + /** + * Compliance type of the service. Can be 'hipaa', 'pci'. Required for organizations that wish to deploy their services in the hipaa/pci compliant environment. NOTE: hipaa/pci compliance should be enabled for your ClickHouse organization before using this field. + */ + readonly complianceType: pulumi.Output; + /** + * Double SHA1 hash of password for connecting with the MySQL protocol. Cannot be specified if `password` or `password_wo` is specified. + */ + readonly doubleSha1PasswordHash: pulumi.Output; + /** + * Enable core dumps for the service. + */ + readonly enableCoreDumps: pulumi.Output; + /** + * Custom role identifier ARN. + */ + readonly encryptionAssumedRoleIdentifier: pulumi.Output; + /** + * Custom encryption key ARN. + */ + readonly encryptionKey: pulumi.Output; + /** + * Allow to enable and configure additional endpoints (read protocols) to expose on the ClickHouse service. + */ + readonly endpoints: pulumi.Output; + /** + * IAM role used for accessing objects in s3. + */ + readonly iamRole: pulumi.Output; + /** + * When set to true the service is allowed to scale down to zero when idle. + */ + readonly idleScaling: pulumi.Output; + /** + * Set minimum idling timeout (in minutes). Must be greater than or equal to 5 minutes. Must be set if idle_scaling is enabled. + */ + readonly idleTimeoutMinutes: pulumi.Output; + /** + * List of IP addresses allowed to access the service. + */ + readonly ipAccesses: pulumi.Output; + /** + * If true, it indicates this is a primary service using its own data. If false it means this service is a secondary service, thus using data from a warehouse. + */ + readonly isPrimary: pulumi.Output; + /** + * Maximum memory of a single replica during auto-scaling in GiB. + */ + readonly maxReplicaMemoryGb: pulumi.Output; + /** + * Maximum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + readonly maxTotalMemoryGb: pulumi.Output; + /** + * Minimum memory of a single replica during auto-scaling in GiB. + */ + readonly minReplicaMemoryGb: pulumi.Output; + /** + * Minimum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + readonly minTotalMemoryGb: pulumi.Output; + /** + * User defined identifier for the service. + */ + readonly name: pulumi.Output; + /** + * Number of replicas for the service. + */ + readonly numReplicas: pulumi.Output; + /** + * Password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + readonly password: pulumi.Output; + /** + * SHA256 hash of password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + readonly passwordHash: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this to trigger a password update when using password_wo. + */ + readonly passwordWoVersion: pulumi.Output; + /** + * Service config for private endpoints + */ + readonly privateEndpointConfig: pulumi.Output; + /** + * Configuration of the query API endpoints feature. + */ + readonly queryApiEndpoints: pulumi.Output; + /** + * Indicates if this service should be read only. Only allowed for secondary services, those which share data with another service (i.e. when `warehouse_id` field is set). + */ + readonly readonly: pulumi.Output; + /** + * Region within the cloud provider in which the service is deployed in. + */ + readonly region: pulumi.Output; + /** + * Release channel to use for this service. Can be 'default', 'fast' or 'slow'. + */ + readonly releaseChannel: pulumi.Output; + /** + * Tags associated with the service as key-value pairs. + */ + readonly tags: pulumi.Output<{ + [key: string]: string; + } | undefined>; + /** + * Tier of the service: 'development', 'production'. Required for organizations using the Legacy ClickHouse Cloud Tiers, must be omitted for organizations using the new ClickHouse Cloud Tiers. + */ + readonly tier: pulumi.Output; + /** + * Configuration of the Transparent Data Encryption (TDE) feature. Requires an organization with the Enterprise plan. + */ + readonly transparentDataEncryption: pulumi.Output; + /** + * Set it to the 'warehouse_id' attribute of another service to share the data with it. The service must be in the same cloud and region. + */ + readonly warehouseId: pulumi.Output; + /** + * Create a Service resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServiceArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Service resources. + */ +export interface ServiceState { + /** + * Configuration of service backup settings. + */ + backupConfiguration?: pulumi.Input; + /** + * ID of the backup to restore when creating new service. If specified, the service will be created as a restore operation + */ + backupId?: pulumi.Input; + /** + * BYOC ID related to the cloud provider account you want to create this service into. + */ + byocId?: pulumi.Input; + /** + * Cloud provider ('aws', 'gcp', or 'azure') in which the service is deployed in. + */ + cloudProvider?: pulumi.Input; + /** + * Compliance type of the service. Can be 'hipaa', 'pci'. Required for organizations that wish to deploy their services in the hipaa/pci compliant environment. NOTE: hipaa/pci compliance should be enabled for your ClickHouse organization before using this field. + */ + complianceType?: pulumi.Input; + /** + * Double SHA1 hash of password for connecting with the MySQL protocol. Cannot be specified if `password` or `password_wo` is specified. + */ + doubleSha1PasswordHash?: pulumi.Input; + /** + * Enable core dumps for the service. + */ + enableCoreDumps?: pulumi.Input; + /** + * Custom role identifier ARN. + */ + encryptionAssumedRoleIdentifier?: pulumi.Input; + /** + * Custom encryption key ARN. + */ + encryptionKey?: pulumi.Input; + /** + * Allow to enable and configure additional endpoints (read protocols) to expose on the ClickHouse service. + */ + endpoints?: pulumi.Input; + /** + * IAM role used for accessing objects in s3. + */ + iamRole?: pulumi.Input; + /** + * When set to true the service is allowed to scale down to zero when idle. + */ + idleScaling?: pulumi.Input; + /** + * Set minimum idling timeout (in minutes). Must be greater than or equal to 5 minutes. Must be set if idle_scaling is enabled. + */ + idleTimeoutMinutes?: pulumi.Input; + /** + * List of IP addresses allowed to access the service. + */ + ipAccesses?: pulumi.Input[]>; + /** + * If true, it indicates this is a primary service using its own data. If false it means this service is a secondary service, thus using data from a warehouse. + */ + isPrimary?: pulumi.Input; + /** + * Maximum memory of a single replica during auto-scaling in GiB. + */ + maxReplicaMemoryGb?: pulumi.Input; + /** + * Maximum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + maxTotalMemoryGb?: pulumi.Input; + /** + * Minimum memory of a single replica during auto-scaling in GiB. + */ + minReplicaMemoryGb?: pulumi.Input; + /** + * Minimum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + minTotalMemoryGb?: pulumi.Input; + /** + * User defined identifier for the service. + */ + name?: pulumi.Input; + /** + * Number of replicas for the service. + */ + numReplicas?: pulumi.Input; + /** + * Password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + password?: pulumi.Input; + /** + * SHA256 hash of password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + passwordHash?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * Service config for private endpoints + */ + privateEndpointConfig?: pulumi.Input; + /** + * Configuration of the query API endpoints feature. + */ + queryApiEndpoints?: pulumi.Input; + /** + * Indicates if this service should be read only. Only allowed for secondary services, those which share data with another service (i.e. when `warehouse_id` field is set). + */ + readonly?: pulumi.Input; + /** + * Region within the cloud provider in which the service is deployed in. + */ + region?: pulumi.Input; + /** + * Release channel to use for this service. Can be 'default', 'fast' or 'slow'. + */ + releaseChannel?: pulumi.Input; + /** + * Tags associated with the service as key-value pairs. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + /** + * Tier of the service: 'development', 'production'. Required for organizations using the Legacy ClickHouse Cloud Tiers, must be omitted for organizations using the new ClickHouse Cloud Tiers. + */ + tier?: pulumi.Input; + /** + * Configuration of the Transparent Data Encryption (TDE) feature. Requires an organization with the Enterprise plan. + */ + transparentDataEncryption?: pulumi.Input; + /** + * Set it to the 'warehouse_id' attribute of another service to share the data with it. The service must be in the same cloud and region. + */ + warehouseId?: pulumi.Input; +} +/** + * The set of arguments for constructing a Service resource. + */ +export interface ServiceArgs { + /** + * Configuration of service backup settings. + */ + backupConfiguration?: pulumi.Input; + /** + * ID of the backup to restore when creating new service. If specified, the service will be created as a restore operation + */ + backupId?: pulumi.Input; + /** + * BYOC ID related to the cloud provider account you want to create this service into. + */ + byocId?: pulumi.Input; + /** + * Cloud provider ('aws', 'gcp', or 'azure') in which the service is deployed in. + */ + cloudProvider: pulumi.Input; + /** + * Compliance type of the service. Can be 'hipaa', 'pci'. Required for organizations that wish to deploy their services in the hipaa/pci compliant environment. NOTE: hipaa/pci compliance should be enabled for your ClickHouse organization before using this field. + */ + complianceType?: pulumi.Input; + /** + * Double SHA1 hash of password for connecting with the MySQL protocol. Cannot be specified if `password` or `password_wo` is specified. + */ + doubleSha1PasswordHash?: pulumi.Input; + /** + * Enable core dumps for the service. + */ + enableCoreDumps?: pulumi.Input; + /** + * Custom role identifier ARN. + */ + encryptionAssumedRoleIdentifier?: pulumi.Input; + /** + * Custom encryption key ARN. + */ + encryptionKey?: pulumi.Input; + /** + * Allow to enable and configure additional endpoints (read protocols) to expose on the ClickHouse service. + */ + endpoints?: pulumi.Input; + /** + * When set to true the service is allowed to scale down to zero when idle. + */ + idleScaling?: pulumi.Input; + /** + * Set minimum idling timeout (in minutes). Must be greater than or equal to 5 minutes. Must be set if idle_scaling is enabled. + */ + idleTimeoutMinutes?: pulumi.Input; + /** + * List of IP addresses allowed to access the service. + */ + ipAccesses: pulumi.Input[]>; + /** + * Maximum memory of a single replica during auto-scaling in GiB. + */ + maxReplicaMemoryGb?: pulumi.Input; + /** + * Maximum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + maxTotalMemoryGb?: pulumi.Input; + /** + * Minimum memory of a single replica during auto-scaling in GiB. + */ + minReplicaMemoryGb?: pulumi.Input; + /** + * Minimum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + minTotalMemoryGb?: pulumi.Input; + /** + * User defined identifier for the service. + */ + name?: pulumi.Input; + /** + * Number of replicas for the service. + */ + numReplicas?: pulumi.Input; + /** + * Password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + password?: pulumi.Input; + /** + * SHA256 hash of password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + passwordHash?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * Configuration of the query API endpoints feature. + */ + queryApiEndpoints?: pulumi.Input; + /** + * Indicates if this service should be read only. Only allowed for secondary services, those which share data with another service (i.e. when `warehouse_id` field is set). + */ + readonly?: pulumi.Input; + /** + * Region within the cloud provider in which the service is deployed in. + */ + region: pulumi.Input; + /** + * Release channel to use for this service. Can be 'default', 'fast' or 'slow'. + */ + releaseChannel?: pulumi.Input; + /** + * Tags associated with the service as key-value pairs. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + /** + * Tier of the service: 'development', 'production'. Required for organizations using the Legacy ClickHouse Cloud Tiers, must be omitted for organizations using the new ClickHouse Cloud Tiers. + */ + tier?: pulumi.Input; + /** + * Configuration of the Transparent Data Encryption (TDE) feature. Requires an organization with the Enterprise plan. + */ + transparentDataEncryption?: pulumi.Input; + /** + * Set it to the 'warehouse_id' attribute of another service to share the data with it. The service must be in the same cloud and region. + */ + warehouseId?: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/service.js b/pulumi-clickhouse/bin/service.js new file mode 100644 index 00000000..2afedd19 --- /dev/null +++ b/pulumi-clickhouse/bin/service.js @@ -0,0 +1,126 @@ +"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.Service = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Service extends pulumi.CustomResource { + /** + * Get an existing Service 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 Service(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Service. 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'] === Service.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["backupConfiguration"] = state?.backupConfiguration; + resourceInputs["backupId"] = state?.backupId; + resourceInputs["byocId"] = state?.byocId; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["complianceType"] = state?.complianceType; + resourceInputs["doubleSha1PasswordHash"] = state?.doubleSha1PasswordHash; + resourceInputs["enableCoreDumps"] = state?.enableCoreDumps; + resourceInputs["encryptionAssumedRoleIdentifier"] = state?.encryptionAssumedRoleIdentifier; + resourceInputs["encryptionKey"] = state?.encryptionKey; + resourceInputs["endpoints"] = state?.endpoints; + resourceInputs["iamRole"] = state?.iamRole; + resourceInputs["idleScaling"] = state?.idleScaling; + resourceInputs["idleTimeoutMinutes"] = state?.idleTimeoutMinutes; + resourceInputs["ipAccesses"] = state?.ipAccesses; + resourceInputs["isPrimary"] = state?.isPrimary; + resourceInputs["maxReplicaMemoryGb"] = state?.maxReplicaMemoryGb; + resourceInputs["maxTotalMemoryGb"] = state?.maxTotalMemoryGb; + resourceInputs["minReplicaMemoryGb"] = state?.minReplicaMemoryGb; + resourceInputs["minTotalMemoryGb"] = state?.minTotalMemoryGb; + resourceInputs["name"] = state?.name; + resourceInputs["numReplicas"] = state?.numReplicas; + resourceInputs["password"] = state?.password; + resourceInputs["passwordHash"] = state?.passwordHash; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + resourceInputs["privateEndpointConfig"] = state?.privateEndpointConfig; + resourceInputs["queryApiEndpoints"] = state?.queryApiEndpoints; + resourceInputs["readonly"] = state?.readonly; + resourceInputs["region"] = state?.region; + resourceInputs["releaseChannel"] = state?.releaseChannel; + resourceInputs["tags"] = state?.tags; + resourceInputs["tier"] = state?.tier; + resourceInputs["transparentDataEncryption"] = state?.transparentDataEncryption; + resourceInputs["warehouseId"] = state?.warehouseId; + } + else { + const args = argsOrState; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.ipAccesses === undefined && !opts.urn) { + throw new Error("Missing required property 'ipAccesses'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + resourceInputs["backupConfiguration"] = args?.backupConfiguration; + resourceInputs["backupId"] = args?.backupId; + resourceInputs["byocId"] = args?.byocId; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["complianceType"] = args?.complianceType; + resourceInputs["doubleSha1PasswordHash"] = args?.doubleSha1PasswordHash ? pulumi.secret(args.doubleSha1PasswordHash) : undefined; + resourceInputs["enableCoreDumps"] = args?.enableCoreDumps; + resourceInputs["encryptionAssumedRoleIdentifier"] = args?.encryptionAssumedRoleIdentifier; + resourceInputs["encryptionKey"] = args?.encryptionKey; + resourceInputs["endpoints"] = args?.endpoints; + resourceInputs["idleScaling"] = args?.idleScaling; + resourceInputs["idleTimeoutMinutes"] = args?.idleTimeoutMinutes; + resourceInputs["ipAccesses"] = args?.ipAccesses; + resourceInputs["maxReplicaMemoryGb"] = args?.maxReplicaMemoryGb; + resourceInputs["maxTotalMemoryGb"] = args?.maxTotalMemoryGb; + resourceInputs["minReplicaMemoryGb"] = args?.minReplicaMemoryGb; + resourceInputs["minTotalMemoryGb"] = args?.minTotalMemoryGb; + resourceInputs["name"] = args?.name; + resourceInputs["numReplicas"] = args?.numReplicas; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordHash"] = args?.passwordHash ? pulumi.secret(args.passwordHash) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + resourceInputs["queryApiEndpoints"] = args?.queryApiEndpoints; + resourceInputs["readonly"] = args?.readonly; + resourceInputs["region"] = args?.region; + resourceInputs["releaseChannel"] = args?.releaseChannel; + resourceInputs["tags"] = args?.tags; + resourceInputs["tier"] = args?.tier; + resourceInputs["transparentDataEncryption"] = args?.transparentDataEncryption; + resourceInputs["warehouseId"] = args?.warehouseId; + resourceInputs["iamRole"] = undefined /*out*/; + resourceInputs["isPrimary"] = undefined /*out*/; + resourceInputs["privateEndpointConfig"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["doubleSha1PasswordHash", "password", "passwordHash", "passwordWo"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Service.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Service = Service; +/** @internal */ +Service.__pulumiType = 'clickhouse:index/service:Service'; +//# sourceMappingURL=service.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/service.js.map b/pulumi-clickhouse/bin/service.js.map new file mode 100644 index 00000000..0c1ba445 --- /dev/null +++ b/pulumi-clickhouse/bin/service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"service.js","sourceRoot":"","sources":["../service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.d.ts b/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.d.ts new file mode 100644 index 00000000..c8bdc835 --- /dev/null +++ b/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.d.ts @@ -0,0 +1,60 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class ServicePrivateEndpointsAttachment extends pulumi.CustomResource { + /** + * Get an existing ServicePrivateEndpointsAttachment 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: string, id: pulumi.Input, state?: ServicePrivateEndpointsAttachmentState, opts?: pulumi.CustomResourceOptions): ServicePrivateEndpointsAttachment; + /** + * Returns true if the given object is an instance of ServicePrivateEndpointsAttachment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is ServicePrivateEndpointsAttachment; + /** + * List of private endpoint IDs + */ + readonly privateEndpointIds: pulumi.Output; + /** + * ClickHouse Service ID + */ + readonly serviceId: pulumi.Output; + /** + * Create a ServicePrivateEndpointsAttachment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ServicePrivateEndpointsAttachmentArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering ServicePrivateEndpointsAttachment resources. + */ +export interface ServicePrivateEndpointsAttachmentState { + /** + * List of private endpoint IDs + */ + privateEndpointIds?: pulumi.Input[]>; + /** + * ClickHouse Service ID + */ + serviceId?: pulumi.Input; +} +/** + * The set of arguments for constructing a ServicePrivateEndpointsAttachment resource. + */ +export interface ServicePrivateEndpointsAttachmentArgs { + /** + * List of private endpoint IDs + */ + privateEndpointIds?: pulumi.Input[]>; + /** + * ClickHouse Service ID + */ + serviceId?: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.js b/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.js new file mode 100644 index 00000000..d130565c --- /dev/null +++ b/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.js @@ -0,0 +1,51 @@ +"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.ServicePrivateEndpointsAttachment = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class ServicePrivateEndpointsAttachment extends pulumi.CustomResource { + /** + * Get an existing ServicePrivateEndpointsAttachment 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 ServicePrivateEndpointsAttachment(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of ServicePrivateEndpointsAttachment. 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'] === ServicePrivateEndpointsAttachment.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["privateEndpointIds"] = state?.privateEndpointIds; + resourceInputs["serviceId"] = state?.serviceId; + } + else { + const args = argsOrState; + resourceInputs["privateEndpointIds"] = args?.privateEndpointIds; + resourceInputs["serviceId"] = args?.serviceId; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServicePrivateEndpointsAttachment.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.ServicePrivateEndpointsAttachment = ServicePrivateEndpointsAttachment; +/** @internal */ +ServicePrivateEndpointsAttachment.__pulumiType = 'clickhouse:index/servicePrivateEndpointsAttachment:ServicePrivateEndpointsAttachment'; +//# sourceMappingURL=servicePrivateEndpointsAttachment.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.js.map b/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.js.map new file mode 100644 index 00000000..50039d5d --- /dev/null +++ b/pulumi-clickhouse/bin/servicePrivateEndpointsAttachment.js.map @@ -0,0 +1 @@ +{"version":3,"file":"servicePrivateEndpointsAttachment.js","sourceRoot":"","sources":["../servicePrivateEndpointsAttachment.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,iCAAkC,SAAQ,MAAM,CAAC,cAAc;IACxE;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA8C,EAAE,IAAmC;QAC5I,OAAO,IAAI,iCAAiC,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,iCAAiC,CAAC,YAAY,CAAC;IAClF,CAAC;IAmBD,YAAY,IAAY,EAAE,WAA4F,EAAE,IAAmC;QACvJ,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAAiE,CAAC;YAChF,cAAc,CAAC,oBAAoB,CAAC,GAAG,KAAK,EAAE,kBAAkB,CAAC;YACjE,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAAgE,CAAC;YAC9E,cAAc,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC;YAChE,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;QAClD,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,iCAAiC,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACpI,CAAC;;AA3DL,8EA4DC;AA9CG,gBAAgB;AACO,8CAAY,GAAG,sFAAsF,CAAC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.d.ts b/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.d.ts new file mode 100644 index 00000000..46681e6e --- /dev/null +++ b/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.d.ts @@ -0,0 +1,60 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class ServiceTransparentDataEncryptionKeyAssociation extends pulumi.CustomResource { + /** + * Get an existing ServiceTransparentDataEncryptionKeyAssociation 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: string, id: pulumi.Input, state?: ServiceTransparentDataEncryptionKeyAssociationState, opts?: pulumi.CustomResourceOptions): ServiceTransparentDataEncryptionKeyAssociation; + /** + * Returns true if the given object is an instance of ServiceTransparentDataEncryptionKeyAssociation. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is ServiceTransparentDataEncryptionKeyAssociation; + /** + * ID of the Encryption key to use for data encryption. Must be an ARN for AWS services or a Key Resource Path for GCP services. + */ + readonly keyId: pulumi.Output; + /** + * ClickHouse Service ID + */ + readonly serviceId: pulumi.Output; + /** + * Create a ServiceTransparentDataEncryptionKeyAssociation resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServiceTransparentDataEncryptionKeyAssociationArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering ServiceTransparentDataEncryptionKeyAssociation resources. + */ +export interface ServiceTransparentDataEncryptionKeyAssociationState { + /** + * ID of the Encryption key to use for data encryption. Must be an ARN for AWS services or a Key Resource Path for GCP services. + */ + keyId?: pulumi.Input; + /** + * ClickHouse Service ID + */ + serviceId?: pulumi.Input; +} +/** + * The set of arguments for constructing a ServiceTransparentDataEncryptionKeyAssociation resource. + */ +export interface ServiceTransparentDataEncryptionKeyAssociationArgs { + /** + * ID of the Encryption key to use for data encryption. Must be an ARN for AWS services or a Key Resource Path for GCP services. + */ + keyId: pulumi.Input; + /** + * ClickHouse Service ID + */ + serviceId: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.js b/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.js new file mode 100644 index 00000000..7f88b8ca --- /dev/null +++ b/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.js @@ -0,0 +1,57 @@ +"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.ServiceTransparentDataEncryptionKeyAssociation = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class ServiceTransparentDataEncryptionKeyAssociation extends pulumi.CustomResource { + /** + * Get an existing ServiceTransparentDataEncryptionKeyAssociation 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 ServiceTransparentDataEncryptionKeyAssociation(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of ServiceTransparentDataEncryptionKeyAssociation. 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'] === ServiceTransparentDataEncryptionKeyAssociation.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["keyId"] = state?.keyId; + resourceInputs["serviceId"] = state?.serviceId; + } + else { + const args = argsOrState; + if (args?.keyId === undefined && !opts.urn) { + throw new Error("Missing required property 'keyId'"); + } + if (args?.serviceId === undefined && !opts.urn) { + throw new Error("Missing required property 'serviceId'"); + } + resourceInputs["keyId"] = args?.keyId; + resourceInputs["serviceId"] = args?.serviceId; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServiceTransparentDataEncryptionKeyAssociation.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.ServiceTransparentDataEncryptionKeyAssociation = ServiceTransparentDataEncryptionKeyAssociation; +/** @internal */ +ServiceTransparentDataEncryptionKeyAssociation.__pulumiType = 'clickhouse:index/serviceTransparentDataEncryptionKeyAssociation:ServiceTransparentDataEncryptionKeyAssociation'; +//# sourceMappingURL=serviceTransparentDataEncryptionKeyAssociation.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.js.map b/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.js.map new file mode 100644 index 00000000..2c2b7943 --- /dev/null +++ b/pulumi-clickhouse/bin/serviceTransparentDataEncryptionKeyAssociation.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serviceTransparentDataEncryptionKeyAssociation.js","sourceRoot":"","sources":["../serviceTransparentDataEncryptionKeyAssociation.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,8CAA+C,SAAQ,MAAM,CAAC,cAAc;IACrF;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA2D,EAAE,IAAmC;QACzJ,OAAO,IAAI,8CAA8C,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,8CAA8C,CAAC,YAAY,CAAC;IAC/F,CAAC;IAmBD,YAAY,IAAY,EAAE,WAAsH,EAAE,IAAmC;QACjL,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAA8E,CAAC;YAC7F,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAA6E,CAAC;YAC3F,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D,CAAC;YACD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;QAClD,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,8CAA8C,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACjJ,CAAC;;AAjEL,wGAkEC;AApDG,gBAAgB;AACO,2DAAY,GAAG,gHAAgH,CAAC"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/types/index.d.ts b/pulumi-clickhouse/bin/types/index.d.ts new file mode 100644 index 00000000..81efd51f --- /dev/null +++ b/pulumi-clickhouse/bin/types/index.d.ts @@ -0,0 +1,3 @@ +import * as input from "./input"; +import * as output from "./output"; +export { input, output, }; diff --git a/pulumi-clickhouse/bin/types/index.js b/pulumi-clickhouse/bin/types/index.js new file mode 100644 index 00000000..017e4303 --- /dev/null +++ b/pulumi-clickhouse/bin/types/index.js @@ -0,0 +1,11 @@ +"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.output = exports.input = void 0; +// Export sub-modules: +const input = require("./input"); +exports.input = input; +const output = require("./output"); +exports.output = output; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/types/index.js.map b/pulumi-clickhouse/bin/types/index.js.map new file mode 100644 index 00000000..357f4a98 --- /dev/null +++ b/pulumi-clickhouse/bin/types/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAIjF,sBAAsB;AACtB,iCAAiC;AAI7B,sBAAK;AAHT,mCAAmC;AAI/B,wBAAM"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/types/input.d.ts b/pulumi-clickhouse/bin/types/input.d.ts new file mode 100644 index 00000000..7aac8079 --- /dev/null +++ b/pulumi-clickhouse/bin/types/input.d.ts @@ -0,0 +1,99 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +export interface ServiceBackupConfiguration { + /** + * Interval in hours between each backup. + */ + backupPeriodInHours?: pulumi.Input; + /** + * How long in hours to keep a backup before deleting it. + */ + backupRetentionPeriodInHours?: pulumi.Input; + /** + * Time of the day in UTC that indicates the start time of a 2 hours window to be used for backup. If set, backup_period_in_hours must be null and backups are created once a day. + */ + backupStartTime?: pulumi.Input; +} +export interface ServiceEndpoints { + https?: pulumi.Input; + mysql?: pulumi.Input; + nativesecure?: pulumi.Input; +} +export interface ServiceEndpointsHttps { + /** + * Endpoint host. + */ + host?: pulumi.Input; + /** + * Endpoint port. + */ + port?: pulumi.Input; +} +export interface ServiceEndpointsMysql { + /** + * Wether to enable the mysql endpoint or not. + */ + enabled: pulumi.Input; + /** + * Endpoint host. + */ + host?: pulumi.Input; + /** + * Endpoint port. + */ + port?: pulumi.Input; +} +export interface ServiceEndpointsNativesecure { + /** + * Endpoint host. + */ + host?: pulumi.Input; + /** + * Endpoint port. + */ + port?: pulumi.Input; +} +export interface ServiceIpAccess { + /** + * Description of the IP address. + */ + description: pulumi.Input; + /** + * IP address allowed to access the service. In case you want to set the ip_access to anywhere you should set source to 0.0.0.0/0 + */ + source: pulumi.Input; +} +export interface ServicePrivateEndpointConfig { + /** + * Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource. + */ + endpointServiceId?: pulumi.Input; + /** + * Private DNS Hostname of the VPC you created. + */ + privateDnsHostname?: pulumi.Input; +} +export interface ServiceQueryApiEndpoints { + /** + * Comma separated list of domain names to be allowed cross-origin resource sharing (CORS) access to the query API. Leave this field empty to restrict access to backend servers only + */ + allowedOrigins?: pulumi.Input; + /** + * The UUIDs of the API Keys to grant access to the query API. + */ + apiKeyIds: pulumi.Input[]>; + /** + * The Database role that will be used to run the query. + */ + roles: pulumi.Input[]>; +} +export interface ServiceTransparentDataEncryption { + /** + * If true, TDE is enabled for the service. + */ + enabled?: pulumi.Input; + /** + * ID of Role to be used for granting access to the Encryption Key. This is an ARN for AWS services and a Service Account Identifier for GCP. + */ + roleId?: pulumi.Input; +} diff --git a/pulumi-clickhouse/bin/types/input.js b/pulumi-clickhouse/bin/types/input.js new file mode 100644 index 00000000..14e61b41 --- /dev/null +++ b/pulumi-clickhouse/bin/types/input.js @@ -0,0 +1,5 @@ +"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 }); +//# sourceMappingURL=input.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/types/input.js.map b/pulumi-clickhouse/bin/types/input.js.map new file mode 100644 index 00000000..eadbd87a --- /dev/null +++ b/pulumi-clickhouse/bin/types/input.js.map @@ -0,0 +1 @@ +{"version":3,"file":"input.js","sourceRoot":"","sources":["../../types/input.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/types/output.d.ts b/pulumi-clickhouse/bin/types/output.d.ts new file mode 100644 index 00000000..8e5a75d9 --- /dev/null +++ b/pulumi-clickhouse/bin/types/output.d.ts @@ -0,0 +1,98 @@ +import * as outputs from "../types/output"; +export interface ServiceBackupConfiguration { + /** + * Interval in hours between each backup. + */ + backupPeriodInHours: number; + /** + * How long in hours to keep a backup before deleting it. + */ + backupRetentionPeriodInHours: number; + /** + * Time of the day in UTC that indicates the start time of a 2 hours window to be used for backup. If set, backup_period_in_hours must be null and backups are created once a day. + */ + backupStartTime?: string; +} +export interface ServiceEndpoints { + https: outputs.ServiceEndpointsHttps; + mysql?: outputs.ServiceEndpointsMysql; + nativesecure: outputs.ServiceEndpointsNativesecure; +} +export interface ServiceEndpointsHttps { + /** + * Endpoint host. + */ + host: string; + /** + * Endpoint port. + */ + port: number; +} +export interface ServiceEndpointsMysql { + /** + * Wether to enable the mysql endpoint or not. + */ + enabled: boolean; + /** + * Endpoint host. + */ + host: string; + /** + * Endpoint port. + */ + port: number; +} +export interface ServiceEndpointsNativesecure { + /** + * Endpoint host. + */ + host: string; + /** + * Endpoint port. + */ + port: number; +} +export interface ServiceIpAccess { + /** + * Description of the IP address. + */ + description: string; + /** + * IP address allowed to access the service. In case you want to set the ip_access to anywhere you should set source to 0.0.0.0/0 + */ + source: string; +} +export interface ServicePrivateEndpointConfig { + /** + * Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource. + */ + endpointServiceId: string; + /** + * Private DNS Hostname of the VPC you created. + */ + privateDnsHostname: string; +} +export interface ServiceQueryApiEndpoints { + /** + * Comma separated list of domain names to be allowed cross-origin resource sharing (CORS) access to the query API. Leave this field empty to restrict access to backend servers only + */ + allowedOrigins?: string; + /** + * The UUIDs of the API Keys to grant access to the query API. + */ + apiKeyIds: string[]; + /** + * The Database role that will be used to run the query. + */ + roles: string[]; +} +export interface ServiceTransparentDataEncryption { + /** + * If true, TDE is enabled for the service. + */ + enabled: boolean; + /** + * ID of Role to be used for granting access to the Encryption Key. This is an ARN for AWS services and a Service Account Identifier for GCP. + */ + roleId: string; +} diff --git a/pulumi-clickhouse/bin/types/output.js b/pulumi-clickhouse/bin/types/output.js new file mode 100644 index 00000000..7144aa49 --- /dev/null +++ b/pulumi-clickhouse/bin/types/output.js @@ -0,0 +1,5 @@ +"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 }); +//# sourceMappingURL=output.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/types/output.js.map b/pulumi-clickhouse/bin/types/output.js.map new file mode 100644 index 00000000..37ae3029 --- /dev/null +++ b/pulumi-clickhouse/bin/types/output.js.map @@ -0,0 +1 @@ +{"version":3,"file":"output.js","sourceRoot":"","sources":["../../types/output.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"} \ No newline at end of file diff --git a/pulumi-clickhouse/bin/utilities.d.ts b/pulumi-clickhouse/bin/utilities.d.ts new file mode 100644 index 00000000..5e4f35e4 --- /dev/null +++ b/pulumi-clickhouse/bin/utilities.d.ts @@ -0,0 +1,5 @@ +export declare function getEnv(...vars: string[]): string | undefined; +export declare function getEnvBoolean(...vars: string[]): boolean | undefined; +export declare function getEnvNumber(...vars: string[]): number | undefined; +export declare function getVersion(): string; +export declare function getPackage(): Promise; diff --git a/pulumi-clickhouse/bin/utilities.js b/pulumi-clickhouse/bin/utilities.js new file mode 100644 index 00000000..f61beba4 --- /dev/null +++ b/pulumi-clickhouse/bin/utilities.js @@ -0,0 +1,129 @@ +"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.getPackage = exports.callAsync = exports.lazyLoad = exports.resourceOptsDefaults = exports.getVersion = exports.getEnvNumber = exports.getEnvBoolean = exports.getEnv = void 0; +const resproto = require("@pulumi/pulumi/proto/resource_pb"); +const mutex = require("async-mutex"); +const runtime = require("@pulumi/pulumi/runtime"); +function getEnv(...vars) { + for (const v of vars) { + const value = process.env[v]; + if (value) { + return value; + } + } + return undefined; +} +exports.getEnv = getEnv; +function getEnvBoolean(...vars) { + const s = getEnv(...vars); + if (s !== undefined) { + // NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what + // Terraform uses internally when parsing boolean values. + if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) { + return true; + } + if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) { + return false; + } + } + return undefined; +} +exports.getEnvBoolean = getEnvBoolean; +function getEnvNumber(...vars) { + const s = getEnv(...vars); + if (s !== undefined) { + const f = parseFloat(s); + if (!isNaN(f)) { + return f; + } + } + return undefined; +} +exports.getEnvNumber = getEnvNumber; +function getVersion() { + let version = require('./package.json').version; + // Node allows for the version to be prefixed by a "v", while semver doesn't. + // If there is a v, strip it off. + if (version.indexOf('v') === 0) { + version = version.slice(1); + } + return version; +} +exports.getVersion = getVersion; +/** @internal */ +function resourceOptsDefaults() { + return { version: getVersion() }; +} +exports.resourceOptsDefaults = resourceOptsDefaults; +/** @internal */ +function lazyLoad(exports, props, loadModule) { + for (let property of props) { + Object.defineProperty(exports, property, { + enumerable: true, + get: function () { + return loadModule()[property]; + }, + }); + } +} +exports.lazyLoad = lazyLoad; +/** @internal */ +async function callAsync(tok, props, res, opts) { + const o = runtime.call(tok, props, res); + const value = await o.promise(true /*withUnknowns*/); + const isKnown = await o.isKnown; + const isSecret = await o.isSecret; + const problem = !isKnown ? "an unknown value" + : isSecret ? "a secret value" + : undefined; + // Ingoring o.resources silently. They are typically non-empty, r.f() calls include r as a dependency. + if (problem) { + throw new Error(`Plain resource method "${tok}" incorrectly returned ${problem}. ` + + "This is an error in the provider, please report this to the provider developer."); + } + // Extract a single property if requested. + if (opts && opts.property) { + return value[opts.property]; + } + return value; +} +exports.callAsync = callAsync; +const _packageLock = new mutex.Mutex(); +var _packageRef = undefined; +async function getPackage() { + if (_packageRef === undefined) { + if (!runtime.supportsParameterization()) { + throw new Error("The Pulumi CLI does not support parameterization. Please update the Pulumi CLI"); + } + await _packageLock.acquire(); + if (_packageRef === undefined) { + const monitor = runtime.getMonitor(); + const params = new resproto.Parameterization(); + params.setName("clickhouse"); + params.setVersion("3.10.0"); + params.setValue(Uint8Array.from(atob("eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2NsaWNraG91c2UvY2xpY2tob3VzZSIsInZlcnNpb24iOiIzLjEwLjAifX0="), c => c.charCodeAt(0))); + const req = new resproto.RegisterPackageRequest(); + req.setName("terraform-provider"); + req.setVersion("1.1.0"); + req.setDownloadUrl(""); + req.setParameterization(params); + const resp = await new Promise((resolve, reject) => { + monitor.registerPackage(req, (err, resp) => { + if (err) { + reject(err); + } + else { + resolve(resp); + } + }); + }); + _packageRef = resp.getRef(); + } + _packageLock.release(); + } + return _packageRef; +} +exports.getPackage = getPackage; +//# sourceMappingURL=utilities.js.map \ No newline at end of file diff --git a/pulumi-clickhouse/bin/utilities.js.map b/pulumi-clickhouse/bin/utilities.js.map new file mode 100644 index 00000000..0ad2296e --- /dev/null +++ b/pulumi-clickhouse/bin/utilities.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../utilities.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-clickhouse/config/index.ts b/pulumi-clickhouse/config/index.ts new file mode 100644 index 00000000..3fbadc82 --- /dev/null +++ b/pulumi-clickhouse/config/index.ts @@ -0,0 +1,5 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +// Export members: +export * from "./vars"; diff --git a/pulumi-clickhouse/config/vars.ts b/pulumi-clickhouse/config/vars.ts new file mode 100644 index 00000000..341e4823 --- /dev/null +++ b/pulumi-clickhouse/config/vars.ts @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +declare var exports: any; +const __config = new pulumi.Config("clickhouse"); + +/** + * API URL of the ClickHouse OpenAPI the provider will interact with. Alternatively, can be configured using the `CLICKHOUSE_API_URL` environment variable. Only specify if you have a specific deployment of the ClickHouse OpenAPI you want to run against. + */ +export declare const apiUrl: string | undefined; +Object.defineProperty(exports, "apiUrl", { + get() { + return __config.get("apiUrl"); + }, + enumerable: true, +}); + +/** + * ID of the organization the provider will create services under. Alternatively, can be configured using the `CLICKHOUSE_ORG_ID` environment variable. + */ +export declare const organizationId: string | undefined; +Object.defineProperty(exports, "organizationId", { + get() { + return __config.get("organizationId"); + }, + enumerable: true, +}); + +/** + * Timeout in seconds for the HTTP client. + */ +export declare const timeoutSeconds: number | undefined; +Object.defineProperty(exports, "timeoutSeconds", { + get() { + return __config.getObject("timeoutSeconds"); + }, + enumerable: true, +}); + +/** + * Token key of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_KEY` environment variable. + */ +export declare const tokenKey: string | undefined; +Object.defineProperty(exports, "tokenKey", { + get() { + return __config.get("tokenKey"); + }, + enumerable: true, +}); + +/** + * Token secret of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_SECRET` environment variable. + */ +export declare const tokenSecret: string | undefined; +Object.defineProperty(exports, "tokenSecret", { + get() { + return __config.get("tokenSecret"); + }, + enumerable: true, +}); + diff --git a/pulumi-clickhouse/getApiKeyId.ts b/pulumi-clickhouse/getApiKeyId.ts new file mode 100644 index 00000000..e3bfe29e --- /dev/null +++ b/pulumi-clickhouse/getApiKeyId.ts @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getApiKeyId(args?: GetApiKeyIdArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("clickhouse:index/getApiKeyId:getApiKeyId", { + "name": args.name, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getApiKeyId. + */ +export interface GetApiKeyIdArgs { + name?: string; +} + +/** + * A collection of values returned by getApiKeyId. + */ +export interface GetApiKeyIdResult { + readonly id: string; + readonly name: string; +} +export function getApiKeyIdOutput(args?: GetApiKeyIdOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("clickhouse:index/getApiKeyId:getApiKeyId", { + "name": args.name, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getApiKeyId. + */ +export interface GetApiKeyIdOutputArgs { + name?: pulumi.Input; +} diff --git a/pulumi-clickhouse/getPrivateEndpointConfig.ts b/pulumi-clickhouse/getPrivateEndpointConfig.ts new file mode 100644 index 00000000..301ab2e9 --- /dev/null +++ b/pulumi-clickhouse/getPrivateEndpointConfig.ts @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getPrivateEndpointConfig(args: GetPrivateEndpointConfigArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("clickhouse:index/getPrivateEndpointConfig:getPrivateEndpointConfig", { + "cloudProvider": args.cloudProvider, + "region": args.region, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getPrivateEndpointConfig. + */ +export interface GetPrivateEndpointConfigArgs { + cloudProvider: string; + region: string; +} + +/** + * A collection of values returned by getPrivateEndpointConfig. + */ +export interface GetPrivateEndpointConfigResult { + readonly cloudProvider: string; + readonly endpointServiceId: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly region: string; +} +export function getPrivateEndpointConfigOutput(args: GetPrivateEndpointConfigOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("clickhouse:index/getPrivateEndpointConfig:getPrivateEndpointConfig", { + "cloudProvider": args.cloudProvider, + "region": args.region, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getPrivateEndpointConfig. + */ +export interface GetPrivateEndpointConfigOutputArgs { + cloudProvider: pulumi.Input; + region: pulumi.Input; +} diff --git a/pulumi-clickhouse/index.ts b/pulumi-clickhouse/index.ts new file mode 100644 index 00000000..f8f191e8 --- /dev/null +++ b/pulumi-clickhouse/index.ts @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +// Export members: +export { GetApiKeyIdArgs, GetApiKeyIdResult, GetApiKeyIdOutputArgs } from "./getApiKeyId"; +export const getApiKeyId: typeof import("./getApiKeyId").getApiKeyId = null as any; +export const getApiKeyIdOutput: typeof import("./getApiKeyId").getApiKeyIdOutput = null as any; +utilities.lazyLoad(exports, ["getApiKeyId","getApiKeyIdOutput"], () => require("./getApiKeyId")); + +export { GetPrivateEndpointConfigArgs, GetPrivateEndpointConfigResult, GetPrivateEndpointConfigOutputArgs } from "./getPrivateEndpointConfig"; +export const getPrivateEndpointConfig: typeof import("./getPrivateEndpointConfig").getPrivateEndpointConfig = null as any; +export const getPrivateEndpointConfigOutput: typeof import("./getPrivateEndpointConfig").getPrivateEndpointConfigOutput = null as any; +utilities.lazyLoad(exports, ["getPrivateEndpointConfig","getPrivateEndpointConfigOutput"], () => require("./getPrivateEndpointConfig")); + +export { PrivateEndpointRegistrationArgs, PrivateEndpointRegistrationState } from "./privateEndpointRegistration"; +export type PrivateEndpointRegistration = import("./privateEndpointRegistration").PrivateEndpointRegistration; +export const PrivateEndpointRegistration: typeof import("./privateEndpointRegistration").PrivateEndpointRegistration = null as any; +utilities.lazyLoad(exports, ["PrivateEndpointRegistration"], () => require("./privateEndpointRegistration")); + +export * from "./provider"; +import { Provider } from "./provider"; + +export { ServiceArgs, ServiceState } from "./service"; +export type Service = import("./service").Service; +export const Service: typeof import("./service").Service = null as any; +utilities.lazyLoad(exports, ["Service"], () => require("./service")); + +export { ServicePrivateEndpointsAttachmentArgs, ServicePrivateEndpointsAttachmentState } from "./servicePrivateEndpointsAttachment"; +export type ServicePrivateEndpointsAttachment = import("./servicePrivateEndpointsAttachment").ServicePrivateEndpointsAttachment; +export const ServicePrivateEndpointsAttachment: typeof import("./servicePrivateEndpointsAttachment").ServicePrivateEndpointsAttachment = null as any; +utilities.lazyLoad(exports, ["ServicePrivateEndpointsAttachment"], () => require("./servicePrivateEndpointsAttachment")); + +export { ServiceTransparentDataEncryptionKeyAssociationArgs, ServiceTransparentDataEncryptionKeyAssociationState } from "./serviceTransparentDataEncryptionKeyAssociation"; +export type ServiceTransparentDataEncryptionKeyAssociation = import("./serviceTransparentDataEncryptionKeyAssociation").ServiceTransparentDataEncryptionKeyAssociation; +export const ServiceTransparentDataEncryptionKeyAssociation: typeof import("./serviceTransparentDataEncryptionKeyAssociation").ServiceTransparentDataEncryptionKeyAssociation = null as any; +utilities.lazyLoad(exports, ["ServiceTransparentDataEncryptionKeyAssociation"], () => require("./serviceTransparentDataEncryptionKeyAssociation")); + + +// Export sub-modules: +import * as config from "./config"; +import * as types from "./types"; + +export { + config, + types, +}; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "clickhouse:index/privateEndpointRegistration:PrivateEndpointRegistration": + return new PrivateEndpointRegistration(name, undefined, { urn }) + case "clickhouse:index/service:Service": + return new Service(name, undefined, { urn }) + case "clickhouse:index/servicePrivateEndpointsAttachment:ServicePrivateEndpointsAttachment": + return new ServicePrivateEndpointsAttachment(name, undefined, { urn }) + case "clickhouse:index/serviceTransparentDataEncryptionKeyAssociation:ServiceTransparentDataEncryptionKeyAssociation": + return new ServiceTransparentDataEncryptionKeyAssociation(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("clickhouse", "index/privateEndpointRegistration", _module) +pulumi.runtime.registerResourceModule("clickhouse", "index/service", _module) +pulumi.runtime.registerResourceModule("clickhouse", "index/servicePrivateEndpointsAttachment", _module) +pulumi.runtime.registerResourceModule("clickhouse", "index/serviceTransparentDataEncryptionKeyAssociation", _module) +pulumi.runtime.registerResourcePackage("clickhouse", { + version: utilities.getVersion(), + constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => { + if (type !== "pulumi:providers:clickhouse") { + throw new Error(`unknown provider type ${type}`); + } + return new Provider(name, undefined, { urn }); + }, +}); diff --git a/pulumi-clickhouse/package.json b/pulumi-clickhouse/package.json new file mode 100644 index 00000000..c57809c7 --- /dev/null +++ b/pulumi-clickhouse/package.json @@ -0,0 +1,24 @@ +{ + "name": "@bpinternal/pulumi-clickhouse", + "version": "3.10.0", + "description": "Pulumi SDK for clickhouse/clickhouse terraform provider", + "main": "bin/index.js", + "types": "bin/index.d.ts", + "repository": { + "url": "https://github.com/botpress/packages" + }, + "author": "Botpress, Inc.", + "license": "MIT", + "scripts": { + "build": "tsc" + }, + "dependencies": { + "@pulumi/pulumi": "^3.142.0", + "async-mutex": "^0.5.0" + }, + "devDependencies": { + "@types/node": "18.16.0", + "typescript": "5.4.5" + }, + "packageManager": "pnpm@10.29.3" +} diff --git a/pulumi-clickhouse/pnpm-lock.yaml b/pulumi-clickhouse/pnpm-lock.yaml new file mode 100644 index 00000000..99026aad --- /dev/null +++ b/pulumi-clickhouse/pnpm-lock.yaml @@ -0,0 +1,2140 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@pulumi/pulumi': + specifier: ^3.142.0 + version: 3.227.0(typescript@5.4.5) + async-mutex: + specifier: ^0.5.0 + version: 0.5.0 + devDependencies: + '@types/node': + specifier: 18.16.0 + version: 18.16.0 + typescript: + specifier: 5.4.5 + version: 5.4.5 + +packages: + + '@gar/promise-retry@1.0.3': + resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@grpc/grpc-js@1.14.3': + resolution: {integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.8.0': + resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==} + engines: {node: '>=6'} + hasBin: true + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@logdna/tail-file@2.2.0': + resolution: {integrity: sha512-XGSsWDweP80Fks16lwkAUIr54ICyBs6PsI4mpfTLQaWgEJRtY9xEV+PeyDpJ+sJEGZxqINlpmAwe/6tS1pP8Ng==} + engines: {node: '>=10.3.0'} + + '@npmcli/agent@4.0.0': + resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/arborist@9.4.2': + resolution: {integrity: sha512-omJgPyzt11cEGrxzgrECoOyxAunmPMgBFTcAB/FbaB+9iOYhGmRdsQqySV8o0LWQ/l2kTeASUIMR4xJufVwmtw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + '@npmcli/fs@5.0.0': + resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/git@7.0.2': + resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/installed-package-contents@4.0.0': + resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + '@npmcli/map-workspaces@5.0.3': + resolution: {integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/metavuln-calculator@9.0.3': + resolution: {integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/name-from-folder@4.0.0': + resolution: {integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/node-gyp@5.0.0': + resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/package-json@7.0.5': + resolution: {integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/promise-spawn@9.0.1': + resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/query@5.0.0': + resolution: {integrity: sha512-8TZWfTQOsODpLqo9SVhVjHovmKXNpevHU0gO9e+y4V4fRIOneiXy0u0sMP9LmS71XivrEWfZWg50ReH4WRT4aQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/redact@4.0.0': + resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/run-script@10.0.4': + resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@opentelemetry/api-logs@0.57.2': + resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} + engines: {node: '>=14'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@1.30.1': + resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@1.30.1': + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-trace-otlp-grpc@0.57.2': + resolution: {integrity: sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-zipkin@1.30.1': + resolution: {integrity: sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/instrumentation-grpc@0.57.2': + resolution: {integrity: sha512-TR6YQA67cLSZzdxbf2SrbADJy2Y8eBW1+9mF15P0VK2MYcpdoUSmQTF1oMkBwa3B9NwqDFA2fq7wYTTutFQqaQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.57.2': + resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.57.2': + resolution: {integrity: sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-grpc-exporter-base@0.57.2': + resolution: {integrity: sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.57.2': + resolution: {integrity: sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/propagator-b3@1.30.1': + resolution: {integrity: sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/propagator-jaeger@1.30.1': + resolution: {integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/resources@1.30.1': + resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.57.2': + resolution: {integrity: sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@1.30.1': + resolution: {integrity: sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@1.30.1': + resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@1.30.1': + resolution: {integrity: sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.28.0': + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@pulumi/pulumi@3.227.0': + resolution: {integrity: sha512-0G7C5gHyx65wIciTfSTw8WcXh3MOWQx/9ZEpWroFCgHrChTg9osUXQPzeKXwcuIiWu76vLWZe9PmmtLTTbOs3Q==} + engines: {node: '>=20'} + peerDependencies: + ts-node: '>= 7.0.1 < 12' + typescript: '>= 3.8.3 < 6' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/core@3.2.0': + resolution: {integrity: sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/protobuf-specs@0.5.0': + resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@4.1.1': + resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/tuf@4.0.2': + resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/verify@3.1.0': + resolution: {integrity: sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@4.1.0': + resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/google-protobuf@3.15.12': + resolution: {integrity: sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==} + + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/node@18.16.0': + resolution: {integrity: sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/shimmer@1.2.0': + resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + + '@types/tmp@0.2.6': + resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} + + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + async-mutex@0.5.0: + resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + bin-links@6.0.0: + resolution: {integrity: sha512-X4CiKlcV2GjnCMwnKAfbVWpHa++65th9TuzAEYtZoATiOE2DQKhSp4CJlyLoTqdhBKlXjpXjCTYPNNFS33Fi6w==} + engines: {node: ^20.17.0 || >=22.9.0} + + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + cacache@20.0.4: + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} + engines: {node: ^20.17.0 || >=22.9.0} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + cmd-shim@8.0.0: + resolution: {integrity: sha512-Jk/BK6NCapZ58BKUxlSI+ouKRbjH1NLZCgJkYoab+vEHUY3f6OzpNBN9u7HFSv9J6TRDGs4PLOHezoKGaFRSCA==} + engines: {node: ^20.17.0 || >=22.9.0} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + common-ancestor-path@2.0.0: + resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} + engines: {node: '>= 18'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + google-protobuf@3.21.4: + resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + engines: {node: ^20.17.0 || >=22.9.0} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + + ignore-walk@8.0.0: + resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} + engines: {node: ^20.17.0 || >=22.9.0} + + import-in-the-middle@1.15.0: + resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + engines: {node: 20 || >=22} + + make-fetch-happen@15.0.5: + resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} + engines: {node: ^20.17.0 || >=22.9.0} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@5.0.2: + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@2.0.0: + resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + node-gyp@12.2.0: + resolution: {integrity: sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-bundled@5.0.0: + resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-package-arg@13.0.2: + resolution: {integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-packlist@10.0.4: + resolution: {integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-registry-fetch@19.1.1: + resolution: {integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + + package-directory@8.2.0: + resolution: {integrity: sha512-qJSu5Mo6tHmRxCy2KCYYKYgcfBdUpy9dwReaZD/xwf608AUk/MoRtIOWzgDtUeGeC7n/55yC3MI1Q+MbSoektw==} + engines: {node: '>=18'} + + pacote@21.5.0: + resolution: {integrity: sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + parse-conflict-json@5.0.1: + resolution: {integrity: sha512-ZHEmNKMq1wyJXNwLxyHnluPfRAFSIliBvbK/UiOceROt4Xh9Pz0fq49NytIaeaCUf5VR86hwQ/34FCcNU5/LKQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + picomatch@3.0.2: + resolution: {integrity: sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw==} + engines: {node: '>=10'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + proggy@4.0.0: + resolution: {integrity: sha512-MbA4R+WQT76ZBm/5JUpV9yqcJt92175+Y0Bodg3HgiXzrmKu7Ggq+bpn6y6wHH+gN9NcyKn3yg1+d47VaKwNAQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} + + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + engines: {node: '>=12.0.0'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + read-cmd-shim@6.0.0: + resolution: {integrity: sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A==} + engines: {node: ^20.17.0 || >=22.9.0} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-in-the-middle@7.5.2: + resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + engines: {node: '>=8.6.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@4.1.0: + resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} + engines: {node: ^20.17.0 || >=22.9.0} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + ssri@13.0.1: + resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + engines: {node: '>=14.14'} + + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tuf-js@4.1.0: + resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@7.0.2: + resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} + engines: {node: ^20.17.0 || >=22.9.0} + + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@7.0.1: + resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==} + engines: {node: ^20.17.0 || >=22.9.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + +snapshots: + + '@gar/promise-retry@1.0.3': {} + + '@grpc/grpc-js@1.14.3': + dependencies: + '@grpc/proto-loader': 0.8.0 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.8.0': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.3.2 + protobufjs: 7.5.4 + yargs: 17.7.2 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + + '@isaacs/string-locale-compare@1.1.0': {} + + '@js-sdsl/ordered-map@4.4.2': {} + + '@logdna/tail-file@2.2.0': {} + + '@npmcli/agent@4.0.0': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 11.2.7 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/arborist@9.4.2': + dependencies: + '@gar/promise-retry': 1.0.3 + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 5.0.0 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/map-workspaces': 5.0.3 + '@npmcli/metavuln-calculator': 9.0.3 + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/query': 5.0.0 + '@npmcli/redact': 4.0.0 + '@npmcli/run-script': 10.0.4 + bin-links: 6.0.0 + cacache: 20.0.4 + common-ancestor-path: 2.0.0 + hosted-git-info: 9.0.2 + json-stringify-nice: 1.1.4 + lru-cache: 11.2.7 + minimatch: 10.2.4 + nopt: 9.0.0 + npm-install-checks: 8.0.0 + npm-package-arg: 13.0.2 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + pacote: 21.5.0 + parse-conflict-json: 5.0.1 + proc-log: 6.1.0 + proggy: 4.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 3.0.2 + semver: 7.7.4 + ssri: 13.0.1 + treeverse: 3.0.0 + walk-up-path: 4.0.0 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@5.0.0': + dependencies: + semver: 7.7.4 + + '@npmcli/git@7.0.2': + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/promise-spawn': 9.0.1 + ini: 6.0.0 + lru-cache: 11.2.7 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + semver: 7.7.4 + which: 6.0.1 + + '@npmcli/installed-package-contents@4.0.0': + dependencies: + npm-bundled: 5.0.0 + npm-normalize-package-bin: 5.0.0 + + '@npmcli/map-workspaces@5.0.3': + dependencies: + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/package-json': 7.0.5 + glob: 13.0.6 + minimatch: 10.2.4 + + '@npmcli/metavuln-calculator@9.0.3': + dependencies: + cacache: 20.0.4 + json-parse-even-better-errors: 5.0.0 + pacote: 21.5.0 + proc-log: 6.1.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + + '@npmcli/name-from-folder@4.0.0': {} + + '@npmcli/node-gyp@5.0.0': {} + + '@npmcli/package-json@7.0.5': + dependencies: + '@npmcli/git': 7.0.2 + glob: 13.0.6 + hosted-git-info: 9.0.2 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.7.4 + spdx-expression-parse: 4.0.0 + + '@npmcli/promise-spawn@9.0.1': + dependencies: + which: 6.0.1 + + '@npmcli/query@5.0.0': + dependencies: + postcss-selector-parser: 7.1.1 + + '@npmcli/redact@4.0.0': {} + + '@npmcli/run-script@10.0.4': + dependencies: + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.1 + node-gyp: 12.2.0 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/api-logs@0.57.2': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/exporter-trace-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.14.3 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-zipkin@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/instrumentation-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.15.0 + require-in-the-middle: 7.5.2 + semver: 7.7.4 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-grpc-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.14.3 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + protobufjs: 7.5.4 + + '@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/sdk-logs@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + semver: 7.7.4 + + '@opentelemetry/semantic-conventions@1.28.0': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@pulumi/pulumi@3.227.0(typescript@5.4.5)': + dependencies: + '@grpc/grpc-js': 1.14.3 + '@logdna/tail-file': 2.2.0 + '@npmcli/arborist': 9.4.2 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/exporter-trace-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-zipkin': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) + '@types/google-protobuf': 3.15.12 + '@types/semver': 7.7.1 + '@types/tmp': 0.2.6 + execa: 5.1.1 + fdir: 6.5.0(picomatch@3.0.2) + google-protobuf: 3.21.4 + got: 11.8.6 + ini: 2.0.0 + js-yaml: 3.14.2 + minimist: 1.2.8 + normalize-package-data: 6.0.2 + package-directory: 8.2.0 + picomatch: 3.0.2 + require-from-string: 2.0.2 + semver: 7.7.4 + source-map-support: 0.5.21 + tmp: 0.2.5 + upath: 1.2.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@sigstore/bundle@4.0.0': + dependencies: + '@sigstore/protobuf-specs': 0.5.0 + + '@sigstore/core@3.2.0': {} + + '@sigstore/protobuf-specs@0.5.0': {} + + '@sigstore/sign@4.1.1': + dependencies: + '@gar/promise-retry': 1.0.3 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.0 + '@sigstore/protobuf-specs': 0.5.0 + make-fetch-happen: 15.0.5 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@4.0.2': + dependencies: + '@sigstore/protobuf-specs': 0.5.0 + tuf-js: 4.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@3.1.0': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.0 + '@sigstore/protobuf-specs': 0.5.0 + + '@sindresorhus/is@4.6.0': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@4.1.0': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 10.2.4 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.2.0 + '@types/keyv': 3.1.4 + '@types/node': 18.16.0 + '@types/responselike': 1.0.3 + + '@types/google-protobuf@3.15.12': {} + + '@types/http-cache-semantics@4.2.0': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 18.16.0 + + '@types/node@18.16.0': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 18.16.0 + + '@types/semver@7.7.1': {} + + '@types/shimmer@1.2.0': {} + + '@types/tmp@0.2.6': {} + + abbrev@4.0.0: {} + + acorn-import-attributes@1.9.5(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + agent-base@7.1.4: {} + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + async-mutex@0.5.0: + dependencies: + tslib: 2.8.1 + + balanced-match@4.0.4: {} + + bin-links@6.0.0: + dependencies: + cmd-shim: 8.0.0 + npm-normalize-package-bin: 5.0.0 + proc-log: 6.1.0 + read-cmd-shim: 6.0.0 + write-file-atomic: 7.0.1 + + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 + + buffer-from@1.1.2: {} + + cacache@20.0.4: + dependencies: + '@npmcli/fs': 5.0.0 + fs-minipass: 3.0.3 + glob: 13.0.6 + lru-cache: 11.2.7 + minipass: 7.1.3 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.4 + ssri: 13.0.1 + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + chownr@3.0.0: {} + + cjs-module-lexer@1.4.3: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + cmd-shim@8.0.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + common-ancestor-path@2.0.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + defer-to-connect@2.0.1: {} + + emoji-regex@8.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + env-paths@2.2.1: {} + + escalade@3.2.0: {} + + esprima@4.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exponential-backoff@3.1.3: {} + + fdir@6.5.0(picomatch@3.0.2): + optionalDependencies: + picomatch: 3.0.2 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + find-up-simple@1.0.1: {} + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.3 + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-stream@5.2.0: + dependencies: + pump: 3.0.4 + + get-stream@6.0.1: {} + + glob@13.0.6: + dependencies: + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 + + google-protobuf@3.21.4: {} + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + hosted-git-info@9.0.2: + dependencies: + lru-cache: 11.2.7 + + http-cache-semantics@4.2.0: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ignore-walk@8.0.0: + dependencies: + minimatch: 10.2.4 + + import-in-the-middle@1.15.0: + dependencies: + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.4 + + ini@2.0.0: {} + + ini@6.0.0: {} + + ip-address@10.1.0: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-fullwidth-code-point@3.0.0: {} + + is-stream@2.0.1: {} + + isexe@2.0.0: {} + + isexe@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@5.0.0: {} + + json-stringify-nice@1.1.4: {} + + jsonparse@1.3.1: {} + + just-diff-apply@5.5.0: {} + + just-diff@6.0.2: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + lodash.camelcase@4.3.0: {} + + long@5.3.2: {} + + lowercase-keys@2.0.0: {} + + lru-cache@10.4.3: {} + + lru-cache@11.2.7: {} + + make-fetch-happen@15.0.5: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/agent': 4.0.0 + '@npmcli/redact': 4.0.0 + cacache: 20.0.4 + http-cache-semantics: 4.2.0 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 1.0.0 + proc-log: 6.1.0 + ssri: 13.0.1 + transitivePeerDependencies: + - supports-color + + merge-stream@2.0.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + minimatch@10.2.4: + dependencies: + brace-expansion: 5.0.4 + + minimist@1.2.8: {} + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.3 + + minipass-fetch@5.0.2: + dependencies: + minipass: 7.1.3 + minipass-sized: 2.0.0 + minizlib: 3.1.0 + optionalDependencies: + iconv-lite: 0.7.2 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@2.0.0: + dependencies: + minipass: 7.1.3 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + + module-details-from-path@1.0.4: {} + + ms@2.1.3: {} + + negotiator@1.0.0: {} + + node-gyp@12.2.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + graceful-fs: 4.2.11 + make-fetch-happen: 15.0.5 + nopt: 9.0.0 + proc-log: 6.1.0 + semver: 7.7.4 + tar: 7.5.13 + tinyglobby: 0.2.15 + which: 6.0.1 + transitivePeerDependencies: + - supports-color + + nopt@9.0.0: + dependencies: + abbrev: 4.0.0 + + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.7.4 + validate-npm-package-license: 3.0.4 + + normalize-url@6.1.0: {} + + npm-bundled@5.0.0: + dependencies: + npm-normalize-package-bin: 5.0.0 + + npm-install-checks@8.0.0: + dependencies: + semver: 7.7.4 + + npm-normalize-package-bin@5.0.0: {} + + npm-package-arg@13.0.2: + dependencies: + hosted-git-info: 9.0.2 + proc-log: 6.1.0 + semver: 7.7.4 + validate-npm-package-name: 7.0.2 + + npm-packlist@10.0.4: + dependencies: + ignore-walk: 8.0.0 + proc-log: 6.1.0 + + npm-pick-manifest@11.0.3: + dependencies: + npm-install-checks: 8.0.0 + npm-normalize-package-bin: 5.0.0 + npm-package-arg: 13.0.2 + semver: 7.7.4 + + npm-registry-fetch@19.1.1: + dependencies: + '@npmcli/redact': 4.0.0 + jsonparse: 1.3.1 + make-fetch-happen: 15.0.5 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minizlib: 3.1.0 + npm-package-arg: 13.0.2 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + p-cancelable@2.1.1: {} + + p-map@7.0.4: {} + + package-directory@8.2.0: + dependencies: + find-up-simple: 1.0.1 + + pacote@21.5.0: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/git': 7.0.2 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.1 + '@npmcli/run-script': 10.0.4 + cacache: 20.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.3 + npm-package-arg: 13.0.2 + npm-packlist: 10.0.4 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + proc-log: 6.1.0 + sigstore: 4.1.0 + ssri: 13.0.1 + tar: 7.5.13 + transitivePeerDependencies: + - supports-color + + parse-conflict-json@5.0.1: + dependencies: + json-parse-even-better-errors: 5.0.0 + just-diff: 6.0.2 + just-diff-apply: 5.5.0 + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.7 + minipass: 7.1.3 + + picomatch@3.0.2: {} + + picomatch@4.0.4: {} + + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + proc-log@6.1.0: {} + + proggy@4.0.0: {} + + promise-all-reject-late@1.0.1: {} + + promise-call-limit@3.0.2: {} + + protobufjs@7.5.4: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.16.0 + long: 5.3.2 + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quick-lru@5.1.1: {} + + read-cmd-shim@6.0.0: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + require-in-the-middle@7.5.2: + dependencies: + debug: 4.4.3 + module-details-from-path: 1.0.4 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + resolve-alpn@1.2.1: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + safer-buffer@2.1.2: + optional: true + + semver@7.7.4: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shimmer@1.2.1: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sigstore@4.1.0: + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.0 + '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/sign': 4.1.1 + '@sigstore/tuf': 4.0.2 + '@sigstore/verify': 3.1.0 + transitivePeerDependencies: + - supports-color + + smart-buffer@4.2.0: {} + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.1.0 + smart-buffer: 4.2.0 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.23 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-license-ids@3.0.23: {} + + sprintf-js@1.0.3: {} + + ssri@13.0.1: + dependencies: + minipass: 7.1.3 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-final-newline@2.0.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + tar@7.5.13: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tmp@0.2.5: {} + + treeverse@3.0.0: {} + + tslib@2.8.1: {} + + tuf-js@4.1.0: + dependencies: + '@tufjs/models': 4.1.0 + debug: 4.4.3 + make-fetch-happen: 15.0.5 + transitivePeerDependencies: + - supports-color + + typescript@5.4.5: {} + + upath@1.2.0: {} + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@7.0.2: {} + + walk-up-path@4.0.0: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@6.0.1: + dependencies: + isexe: 4.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@7.0.1: + dependencies: + signal-exit: 4.1.0 + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yallist@5.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/pulumi-clickhouse/privateEndpointRegistration.ts b/pulumi-clickhouse/privateEndpointRegistration.ts new file mode 100644 index 00000000..51dbd231 --- /dev/null +++ b/pulumi-clickhouse/privateEndpointRegistration.ts @@ -0,0 +1,132 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class PrivateEndpointRegistration extends pulumi.CustomResource { + /** + * Get an existing PrivateEndpointRegistration 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. + */ + public static get(name: string, id: pulumi.Input, state?: PrivateEndpointRegistrationState, opts?: pulumi.CustomResourceOptions): PrivateEndpointRegistration { + return new PrivateEndpointRegistration(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'clickhouse:index/privateEndpointRegistration:PrivateEndpointRegistration'; + + /** + * Returns true if the given object is an instance of PrivateEndpointRegistration. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is PrivateEndpointRegistration { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PrivateEndpointRegistration.__pulumiType; + } + + /** + * Cloud provider of the private endpoint ID + */ + declare public readonly cloudProvider: pulumi.Output; + /** + * Description of the private endpoint + */ + declare public readonly description: pulumi.Output; + /** + * ID of the private endpoint (replaces deprecated attribute `id`) + */ + declare public readonly privateEndpointId: pulumi.Output; + /** + * Region of the private endpoint + */ + declare public readonly region: pulumi.Output; + + /** + * Create a PrivateEndpointRegistration resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PrivateEndpointRegistrationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: PrivateEndpointRegistrationArgs | PrivateEndpointRegistrationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as PrivateEndpointRegistrationState | undefined; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["description"] = state?.description; + resourceInputs["privateEndpointId"] = state?.privateEndpointId; + resourceInputs["region"] = state?.region; + } else { + const args = argsOrState as PrivateEndpointRegistrationArgs | undefined; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.privateEndpointId === undefined && !opts.urn) { + throw new Error("Missing required property 'privateEndpointId'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["description"] = args?.description; + resourceInputs["privateEndpointId"] = args?.privateEndpointId; + resourceInputs["region"] = args?.region; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(PrivateEndpointRegistration.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering PrivateEndpointRegistration resources. + */ +export interface PrivateEndpointRegistrationState { + /** + * Cloud provider of the private endpoint ID + */ + cloudProvider?: pulumi.Input; + /** + * Description of the private endpoint + */ + description?: pulumi.Input; + /** + * ID of the private endpoint (replaces deprecated attribute `id`) + */ + privateEndpointId?: pulumi.Input; + /** + * Region of the private endpoint + */ + region?: pulumi.Input; +} + +/** + * The set of arguments for constructing a PrivateEndpointRegistration resource. + */ +export interface PrivateEndpointRegistrationArgs { + /** + * Cloud provider of the private endpoint ID + */ + cloudProvider: pulumi.Input; + /** + * Description of the private endpoint + */ + description?: pulumi.Input; + /** + * ID of the private endpoint (replaces deprecated attribute `id`) + */ + privateEndpointId: pulumi.Input; + /** + * Region of the private endpoint + */ + region: pulumi.Input; +} diff --git a/pulumi-clickhouse/provider.ts b/pulumi-clickhouse/provider.ts new file mode 100644 index 00000000..3aa41d7b --- /dev/null +++ b/pulumi-clickhouse/provider.ts @@ -0,0 +1,113 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * The provider type for the clickhouse package. By default, resources use package-wide configuration + * settings, however an explicit `Provider` instance may be created and passed during resource + * construction to achieve fine-grained programmatic control over provider settings. See the + * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + */ +export class Provider extends pulumi.ProviderResource { + /** @internal */ + public static readonly __pulumiType = 'clickhouse'; + + /** + * Returns true if the given object is an instance of Provider. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Provider { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType; + } + + /** + * API URL of the ClickHouse OpenAPI the provider will interact with. Alternatively, can be configured using the `CLICKHOUSE_API_URL` environment variable. Only specify if you have a specific deployment of the ClickHouse OpenAPI you want to run against. + */ + declare public readonly apiUrl: pulumi.Output; + /** + * ID of the organization the provider will create services under. Alternatively, can be configured using the `CLICKHOUSE_ORG_ID` environment variable. + */ + declare public readonly organizationId: pulumi.Output; + /** + * Token key of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_KEY` environment variable. + */ + declare public readonly tokenKey: pulumi.Output; + /** + * Token secret of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_SECRET` environment variable. + */ + declare public readonly tokenSecret: pulumi.Output; + + /** + * Create a Provider resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + { + resourceInputs["apiUrl"] = args?.apiUrl; + resourceInputs["organizationId"] = args?.organizationId; + resourceInputs["timeoutSeconds"] = pulumi.output(args?.timeoutSeconds).apply(JSON.stringify); + resourceInputs["tokenKey"] = args?.tokenKey; + resourceInputs["tokenSecret"] = args?.tokenSecret ? pulumi.secret(args.tokenSecret) : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["tokenSecret"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Provider.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } + + /** + * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider. + */ + terraformConfig(): pulumi.Output<{[key: string]: any}> { + const result: pulumi.Output = pulumi.runtime.call("pulumi:providers:clickhouse/terraformConfig", { + "__self__": this, + }, this, utilities.getPackage()); + return result.result; + } +} + +/** + * The set of arguments for constructing a Provider resource. + */ +export interface ProviderArgs { + /** + * API URL of the ClickHouse OpenAPI the provider will interact with. Alternatively, can be configured using the `CLICKHOUSE_API_URL` environment variable. Only specify if you have a specific deployment of the ClickHouse OpenAPI you want to run against. + */ + apiUrl?: pulumi.Input; + /** + * ID of the organization the provider will create services under. Alternatively, can be configured using the `CLICKHOUSE_ORG_ID` environment variable. + */ + organizationId?: pulumi.Input; + /** + * Timeout in seconds for the HTTP client. + */ + timeoutSeconds?: pulumi.Input; + /** + * Token key of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_KEY` environment variable. + */ + tokenKey?: pulumi.Input; + /** + * Token secret of the key/secret pair. Used to authenticate with OpenAPI. Alternatively, can be configured using the `CLICKHOUSE_TOKEN_SECRET` environment variable. + */ + tokenSecret?: pulumi.Input; +} + +export namespace Provider { + /** + * The results of the Provider.terraformConfig method. + */ + export interface TerraformConfigResult { + readonly result: {[key: string]: any}; + } + +} diff --git a/pulumi-clickhouse/service.ts b/pulumi-clickhouse/service.ts new file mode 100644 index 00000000..516f5bdc --- /dev/null +++ b/pulumi-clickhouse/service.ts @@ -0,0 +1,556 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class Service extends pulumi.CustomResource { + /** + * Get an existing Service 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. + */ + public static get(name: string, id: pulumi.Input, state?: ServiceState, opts?: pulumi.CustomResourceOptions): Service { + return new Service(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'clickhouse:index/service:Service'; + + /** + * Returns true if the given object is an instance of Service. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Service { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Service.__pulumiType; + } + + /** + * Configuration of service backup settings. + */ + declare public readonly backupConfiguration: pulumi.Output; + /** + * ID of the backup to restore when creating new service. If specified, the service will be created as a restore operation + */ + declare public readonly backupId: pulumi.Output; + /** + * BYOC ID related to the cloud provider account you want to create this service into. + */ + declare public readonly byocId: pulumi.Output; + /** + * Cloud provider ('aws', 'gcp', or 'azure') in which the service is deployed in. + */ + declare public readonly cloudProvider: pulumi.Output; + /** + * Compliance type of the service. Can be 'hipaa', 'pci'. Required for organizations that wish to deploy their services in the hipaa/pci compliant environment. NOTE: hipaa/pci compliance should be enabled for your ClickHouse organization before using this field. + */ + declare public readonly complianceType: pulumi.Output; + /** + * Double SHA1 hash of password for connecting with the MySQL protocol. Cannot be specified if `password` or `password_wo` is specified. + */ + declare public readonly doubleSha1PasswordHash: pulumi.Output; + /** + * Enable core dumps for the service. + */ + declare public readonly enableCoreDumps: pulumi.Output; + /** + * Custom role identifier ARN. + */ + declare public readonly encryptionAssumedRoleIdentifier: pulumi.Output; + /** + * Custom encryption key ARN. + */ + declare public readonly encryptionKey: pulumi.Output; + /** + * Allow to enable and configure additional endpoints (read protocols) to expose on the ClickHouse service. + */ + declare public readonly endpoints: pulumi.Output; + /** + * IAM role used for accessing objects in s3. + */ + declare public /*out*/ readonly iamRole: pulumi.Output; + /** + * When set to true the service is allowed to scale down to zero when idle. + */ + declare public readonly idleScaling: pulumi.Output; + /** + * Set minimum idling timeout (in minutes). Must be greater than or equal to 5 minutes. Must be set if idle_scaling is enabled. + */ + declare public readonly idleTimeoutMinutes: pulumi.Output; + /** + * List of IP addresses allowed to access the service. + */ + declare public readonly ipAccesses: pulumi.Output; + /** + * If true, it indicates this is a primary service using its own data. If false it means this service is a secondary service, thus using data from a warehouse. + */ + declare public /*out*/ readonly isPrimary: pulumi.Output; + /** + * Maximum memory of a single replica during auto-scaling in GiB. + */ + declare public readonly maxReplicaMemoryGb: pulumi.Output; + /** + * Maximum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + declare public readonly maxTotalMemoryGb: pulumi.Output; + /** + * Minimum memory of a single replica during auto-scaling in GiB. + */ + declare public readonly minReplicaMemoryGb: pulumi.Output; + /** + * Minimum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + declare public readonly minTotalMemoryGb: pulumi.Output; + /** + * User defined identifier for the service. + */ + declare public readonly name: pulumi.Output; + /** + * Number of replicas for the service. + */ + declare public readonly numReplicas: pulumi.Output; + /** + * Password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + declare public readonly password: pulumi.Output; + /** + * SHA256 hash of password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + declare public readonly passwordHash: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + declare public readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this to trigger a password update when using password_wo. + */ + declare public readonly passwordWoVersion: pulumi.Output; + /** + * Service config for private endpoints + */ + declare public /*out*/ readonly privateEndpointConfig: pulumi.Output; + /** + * Configuration of the query API endpoints feature. + */ + declare public readonly queryApiEndpoints: pulumi.Output; + /** + * Indicates if this service should be read only. Only allowed for secondary services, those which share data with another service (i.e. when `warehouse_id` field is set). + */ + declare public readonly readonly: pulumi.Output; + /** + * Region within the cloud provider in which the service is deployed in. + */ + declare public readonly region: pulumi.Output; + /** + * Release channel to use for this service. Can be 'default', 'fast' or 'slow'. + */ + declare public readonly releaseChannel: pulumi.Output; + /** + * Tags associated with the service as key-value pairs. + */ + declare public readonly tags: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Tier of the service: 'development', 'production'. Required for organizations using the Legacy ClickHouse Cloud Tiers, must be omitted for organizations using the new ClickHouse Cloud Tiers. + */ + declare public readonly tier: pulumi.Output; + /** + * Configuration of the Transparent Data Encryption (TDE) feature. Requires an organization with the Enterprise plan. + */ + declare public readonly transparentDataEncryption: pulumi.Output; + /** + * Set it to the 'warehouse_id' attribute of another service to share the data with it. The service must be in the same cloud and region. + */ + declare public readonly warehouseId: pulumi.Output; + + /** + * Create a Service resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServiceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ServiceArgs | ServiceState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ServiceState | undefined; + resourceInputs["backupConfiguration"] = state?.backupConfiguration; + resourceInputs["backupId"] = state?.backupId; + resourceInputs["byocId"] = state?.byocId; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["complianceType"] = state?.complianceType; + resourceInputs["doubleSha1PasswordHash"] = state?.doubleSha1PasswordHash; + resourceInputs["enableCoreDumps"] = state?.enableCoreDumps; + resourceInputs["encryptionAssumedRoleIdentifier"] = state?.encryptionAssumedRoleIdentifier; + resourceInputs["encryptionKey"] = state?.encryptionKey; + resourceInputs["endpoints"] = state?.endpoints; + resourceInputs["iamRole"] = state?.iamRole; + resourceInputs["idleScaling"] = state?.idleScaling; + resourceInputs["idleTimeoutMinutes"] = state?.idleTimeoutMinutes; + resourceInputs["ipAccesses"] = state?.ipAccesses; + resourceInputs["isPrimary"] = state?.isPrimary; + resourceInputs["maxReplicaMemoryGb"] = state?.maxReplicaMemoryGb; + resourceInputs["maxTotalMemoryGb"] = state?.maxTotalMemoryGb; + resourceInputs["minReplicaMemoryGb"] = state?.minReplicaMemoryGb; + resourceInputs["minTotalMemoryGb"] = state?.minTotalMemoryGb; + resourceInputs["name"] = state?.name; + resourceInputs["numReplicas"] = state?.numReplicas; + resourceInputs["password"] = state?.password; + resourceInputs["passwordHash"] = state?.passwordHash; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + resourceInputs["privateEndpointConfig"] = state?.privateEndpointConfig; + resourceInputs["queryApiEndpoints"] = state?.queryApiEndpoints; + resourceInputs["readonly"] = state?.readonly; + resourceInputs["region"] = state?.region; + resourceInputs["releaseChannel"] = state?.releaseChannel; + resourceInputs["tags"] = state?.tags; + resourceInputs["tier"] = state?.tier; + resourceInputs["transparentDataEncryption"] = state?.transparentDataEncryption; + resourceInputs["warehouseId"] = state?.warehouseId; + } else { + const args = argsOrState as ServiceArgs | undefined; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.ipAccesses === undefined && !opts.urn) { + throw new Error("Missing required property 'ipAccesses'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + resourceInputs["backupConfiguration"] = args?.backupConfiguration; + resourceInputs["backupId"] = args?.backupId; + resourceInputs["byocId"] = args?.byocId; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["complianceType"] = args?.complianceType; + resourceInputs["doubleSha1PasswordHash"] = args?.doubleSha1PasswordHash ? pulumi.secret(args.doubleSha1PasswordHash) : undefined; + resourceInputs["enableCoreDumps"] = args?.enableCoreDumps; + resourceInputs["encryptionAssumedRoleIdentifier"] = args?.encryptionAssumedRoleIdentifier; + resourceInputs["encryptionKey"] = args?.encryptionKey; + resourceInputs["endpoints"] = args?.endpoints; + resourceInputs["idleScaling"] = args?.idleScaling; + resourceInputs["idleTimeoutMinutes"] = args?.idleTimeoutMinutes; + resourceInputs["ipAccesses"] = args?.ipAccesses; + resourceInputs["maxReplicaMemoryGb"] = args?.maxReplicaMemoryGb; + resourceInputs["maxTotalMemoryGb"] = args?.maxTotalMemoryGb; + resourceInputs["minReplicaMemoryGb"] = args?.minReplicaMemoryGb; + resourceInputs["minTotalMemoryGb"] = args?.minTotalMemoryGb; + resourceInputs["name"] = args?.name; + resourceInputs["numReplicas"] = args?.numReplicas; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordHash"] = args?.passwordHash ? pulumi.secret(args.passwordHash) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + resourceInputs["queryApiEndpoints"] = args?.queryApiEndpoints; + resourceInputs["readonly"] = args?.readonly; + resourceInputs["region"] = args?.region; + resourceInputs["releaseChannel"] = args?.releaseChannel; + resourceInputs["tags"] = args?.tags; + resourceInputs["tier"] = args?.tier; + resourceInputs["transparentDataEncryption"] = args?.transparentDataEncryption; + resourceInputs["warehouseId"] = args?.warehouseId; + resourceInputs["iamRole"] = undefined /*out*/; + resourceInputs["isPrimary"] = undefined /*out*/; + resourceInputs["privateEndpointConfig"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["doubleSha1PasswordHash", "password", "passwordHash", "passwordWo"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Service.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Service resources. + */ +export interface ServiceState { + /** + * Configuration of service backup settings. + */ + backupConfiguration?: pulumi.Input; + /** + * ID of the backup to restore when creating new service. If specified, the service will be created as a restore operation + */ + backupId?: pulumi.Input; + /** + * BYOC ID related to the cloud provider account you want to create this service into. + */ + byocId?: pulumi.Input; + /** + * Cloud provider ('aws', 'gcp', or 'azure') in which the service is deployed in. + */ + cloudProvider?: pulumi.Input; + /** + * Compliance type of the service. Can be 'hipaa', 'pci'. Required for organizations that wish to deploy their services in the hipaa/pci compliant environment. NOTE: hipaa/pci compliance should be enabled for your ClickHouse organization before using this field. + */ + complianceType?: pulumi.Input; + /** + * Double SHA1 hash of password for connecting with the MySQL protocol. Cannot be specified if `password` or `password_wo` is specified. + */ + doubleSha1PasswordHash?: pulumi.Input; + /** + * Enable core dumps for the service. + */ + enableCoreDumps?: pulumi.Input; + /** + * Custom role identifier ARN. + */ + encryptionAssumedRoleIdentifier?: pulumi.Input; + /** + * Custom encryption key ARN. + */ + encryptionKey?: pulumi.Input; + /** + * Allow to enable and configure additional endpoints (read protocols) to expose on the ClickHouse service. + */ + endpoints?: pulumi.Input; + /** + * IAM role used for accessing objects in s3. + */ + iamRole?: pulumi.Input; + /** + * When set to true the service is allowed to scale down to zero when idle. + */ + idleScaling?: pulumi.Input; + /** + * Set minimum idling timeout (in minutes). Must be greater than or equal to 5 minutes. Must be set if idle_scaling is enabled. + */ + idleTimeoutMinutes?: pulumi.Input; + /** + * List of IP addresses allowed to access the service. + */ + ipAccesses?: pulumi.Input[]>; + /** + * If true, it indicates this is a primary service using its own data. If false it means this service is a secondary service, thus using data from a warehouse. + */ + isPrimary?: pulumi.Input; + /** + * Maximum memory of a single replica during auto-scaling in GiB. + */ + maxReplicaMemoryGb?: pulumi.Input; + /** + * Maximum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + maxTotalMemoryGb?: pulumi.Input; + /** + * Minimum memory of a single replica during auto-scaling in GiB. + */ + minReplicaMemoryGb?: pulumi.Input; + /** + * Minimum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + minTotalMemoryGb?: pulumi.Input; + /** + * User defined identifier for the service. + */ + name?: pulumi.Input; + /** + * Number of replicas for the service. + */ + numReplicas?: pulumi.Input; + /** + * Password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + password?: pulumi.Input; + /** + * SHA256 hash of password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + passwordHash?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * Service config for private endpoints + */ + privateEndpointConfig?: pulumi.Input; + /** + * Configuration of the query API endpoints feature. + */ + queryApiEndpoints?: pulumi.Input; + /** + * Indicates if this service should be read only. Only allowed for secondary services, those which share data with another service (i.e. when `warehouse_id` field is set). + */ + readonly?: pulumi.Input; + /** + * Region within the cloud provider in which the service is deployed in. + */ + region?: pulumi.Input; + /** + * Release channel to use for this service. Can be 'default', 'fast' or 'slow'. + */ + releaseChannel?: pulumi.Input; + /** + * Tags associated with the service as key-value pairs. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Tier of the service: 'development', 'production'. Required for organizations using the Legacy ClickHouse Cloud Tiers, must be omitted for organizations using the new ClickHouse Cloud Tiers. + */ + tier?: pulumi.Input; + /** + * Configuration of the Transparent Data Encryption (TDE) feature. Requires an organization with the Enterprise plan. + */ + transparentDataEncryption?: pulumi.Input; + /** + * Set it to the 'warehouse_id' attribute of another service to share the data with it. The service must be in the same cloud and region. + */ + warehouseId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Service resource. + */ +export interface ServiceArgs { + /** + * Configuration of service backup settings. + */ + backupConfiguration?: pulumi.Input; + /** + * ID of the backup to restore when creating new service. If specified, the service will be created as a restore operation + */ + backupId?: pulumi.Input; + /** + * BYOC ID related to the cloud provider account you want to create this service into. + */ + byocId?: pulumi.Input; + /** + * Cloud provider ('aws', 'gcp', or 'azure') in which the service is deployed in. + */ + cloudProvider: pulumi.Input; + /** + * Compliance type of the service. Can be 'hipaa', 'pci'. Required for organizations that wish to deploy their services in the hipaa/pci compliant environment. NOTE: hipaa/pci compliance should be enabled for your ClickHouse organization before using this field. + */ + complianceType?: pulumi.Input; + /** + * Double SHA1 hash of password for connecting with the MySQL protocol. Cannot be specified if `password` or `password_wo` is specified. + */ + doubleSha1PasswordHash?: pulumi.Input; + /** + * Enable core dumps for the service. + */ + enableCoreDumps?: pulumi.Input; + /** + * Custom role identifier ARN. + */ + encryptionAssumedRoleIdentifier?: pulumi.Input; + /** + * Custom encryption key ARN. + */ + encryptionKey?: pulumi.Input; + /** + * Allow to enable and configure additional endpoints (read protocols) to expose on the ClickHouse service. + */ + endpoints?: pulumi.Input; + /** + * When set to true the service is allowed to scale down to zero when idle. + */ + idleScaling?: pulumi.Input; + /** + * Set minimum idling timeout (in minutes). Must be greater than or equal to 5 minutes. Must be set if idle_scaling is enabled. + */ + idleTimeoutMinutes?: pulumi.Input; + /** + * List of IP addresses allowed to access the service. + */ + ipAccesses: pulumi.Input[]>; + /** + * Maximum memory of a single replica during auto-scaling in GiB. + */ + maxReplicaMemoryGb?: pulumi.Input; + /** + * Maximum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + maxTotalMemoryGb?: pulumi.Input; + /** + * Minimum memory of a single replica during auto-scaling in GiB. + */ + minReplicaMemoryGb?: pulumi.Input; + /** + * Minimum total memory of all workers during auto-scaling in GiB. + * + * @deprecated Deprecated + */ + minTotalMemoryGb?: pulumi.Input; + /** + * User defined identifier for the service. + */ + name?: pulumi.Input; + /** + * Number of replicas for the service. + */ + numReplicas?: pulumi.Input; + /** + * Password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + password?: pulumi.Input; + /** + * SHA256 hash of password for the default user. One of either `password`, `password_wo`, or `password_hash` must be specified. + */ + passwordHash?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * Configuration of the query API endpoints feature. + */ + queryApiEndpoints?: pulumi.Input; + /** + * Indicates if this service should be read only. Only allowed for secondary services, those which share data with another service (i.e. when `warehouse_id` field is set). + */ + readonly?: pulumi.Input; + /** + * Region within the cloud provider in which the service is deployed in. + */ + region: pulumi.Input; + /** + * Release channel to use for this service. Can be 'default', 'fast' or 'slow'. + */ + releaseChannel?: pulumi.Input; + /** + * Tags associated with the service as key-value pairs. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Tier of the service: 'development', 'production'. Required for organizations using the Legacy ClickHouse Cloud Tiers, must be omitted for organizations using the new ClickHouse Cloud Tiers. + */ + tier?: pulumi.Input; + /** + * Configuration of the Transparent Data Encryption (TDE) feature. Requires an organization with the Enterprise plan. + */ + transparentDataEncryption?: pulumi.Input; + /** + * Set it to the 'warehouse_id' attribute of another service to share the data with it. The service must be in the same cloud and region. + */ + warehouseId?: pulumi.Input; +} diff --git a/pulumi-clickhouse/servicePrivateEndpointsAttachment.ts b/pulumi-clickhouse/servicePrivateEndpointsAttachment.ts new file mode 100644 index 00000000..860da497 --- /dev/null +++ b/pulumi-clickhouse/servicePrivateEndpointsAttachment.ts @@ -0,0 +1,95 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class ServicePrivateEndpointsAttachment extends pulumi.CustomResource { + /** + * Get an existing ServicePrivateEndpointsAttachment 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. + */ + public static get(name: string, id: pulumi.Input, state?: ServicePrivateEndpointsAttachmentState, opts?: pulumi.CustomResourceOptions): ServicePrivateEndpointsAttachment { + return new ServicePrivateEndpointsAttachment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'clickhouse:index/servicePrivateEndpointsAttachment:ServicePrivateEndpointsAttachment'; + + /** + * Returns true if the given object is an instance of ServicePrivateEndpointsAttachment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ServicePrivateEndpointsAttachment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ServicePrivateEndpointsAttachment.__pulumiType; + } + + /** + * List of private endpoint IDs + */ + declare public readonly privateEndpointIds: pulumi.Output; + /** + * ClickHouse Service ID + */ + declare public readonly serviceId: pulumi.Output; + + /** + * Create a ServicePrivateEndpointsAttachment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ServicePrivateEndpointsAttachmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ServicePrivateEndpointsAttachmentArgs | ServicePrivateEndpointsAttachmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ServicePrivateEndpointsAttachmentState | undefined; + resourceInputs["privateEndpointIds"] = state?.privateEndpointIds; + resourceInputs["serviceId"] = state?.serviceId; + } else { + const args = argsOrState as ServicePrivateEndpointsAttachmentArgs | undefined; + resourceInputs["privateEndpointIds"] = args?.privateEndpointIds; + resourceInputs["serviceId"] = args?.serviceId; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServicePrivateEndpointsAttachment.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering ServicePrivateEndpointsAttachment resources. + */ +export interface ServicePrivateEndpointsAttachmentState { + /** + * List of private endpoint IDs + */ + privateEndpointIds?: pulumi.Input[]>; + /** + * ClickHouse Service ID + */ + serviceId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ServicePrivateEndpointsAttachment resource. + */ +export interface ServicePrivateEndpointsAttachmentArgs { + /** + * List of private endpoint IDs + */ + privateEndpointIds?: pulumi.Input[]>; + /** + * ClickHouse Service ID + */ + serviceId?: pulumi.Input; +} diff --git a/pulumi-clickhouse/serviceTransparentDataEncryptionKeyAssociation.ts b/pulumi-clickhouse/serviceTransparentDataEncryptionKeyAssociation.ts new file mode 100644 index 00000000..710832bc --- /dev/null +++ b/pulumi-clickhouse/serviceTransparentDataEncryptionKeyAssociation.ts @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class ServiceTransparentDataEncryptionKeyAssociation extends pulumi.CustomResource { + /** + * Get an existing ServiceTransparentDataEncryptionKeyAssociation 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. + */ + public static get(name: string, id: pulumi.Input, state?: ServiceTransparentDataEncryptionKeyAssociationState, opts?: pulumi.CustomResourceOptions): ServiceTransparentDataEncryptionKeyAssociation { + return new ServiceTransparentDataEncryptionKeyAssociation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'clickhouse:index/serviceTransparentDataEncryptionKeyAssociation:ServiceTransparentDataEncryptionKeyAssociation'; + + /** + * Returns true if the given object is an instance of ServiceTransparentDataEncryptionKeyAssociation. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ServiceTransparentDataEncryptionKeyAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ServiceTransparentDataEncryptionKeyAssociation.__pulumiType; + } + + /** + * ID of the Encryption key to use for data encryption. Must be an ARN for AWS services or a Key Resource Path for GCP services. + */ + declare public readonly keyId: pulumi.Output; + /** + * ClickHouse Service ID + */ + declare public readonly serviceId: pulumi.Output; + + /** + * Create a ServiceTransparentDataEncryptionKeyAssociation resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServiceTransparentDataEncryptionKeyAssociationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ServiceTransparentDataEncryptionKeyAssociationArgs | ServiceTransparentDataEncryptionKeyAssociationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ServiceTransparentDataEncryptionKeyAssociationState | undefined; + resourceInputs["keyId"] = state?.keyId; + resourceInputs["serviceId"] = state?.serviceId; + } else { + const args = argsOrState as ServiceTransparentDataEncryptionKeyAssociationArgs | undefined; + if (args?.keyId === undefined && !opts.urn) { + throw new Error("Missing required property 'keyId'"); + } + if (args?.serviceId === undefined && !opts.urn) { + throw new Error("Missing required property 'serviceId'"); + } + resourceInputs["keyId"] = args?.keyId; + resourceInputs["serviceId"] = args?.serviceId; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServiceTransparentDataEncryptionKeyAssociation.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering ServiceTransparentDataEncryptionKeyAssociation resources. + */ +export interface ServiceTransparentDataEncryptionKeyAssociationState { + /** + * ID of the Encryption key to use for data encryption. Must be an ARN for AWS services or a Key Resource Path for GCP services. + */ + keyId?: pulumi.Input; + /** + * ClickHouse Service ID + */ + serviceId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ServiceTransparentDataEncryptionKeyAssociation resource. + */ +export interface ServiceTransparentDataEncryptionKeyAssociationArgs { + /** + * ID of the Encryption key to use for data encryption. Must be an ARN for AWS services or a Key Resource Path for GCP services. + */ + keyId: pulumi.Input; + /** + * ClickHouse Service ID + */ + serviceId: pulumi.Input; +} diff --git a/pulumi-clickhouse/tsconfig.json b/pulumi-clickhouse/tsconfig.json new file mode 100644 index 00000000..b701407f --- /dev/null +++ b/pulumi-clickhouse/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "ES2020", + "module": "commonjs", + "moduleResolution": "node", + "declaration": true, + "sourceMap": true, + "stripInternal": true, + "experimentalDecorators": true, + "noFallthroughCasesInSwitch": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + }, + "files": [ + "config/index.ts", + "config/vars.ts", + "getApiKeyId.ts", + "getPrivateEndpointConfig.ts", + "index.ts", + "privateEndpointRegistration.ts", + "provider.ts", + "service.ts", + "servicePrivateEndpointsAttachment.ts", + "serviceTransparentDataEncryptionKeyAssociation.ts", + "types/index.ts", + "types/input.ts", + "types/output.ts", + "utilities.ts" + ] +} diff --git a/pulumi-clickhouse/types/index.ts b/pulumi-clickhouse/types/index.ts new file mode 100644 index 00000000..f0db2744 --- /dev/null +++ b/pulumi-clickhouse/types/index.ts @@ -0,0 +1,13 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as utilities from "../utilities"; + +// Export sub-modules: +import * as input from "./input"; +import * as output from "./output"; + +export { + input, + output, +}; diff --git a/pulumi-clickhouse/types/input.ts b/pulumi-clickhouse/types/input.ts new file mode 100644 index 00000000..0493f053 --- /dev/null +++ b/pulumi-clickhouse/types/input.ts @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; + +export interface ServiceBackupConfiguration { + /** + * Interval in hours between each backup. + */ + backupPeriodInHours?: pulumi.Input; + /** + * How long in hours to keep a backup before deleting it. + */ + backupRetentionPeriodInHours?: pulumi.Input; + /** + * Time of the day in UTC that indicates the start time of a 2 hours window to be used for backup. If set, backup_period_in_hours must be null and backups are created once a day. + */ + backupStartTime?: pulumi.Input; +} + +export interface ServiceEndpoints { + https?: pulumi.Input; + mysql?: pulumi.Input; + nativesecure?: pulumi.Input; +} + +export interface ServiceEndpointsHttps { + /** + * Endpoint host. + */ + host?: pulumi.Input; + /** + * Endpoint port. + */ + port?: pulumi.Input; +} + +export interface ServiceEndpointsMysql { + /** + * Wether to enable the mysql endpoint or not. + */ + enabled: pulumi.Input; + /** + * Endpoint host. + */ + host?: pulumi.Input; + /** + * Endpoint port. + */ + port?: pulumi.Input; +} + +export interface ServiceEndpointsNativesecure { + /** + * Endpoint host. + */ + host?: pulumi.Input; + /** + * Endpoint port. + */ + port?: pulumi.Input; +} + +export interface ServiceIpAccess { + /** + * Description of the IP address. + */ + description: pulumi.Input; + /** + * IP address allowed to access the service. In case you want to set the ip_access to anywhere you should set source to 0.0.0.0/0 + */ + source: pulumi.Input; +} + +export interface ServicePrivateEndpointConfig { + /** + * Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource. + */ + endpointServiceId?: pulumi.Input; + /** + * Private DNS Hostname of the VPC you created. + */ + privateDnsHostname?: pulumi.Input; +} + +export interface ServiceQueryApiEndpoints { + /** + * Comma separated list of domain names to be allowed cross-origin resource sharing (CORS) access to the query API. Leave this field empty to restrict access to backend servers only + */ + allowedOrigins?: pulumi.Input; + /** + * The UUIDs of the API Keys to grant access to the query API. + */ + apiKeyIds: pulumi.Input[]>; + /** + * The Database role that will be used to run the query. + */ + roles: pulumi.Input[]>; +} + +export interface ServiceTransparentDataEncryption { + /** + * If true, TDE is enabled for the service. + */ + enabled?: pulumi.Input; + /** + * ID of Role to be used for granting access to the Encryption Key. This is an ARN for AWS services and a Service Account Identifier for GCP. + */ + roleId?: pulumi.Input; +} diff --git a/pulumi-clickhouse/types/output.ts b/pulumi-clickhouse/types/output.ts new file mode 100644 index 00000000..8b378631 --- /dev/null +++ b/pulumi-clickhouse/types/output.ts @@ -0,0 +1,113 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; + +export interface ServiceBackupConfiguration { + /** + * Interval in hours between each backup. + */ + backupPeriodInHours: number; + /** + * How long in hours to keep a backup before deleting it. + */ + backupRetentionPeriodInHours: number; + /** + * Time of the day in UTC that indicates the start time of a 2 hours window to be used for backup. If set, backup_period_in_hours must be null and backups are created once a day. + */ + backupStartTime?: string; +} + +export interface ServiceEndpoints { + https: outputs.ServiceEndpointsHttps; + mysql?: outputs.ServiceEndpointsMysql; + nativesecure: outputs.ServiceEndpointsNativesecure; +} + +export interface ServiceEndpointsHttps { + /** + * Endpoint host. + */ + host: string; + /** + * Endpoint port. + */ + port: number; +} + +export interface ServiceEndpointsMysql { + /** + * Wether to enable the mysql endpoint or not. + */ + enabled: boolean; + /** + * Endpoint host. + */ + host: string; + /** + * Endpoint port. + */ + port: number; +} + +export interface ServiceEndpointsNativesecure { + /** + * Endpoint host. + */ + host: string; + /** + * Endpoint port. + */ + port: number; +} + +export interface ServiceIpAccess { + /** + * Description of the IP address. + */ + description: string; + /** + * IP address allowed to access the service. In case you want to set the ip_access to anywhere you should set source to 0.0.0.0/0 + */ + source: string; +} + +export interface ServicePrivateEndpointConfig { + /** + * Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource. + */ + endpointServiceId: string; + /** + * Private DNS Hostname of the VPC you created. + */ + privateDnsHostname: string; +} + +export interface ServiceQueryApiEndpoints { + /** + * Comma separated list of domain names to be allowed cross-origin resource sharing (CORS) access to the query API. Leave this field empty to restrict access to backend servers only + */ + allowedOrigins?: string; + /** + * The UUIDs of the API Keys to grant access to the query API. + */ + apiKeyIds: string[]; + /** + * The Database role that will be used to run the query. + */ + roles: string[]; +} + +export interface ServiceTransparentDataEncryption { + /** + * If true, TDE is enabled for the service. + */ + enabled: boolean; + /** + * ID of Role to be used for granting access to the Encryption Key. This is an ARN for AWS services and a Service Account Identifier for GCP. + */ + roleId: string; +} + diff --git a/pulumi-clickhouse/utilities.ts b/pulumi-clickhouse/utilities.ts new file mode 100644 index 00000000..8c832385 --- /dev/null +++ b/pulumi-clickhouse/utilities.ts @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as resproto from "@pulumi/pulumi/proto/resource_pb"; +import * as mutex from "async-mutex"; + +import * as runtime from "@pulumi/pulumi/runtime"; +import * as pulumi from "@pulumi/pulumi"; + +export function getEnv(...vars: string[]): string | undefined { + for (const v of vars) { + const value = process.env[v]; + if (value) { + return value; + } + } + return undefined; +} + +export function getEnvBoolean(...vars: string[]): boolean | undefined { + const s = getEnv(...vars); + if (s !== undefined) { + // NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what + // Terraform uses internally when parsing boolean values. + if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) { + return true; + } + if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) { + return false; + } + } + return undefined; +} + +export function getEnvNumber(...vars: string[]): number | undefined { + const s = getEnv(...vars); + if (s !== undefined) { + const f = parseFloat(s); + if (!isNaN(f)) { + return f; + } + } + return undefined; +} + +export function getVersion(): string { + let version = require('./package.json').version; + // Node allows for the version to be prefixed by a "v", while semver doesn't. + // If there is a v, strip it off. + if (version.indexOf('v') === 0) { + version = version.slice(1); + } + return version; +} + +/** @internal */ +export function resourceOptsDefaults(): any { + return { version: getVersion() }; +} + +/** @internal */ +export function lazyLoad(exports: any, props: string[], loadModule: any) { + for (let property of props) { + Object.defineProperty(exports, property, { + enumerable: true, + get: function() { + return loadModule()[property]; + }, + }); + } +} + +/** @internal */ +export async function callAsync( + tok: string, + props: pulumi.Inputs, + res?: pulumi.Resource, + opts?: {property?: string}, +): Promise { + const o: any = runtime.call(tok, props, res); + const value = await o.promise(true /*withUnknowns*/); + const isKnown = await o.isKnown; + const isSecret = await o.isSecret; + const problem: string|undefined = + !isKnown ? "an unknown value" + : isSecret ? "a secret value" + : undefined; + // Ingoring o.resources silently. They are typically non-empty, r.f() calls include r as a dependency. + if (problem) { + throw new Error(`Plain resource method "${tok}" incorrectly returned ${problem}. ` + + "This is an error in the provider, please report this to the provider developer."); + } + // Extract a single property if requested. + if (opts && opts.property) { + return value[opts.property]; + } + return value; +} + +const _packageLock = new mutex.Mutex(); +var _packageRef : undefined | string = undefined; +export async function getPackage() : Promise { + if (_packageRef === undefined) { + if (!runtime.supportsParameterization()) { + throw new Error("The Pulumi CLI does not support parameterization. Please update the Pulumi CLI"); + } + + await _packageLock.acquire(); + if (_packageRef === undefined) { + const monitor = runtime.getMonitor(); + const params = new resproto.Parameterization(); + params.setName("clickhouse"); + params.setVersion("3.10.0"); + params.setValue(Uint8Array.from(atob("eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2NsaWNraG91c2UvY2xpY2tob3VzZSIsInZlcnNpb24iOiIzLjEwLjAifX0="), c => c.charCodeAt(0))); + + const req = new resproto.RegisterPackageRequest(); + req.setName("terraform-provider"); + req.setVersion("1.1.0"); + req.setDownloadUrl(""); + req.setParameterization(params); + const resp : any = await new Promise((resolve, reject) => { + monitor!.registerPackage(req, (err: any, resp: any) => { + if (err) { + reject(err); + } else { + resolve(resp); + } + }); + }); + _packageRef = resp.getRef(); + } + _packageLock.release(); + } + return _packageRef as string; +} diff --git a/pulumi-redpanda/README.md b/pulumi-redpanda/README.md new file mode 100644 index 00000000..cd45064b --- /dev/null +++ b/pulumi-redpanda/README.md @@ -0,0 +1,3 @@ +> This provider is a derived work of the [Terraform Provider](https://github.com/redpanda-data/terraform-provider-redpanda) +> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature, +> please consult the source [`terraform-provider-redpanda` repo](https://github.com/redpanda-data/terraform-provider-redpanda/issues). diff --git a/pulumi-redpanda/acl.ts b/pulumi-redpanda/acl.ts new file mode 100644 index 00000000..d05c4495 --- /dev/null +++ b/pulumi-redpanda/acl.ts @@ -0,0 +1,217 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class Acl extends pulumi.CustomResource { + /** + * Get an existing Acl 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. + */ + public static get(name: string, id: pulumi.Input, state?: AclState, opts?: pulumi.CustomResourceOptions): Acl { + return new Acl(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/acl:Acl'; + + /** + * Returns true if the given object is an instance of Acl. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Acl { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Acl.__pulumiType; + } + + /** + * When set to true, allows the resource to be removed from state even if the cluster is unreachable + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + declare public readonly clusterApiUrl: pulumi.Output; + /** + * The host address to use for this ACL + */ + declare public readonly host: pulumi.Output; + /** + * The operation type that shall be allowed or denied (e.g READ) + */ + declare public readonly operation: pulumi.Output; + /** + * The permission type. It determines whether the operation should be ALLOWED or DENIED + */ + declare public readonly permissionType: pulumi.Output; + /** + * The principal to apply this ACL for + */ + declare public readonly principal: pulumi.Output; + /** + * The name of the resource this ACL entry will be on + */ + declare public readonly resourceName: pulumi.Output; + /** + * The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names + */ + declare public readonly resourcePatternType: pulumi.Output; + /** + * The type of the resource (TOPIC, GROUP, etc...) this ACL shall target + */ + declare public readonly resourceType: pulumi.Output; + + /** + * Create a Acl resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AclArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AclArgs | AclState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AclState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["host"] = state?.host; + resourceInputs["operation"] = state?.operation; + resourceInputs["permissionType"] = state?.permissionType; + resourceInputs["principal"] = state?.principal; + resourceInputs["resourceName"] = state?.resourceName; + resourceInputs["resourcePatternType"] = state?.resourcePatternType; + resourceInputs["resourceType"] = state?.resourceType; + } else { + const args = argsOrState as AclArgs | undefined; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + if (args?.host === undefined && !opts.urn) { + throw new Error("Missing required property 'host'"); + } + if (args?.operation === undefined && !opts.urn) { + throw new Error("Missing required property 'operation'"); + } + if (args?.permissionType === undefined && !opts.urn) { + throw new Error("Missing required property 'permissionType'"); + } + if (args?.principal === undefined && !opts.urn) { + throw new Error("Missing required property 'principal'"); + } + if (args?.resourceName === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceName'"); + } + if (args?.resourcePatternType === undefined && !opts.urn) { + throw new Error("Missing required property 'resourcePatternType'"); + } + if (args?.resourceType === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["host"] = args?.host; + resourceInputs["operation"] = args?.operation; + resourceInputs["permissionType"] = args?.permissionType; + resourceInputs["principal"] = args?.principal; + resourceInputs["resourceName"] = args?.resourceName; + resourceInputs["resourcePatternType"] = args?.resourcePatternType; + resourceInputs["resourceType"] = args?.resourceType; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Acl.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Acl resources. + */ +export interface AclState { + /** + * When set to true, allows the resource to be removed from state even if the cluster is unreachable + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * The host address to use for this ACL + */ + host?: pulumi.Input; + /** + * The operation type that shall be allowed or denied (e.g READ) + */ + operation?: pulumi.Input; + /** + * The permission type. It determines whether the operation should be ALLOWED or DENIED + */ + permissionType?: pulumi.Input; + /** + * The principal to apply this ACL for + */ + principal?: pulumi.Input; + /** + * The name of the resource this ACL entry will be on + */ + resourceName?: pulumi.Input; + /** + * The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names + */ + resourcePatternType?: pulumi.Input; + /** + * The type of the resource (TOPIC, GROUP, etc...) this ACL shall target + */ + resourceType?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Acl resource. + */ +export interface AclArgs { + /** + * When set to true, allows the resource to be removed from state even if the cluster is unreachable + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * The host address to use for this ACL + */ + host: pulumi.Input; + /** + * The operation type that shall be allowed or denied (e.g READ) + */ + operation: pulumi.Input; + /** + * The permission type. It determines whether the operation should be ALLOWED or DENIED + */ + permissionType: pulumi.Input; + /** + * The principal to apply this ACL for + */ + principal: pulumi.Input; + /** + * The name of the resource this ACL entry will be on + */ + resourceName: pulumi.Input; + /** + * The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names + */ + resourcePatternType: pulumi.Input; + /** + * The type of the resource (TOPIC, GROUP, etc...) this ACL shall target + */ + resourceType: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/acl.d.ts b/pulumi-redpanda/bin/acl.d.ts new file mode 100644 index 00000000..10df39c3 --- /dev/null +++ b/pulumi-redpanda/bin/acl.d.ts @@ -0,0 +1,144 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class Acl extends pulumi.CustomResource { + /** + * Get an existing Acl 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: string, id: pulumi.Input, state?: AclState, opts?: pulumi.CustomResourceOptions): Acl; + /** + * Returns true if the given object is an instance of Acl. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Acl; + /** + * When set to true, allows the resource to be removed from state even if the cluster is unreachable + */ + readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + readonly clusterApiUrl: pulumi.Output; + /** + * The host address to use for this ACL + */ + readonly host: pulumi.Output; + /** + * The operation type that shall be allowed or denied (e.g READ) + */ + readonly operation: pulumi.Output; + /** + * The permission type. It determines whether the operation should be ALLOWED or DENIED + */ + readonly permissionType: pulumi.Output; + /** + * The principal to apply this ACL for + */ + readonly principal: pulumi.Output; + /** + * The name of the resource this ACL entry will be on + */ + readonly resourceName: pulumi.Output; + /** + * The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names + */ + readonly resourcePatternType: pulumi.Output; + /** + * The type of the resource (TOPIC, GROUP, etc...) this ACL shall target + */ + readonly resourceType: pulumi.Output; + /** + * Create a Acl resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AclArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Acl resources. + */ +export interface AclState { + /** + * When set to true, allows the resource to be removed from state even if the cluster is unreachable + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * The host address to use for this ACL + */ + host?: pulumi.Input; + /** + * The operation type that shall be allowed or denied (e.g READ) + */ + operation?: pulumi.Input; + /** + * The permission type. It determines whether the operation should be ALLOWED or DENIED + */ + permissionType?: pulumi.Input; + /** + * The principal to apply this ACL for + */ + principal?: pulumi.Input; + /** + * The name of the resource this ACL entry will be on + */ + resourceName?: pulumi.Input; + /** + * The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names + */ + resourcePatternType?: pulumi.Input; + /** + * The type of the resource (TOPIC, GROUP, etc...) this ACL shall target + */ + resourceType?: pulumi.Input; +} +/** + * The set of arguments for constructing a Acl resource. + */ +export interface AclArgs { + /** + * When set to true, allows the resource to be removed from state even if the cluster is unreachable + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * The host address to use for this ACL + */ + host: pulumi.Input; + /** + * The operation type that shall be allowed or denied (e.g READ) + */ + operation: pulumi.Input; + /** + * The permission type. It determines whether the operation should be ALLOWED or DENIED + */ + permissionType: pulumi.Input; + /** + * The principal to apply this ACL for + */ + principal: pulumi.Input; + /** + * The name of the resource this ACL entry will be on + */ + resourceName: pulumi.Input; + /** + * The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names + */ + resourcePatternType: pulumi.Input; + /** + * The type of the resource (TOPIC, GROUP, etc...) this ACL shall target + */ + resourceType: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/acl.js b/pulumi-redpanda/bin/acl.js new file mode 100644 index 00000000..a0140c64 --- /dev/null +++ b/pulumi-redpanda/bin/acl.js @@ -0,0 +1,89 @@ +"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.Acl = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Acl extends pulumi.CustomResource { + /** + * Get an existing Acl 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 Acl(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Acl. 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'] === Acl.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["host"] = state?.host; + resourceInputs["operation"] = state?.operation; + resourceInputs["permissionType"] = state?.permissionType; + resourceInputs["principal"] = state?.principal; + resourceInputs["resourceName"] = state?.resourceName; + resourceInputs["resourcePatternType"] = state?.resourcePatternType; + resourceInputs["resourceType"] = state?.resourceType; + } + else { + const args = argsOrState; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + if (args?.host === undefined && !opts.urn) { + throw new Error("Missing required property 'host'"); + } + if (args?.operation === undefined && !opts.urn) { + throw new Error("Missing required property 'operation'"); + } + if (args?.permissionType === undefined && !opts.urn) { + throw new Error("Missing required property 'permissionType'"); + } + if (args?.principal === undefined && !opts.urn) { + throw new Error("Missing required property 'principal'"); + } + if (args?.resourceName === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceName'"); + } + if (args?.resourcePatternType === undefined && !opts.urn) { + throw new Error("Missing required property 'resourcePatternType'"); + } + if (args?.resourceType === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["host"] = args?.host; + resourceInputs["operation"] = args?.operation; + resourceInputs["permissionType"] = args?.permissionType; + resourceInputs["principal"] = args?.principal; + resourceInputs["resourceName"] = args?.resourceName; + resourceInputs["resourcePatternType"] = args?.resourcePatternType; + resourceInputs["resourceType"] = args?.resourceType; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Acl.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Acl = Acl; +/** @internal */ +Acl.__pulumiType = 'redpanda:index/acl:Acl'; +//# sourceMappingURL=acl.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/acl.js.map b/pulumi-redpanda/bin/acl.js.map new file mode 100644 index 00000000..eb5d8db2 --- /dev/null +++ b/pulumi-redpanda/bin/acl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"acl.js","sourceRoot":"","sources":["../acl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/cluster.d.ts b/pulumi-redpanda/bin/cluster.d.ts new file mode 100644 index 00000000..3261fd03 --- /dev/null +++ b/pulumi-redpanda/bin/cluster.d.ts @@ -0,0 +1,443 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class Cluster extends pulumi.CustomResource { + /** + * Get an existing Cluster 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: string, id: pulumi.Input, state?: ClusterState, opts?: pulumi.CustomResourceOptions): Cluster; + /** + * Returns true if the given object is an instance of Cluster. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Cluster; + /** + * Allows deletion of the cluster. Defaults to false. + */ + readonly allowDeletion: pulumi.Output; + /** + * API gateway access mode. Can be NETWORK_ACCESS_MODE_PRIVATE or NETWORK_ACCESS_MODE_PUBLIC. + */ + readonly apiGatewayAccess: pulumi.Output; + /** + * AWS PrivateLink configuration. + */ + readonly awsPrivateLink: pulumi.Output; + /** + * Azure Private Link configuration. + */ + readonly azurePrivateLink: pulumi.Output; + /** + * Cloud provider where resources are created. + */ + readonly cloudProvider: pulumi.Output; + /** + * Cloud storage configuration for tiered storage. + */ + readonly cloudStorage: pulumi.Output; + /** + * The URL of the cluster API. + */ + readonly clusterApiUrl: pulumi.Output; + /** + * Configuration for the cluster. + */ + readonly clusterConfiguration: pulumi.Output; + /** + * Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated. + */ + readonly clusterType: pulumi.Output; + /** + * Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice. + */ + readonly connectionType: pulumi.Output; + /** + * Timestamp when the cluster was created. + */ + readonly createdAt: pulumi.Output; + /** + * The actual running Redpanda version of the cluster. + */ + readonly currentRedpandaVersion: pulumi.Output; + /** + * Customer managed resources configuration for the cluster. + */ + readonly customerManagedResources: pulumi.Output; + /** + * The target Redpanda version during an upgrade. + */ + readonly desiredRedpandaVersion: pulumi.Output; + /** + * If true, GCP global access is enabled. + */ + readonly gcpGlobalAccessEnabled: pulumi.Output; + /** + * GCP Private Service Connect configuration. + */ + readonly gcpPrivateServiceConnect: pulumi.Output; + /** + * HTTP Proxy properties. + */ + readonly httpProxy: pulumi.Output; + /** + * Cluster's Kafka API properties. + */ + readonly kafkaApi: pulumi.Output; + /** + * Kafka Connect configuration. + */ + readonly kafkaConnect: pulumi.Output; + /** + * Maintenance window configuration for the cluster. + */ + readonly maintenanceWindowConfig: pulumi.Output; + /** + * Unique name of the cluster. + */ + readonly name: pulumi.Output; + /** + * NAT gateway IP addresses for the cluster. + */ + readonly natGateways: pulumi.Output; + /** + * Network ID where cluster is placed. + */ + readonly networkId: pulumi.Output; + /** + * Prometheus metrics endpoint properties. + */ + readonly prometheus: pulumi.Output; + /** + * IDs of clusters that can create read-only topics from this cluster. + */ + readonly readReplicaClusterIds: pulumi.Output; + /** + * Redpanda Console properties. + */ + readonly redpandaConsole: pulumi.Output; + /** + * Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature. + */ + readonly redpandaNodeCount: pulumi.Output; + /** + * Current Redpanda version of the cluster. + */ + readonly redpandaVersion: pulumi.Output; + /** + * Cloud provider region. Region represents the name of the region where the cluster will be provisioned. + */ + readonly region: pulumi.Output; + /** + * Resource group ID of the cluster. + */ + readonly resourceGroupId: pulumi.Output; + /** + * Schema Registry properties. + */ + readonly schemaRegistry: pulumi.Output; + /** + * Current state of the cluster. + */ + readonly state: pulumi.Output; + /** + * Detailed state description when cluster is in a non-ready state. + */ + readonly stateDescription: pulumi.Output; + /** + * Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix "gcp.network-tag.", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is "gcp.network-tag.network-tag-foo", the network tag named "network-tag-foo" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags. + */ + readonly tags: pulumi.Output<{ + [key: string]: string; + } | undefined>; + /** + * Usage tier of the cluster. + */ + readonly throughputTier: pulumi.Output; + readonly timeouts: pulumi.Output; + /** + * Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster. + */ + readonly zones: pulumi.Output; + /** + * Create a Cluster resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ClusterArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Cluster resources. + */ +export interface ClusterState { + /** + * Allows deletion of the cluster. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * API gateway access mode. Can be NETWORK_ACCESS_MODE_PRIVATE or NETWORK_ACCESS_MODE_PUBLIC. + */ + apiGatewayAccess?: pulumi.Input; + /** + * AWS PrivateLink configuration. + */ + awsPrivateLink?: pulumi.Input; + /** + * Azure Private Link configuration. + */ + azurePrivateLink?: pulumi.Input; + /** + * Cloud provider where resources are created. + */ + cloudProvider?: pulumi.Input; + /** + * Cloud storage configuration for tiered storage. + */ + cloudStorage?: pulumi.Input; + /** + * The URL of the cluster API. + */ + clusterApiUrl?: pulumi.Input; + /** + * Configuration for the cluster. + */ + clusterConfiguration?: pulumi.Input; + /** + * Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated. + */ + clusterType?: pulumi.Input; + /** + * Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice. + */ + connectionType?: pulumi.Input; + /** + * Timestamp when the cluster was created. + */ + createdAt?: pulumi.Input; + /** + * The actual running Redpanda version of the cluster. + */ + currentRedpandaVersion?: pulumi.Input; + /** + * Customer managed resources configuration for the cluster. + */ + customerManagedResources?: pulumi.Input; + /** + * The target Redpanda version during an upgrade. + */ + desiredRedpandaVersion?: pulumi.Input; + /** + * If true, GCP global access is enabled. + */ + gcpGlobalAccessEnabled?: pulumi.Input; + /** + * GCP Private Service Connect configuration. + */ + gcpPrivateServiceConnect?: pulumi.Input; + /** + * HTTP Proxy properties. + */ + httpProxy?: pulumi.Input; + /** + * Cluster's Kafka API properties. + */ + kafkaApi?: pulumi.Input; + /** + * Kafka Connect configuration. + */ + kafkaConnect?: pulumi.Input; + /** + * Maintenance window configuration for the cluster. + */ + maintenanceWindowConfig?: pulumi.Input; + /** + * Unique name of the cluster. + */ + name?: pulumi.Input; + /** + * NAT gateway IP addresses for the cluster. + */ + natGateways?: pulumi.Input[]>; + /** + * Network ID where cluster is placed. + */ + networkId?: pulumi.Input; + /** + * Prometheus metrics endpoint properties. + */ + prometheus?: pulumi.Input; + /** + * IDs of clusters that can create read-only topics from this cluster. + */ + readReplicaClusterIds?: pulumi.Input[]>; + /** + * Redpanda Console properties. + */ + redpandaConsole?: pulumi.Input; + /** + * Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature. + */ + redpandaNodeCount?: pulumi.Input; + /** + * Current Redpanda version of the cluster. + */ + redpandaVersion?: pulumi.Input; + /** + * Cloud provider region. Region represents the name of the region where the cluster will be provisioned. + */ + region?: pulumi.Input; + /** + * Resource group ID of the cluster. + */ + resourceGroupId?: pulumi.Input; + /** + * Schema Registry properties. + */ + schemaRegistry?: pulumi.Input; + /** + * Current state of the cluster. + */ + state?: pulumi.Input; + /** + * Detailed state description when cluster is in a non-ready state. + */ + stateDescription?: pulumi.Input; + /** + * Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix "gcp.network-tag.", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is "gcp.network-tag.network-tag-foo", the network tag named "network-tag-foo" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + /** + * Usage tier of the cluster. + */ + throughputTier?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster. + */ + zones?: pulumi.Input[]>; +} +/** + * The set of arguments for constructing a Cluster resource. + */ +export interface ClusterArgs { + /** + * Allows deletion of the cluster. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * API gateway access mode. Can be NETWORK_ACCESS_MODE_PRIVATE or NETWORK_ACCESS_MODE_PUBLIC. + */ + apiGatewayAccess?: pulumi.Input; + /** + * AWS PrivateLink configuration. + */ + awsPrivateLink?: pulumi.Input; + /** + * Azure Private Link configuration. + */ + azurePrivateLink?: pulumi.Input; + /** + * Cloud provider where resources are created. + */ + cloudProvider: pulumi.Input; + /** + * Cloud storage configuration for tiered storage. + */ + cloudStorage?: pulumi.Input; + /** + * Configuration for the cluster. + */ + clusterConfiguration?: pulumi.Input; + /** + * Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated. + */ + clusterType: pulumi.Input; + /** + * Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice. + */ + connectionType: pulumi.Input; + /** + * Customer managed resources configuration for the cluster. + */ + customerManagedResources?: pulumi.Input; + /** + * If true, GCP global access is enabled. + */ + gcpGlobalAccessEnabled?: pulumi.Input; + /** + * GCP Private Service Connect configuration. + */ + gcpPrivateServiceConnect?: pulumi.Input; + /** + * HTTP Proxy properties. + */ + httpProxy?: pulumi.Input; + /** + * Cluster's Kafka API properties. + */ + kafkaApi?: pulumi.Input; + /** + * Kafka Connect configuration. + */ + kafkaConnect?: pulumi.Input; + /** + * Maintenance window configuration for the cluster. + */ + maintenanceWindowConfig?: pulumi.Input; + /** + * Unique name of the cluster. + */ + name?: pulumi.Input; + /** + * Network ID where cluster is placed. + */ + networkId: pulumi.Input; + /** + * IDs of clusters that can create read-only topics from this cluster. + */ + readReplicaClusterIds?: pulumi.Input[]>; + /** + * Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature. + */ + redpandaNodeCount?: pulumi.Input; + /** + * Current Redpanda version of the cluster. + */ + redpandaVersion?: pulumi.Input; + /** + * Cloud provider region. Region represents the name of the region where the cluster will be provisioned. + */ + region: pulumi.Input; + /** + * Resource group ID of the cluster. + */ + resourceGroupId: pulumi.Input; + /** + * Schema Registry properties. + */ + schemaRegistry?: pulumi.Input; + /** + * Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix "gcp.network-tag.", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is "gcp.network-tag.network-tag-foo", the network tag named "network-tag-foo" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + /** + * Usage tier of the cluster. + */ + throughputTier: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster. + */ + zones: pulumi.Input[]>; +} diff --git a/pulumi-redpanda/bin/cluster.js b/pulumi-redpanda/bin/cluster.js new file mode 100644 index 00000000..2c911a63 --- /dev/null +++ b/pulumi-redpanda/bin/cluster.js @@ -0,0 +1,145 @@ +"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.Cluster = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Cluster extends pulumi.CustomResource { + /** + * Get an existing Cluster 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 Cluster(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Cluster. 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'] === Cluster.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["apiGatewayAccess"] = state?.apiGatewayAccess; + resourceInputs["awsPrivateLink"] = state?.awsPrivateLink; + resourceInputs["azurePrivateLink"] = state?.azurePrivateLink; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["cloudStorage"] = state?.cloudStorage; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["clusterConfiguration"] = state?.clusterConfiguration; + resourceInputs["clusterType"] = state?.clusterType; + resourceInputs["connectionType"] = state?.connectionType; + resourceInputs["createdAt"] = state?.createdAt; + resourceInputs["currentRedpandaVersion"] = state?.currentRedpandaVersion; + resourceInputs["customerManagedResources"] = state?.customerManagedResources; + resourceInputs["desiredRedpandaVersion"] = state?.desiredRedpandaVersion; + resourceInputs["gcpGlobalAccessEnabled"] = state?.gcpGlobalAccessEnabled; + resourceInputs["gcpPrivateServiceConnect"] = state?.gcpPrivateServiceConnect; + resourceInputs["httpProxy"] = state?.httpProxy; + resourceInputs["kafkaApi"] = state?.kafkaApi; + resourceInputs["kafkaConnect"] = state?.kafkaConnect; + resourceInputs["maintenanceWindowConfig"] = state?.maintenanceWindowConfig; + resourceInputs["name"] = state?.name; + resourceInputs["natGateways"] = state?.natGateways; + resourceInputs["networkId"] = state?.networkId; + resourceInputs["prometheus"] = state?.prometheus; + resourceInputs["readReplicaClusterIds"] = state?.readReplicaClusterIds; + resourceInputs["redpandaConsole"] = state?.redpandaConsole; + resourceInputs["redpandaNodeCount"] = state?.redpandaNodeCount; + resourceInputs["redpandaVersion"] = state?.redpandaVersion; + resourceInputs["region"] = state?.region; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["schemaRegistry"] = state?.schemaRegistry; + resourceInputs["state"] = state?.state; + resourceInputs["stateDescription"] = state?.stateDescription; + resourceInputs["tags"] = state?.tags; + resourceInputs["throughputTier"] = state?.throughputTier; + resourceInputs["timeouts"] = state?.timeouts; + resourceInputs["zones"] = state?.zones; + } + else { + const args = argsOrState; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.clusterType === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterType'"); + } + if (args?.connectionType === undefined && !opts.urn) { + throw new Error("Missing required property 'connectionType'"); + } + if (args?.networkId === undefined && !opts.urn) { + throw new Error("Missing required property 'networkId'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + if (args?.throughputTier === undefined && !opts.urn) { + throw new Error("Missing required property 'throughputTier'"); + } + if (args?.zones === undefined && !opts.urn) { + throw new Error("Missing required property 'zones'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["apiGatewayAccess"] = args?.apiGatewayAccess; + resourceInputs["awsPrivateLink"] = args?.awsPrivateLink; + resourceInputs["azurePrivateLink"] = args?.azurePrivateLink; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["cloudStorage"] = args?.cloudStorage; + resourceInputs["clusterConfiguration"] = args?.clusterConfiguration; + resourceInputs["clusterType"] = args?.clusterType; + resourceInputs["connectionType"] = args?.connectionType; + resourceInputs["customerManagedResources"] = args?.customerManagedResources; + resourceInputs["gcpGlobalAccessEnabled"] = args?.gcpGlobalAccessEnabled; + resourceInputs["gcpPrivateServiceConnect"] = args?.gcpPrivateServiceConnect; + resourceInputs["httpProxy"] = args?.httpProxy; + resourceInputs["kafkaApi"] = args?.kafkaApi; + resourceInputs["kafkaConnect"] = args?.kafkaConnect; + resourceInputs["maintenanceWindowConfig"] = args?.maintenanceWindowConfig; + resourceInputs["name"] = args?.name; + resourceInputs["networkId"] = args?.networkId; + resourceInputs["readReplicaClusterIds"] = args?.readReplicaClusterIds; + resourceInputs["redpandaNodeCount"] = args?.redpandaNodeCount; + resourceInputs["redpandaVersion"] = args?.redpandaVersion; + resourceInputs["region"] = args?.region; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["schemaRegistry"] = args?.schemaRegistry; + resourceInputs["tags"] = args?.tags; + resourceInputs["throughputTier"] = args?.throughputTier; + resourceInputs["timeouts"] = args?.timeouts; + resourceInputs["zones"] = args?.zones; + resourceInputs["clusterApiUrl"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["currentRedpandaVersion"] = undefined /*out*/; + resourceInputs["desiredRedpandaVersion"] = undefined /*out*/; + resourceInputs["natGateways"] = undefined /*out*/; + resourceInputs["prometheus"] = undefined /*out*/; + resourceInputs["redpandaConsole"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["stateDescription"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Cluster.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Cluster = Cluster; +/** @internal */ +Cluster.__pulumiType = 'redpanda:index/cluster:Cluster'; +//# sourceMappingURL=cluster.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/cluster.js.map b/pulumi-redpanda/bin/cluster.js.map new file mode 100644 index 00000000..3ca4b46d --- /dev/null +++ b/pulumi-redpanda/bin/cluster.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../cluster.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/config/index.d.ts b/pulumi-redpanda/bin/config/index.d.ts new file mode 100644 index 00000000..d074bb36 --- /dev/null +++ b/pulumi-redpanda/bin/config/index.d.ts @@ -0,0 +1 @@ +export * from "./vars"; diff --git a/pulumi-redpanda/bin/config/index.js b/pulumi-redpanda/bin/config/index.js new file mode 100644 index 00000000..8139147b --- /dev/null +++ b/pulumi-redpanda/bin/config/index.js @@ -0,0 +1,21 @@ +"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! *** +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// Export members: +__exportStar(require("./vars"), exports); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/config/index.js.map b/pulumi-redpanda/bin/config/index.js.map new file mode 100644 index 00000000..f0d1c8d9 --- /dev/null +++ b/pulumi-redpanda/bin/config/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;AAEjF,kBAAkB;AAClB,yCAAuB"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/config/vars.d.ts b/pulumi-redpanda/bin/config/vars.d.ts new file mode 100644 index 00000000..276edb45 --- /dev/null +++ b/pulumi-redpanda/bin/config/vars.d.ts @@ -0,0 +1,52 @@ +/** + * Redpanda client token. You need either `access_token`, or both `client_id` and `client_secret` to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable. + */ +export declare const accessToken: string | undefined; +/** + * AWS access key ID for BYOC clusters. Can also be set via AWS_ACCESS_KEY_ID. + */ +export declare const awsAccessKeyId: string | undefined; +/** + * AWS secret access key for BYOC clusters. Can also be set via AWS_SECRET_ACCESS_KEY. + */ +export declare const awsSecretAccessKey: string | undefined; +/** + * AWS session token for BYOC clusters (for temporary credentials). Can also be set via AWS_SESSION_TOKEN. + */ +export declare const awsSessionToken: string | undefined; +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID + */ +export declare const azureClientId: string | undefined; +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET + */ +export declare const azureClientSecret: string | undefined; +/** + * The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable. + */ +export declare const azureSubscriptionId: string | undefined; +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID + */ +export declare const azureTenantId: string | undefined; +/** + * The ID for the client. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable. + */ +export declare const clientId: string | undefined; +/** + * Redpanda client secret. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable. + */ +export declare const clientSecret: string | undefined; +/** + * The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`. + */ +export declare const gcpProjectId: string | undefined; +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS + */ +export declare const googleCredentials: string | undefined; +/** + * Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64 + */ +export declare const googleCredentialsBase64: string | undefined; diff --git a/pulumi-redpanda/bin/config/vars.js b/pulumi-redpanda/bin/config/vars.js new file mode 100644 index 00000000..27fe8b38 --- /dev/null +++ b/pulumi-redpanda/bin/config/vars.js @@ -0,0 +1,85 @@ +"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 }); +const pulumi = require("@pulumi/pulumi"); +const __config = new pulumi.Config("redpanda"); +Object.defineProperty(exports, "accessToken", { + get() { + return __config.get("accessToken"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "awsAccessKeyId", { + get() { + return __config.get("awsAccessKeyId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "awsSecretAccessKey", { + get() { + return __config.get("awsSecretAccessKey"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "awsSessionToken", { + get() { + return __config.get("awsSessionToken"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "azureClientId", { + get() { + return __config.get("azureClientId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "azureClientSecret", { + get() { + return __config.get("azureClientSecret"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "azureSubscriptionId", { + get() { + return __config.get("azureSubscriptionId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "azureTenantId", { + get() { + return __config.get("azureTenantId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "clientId", { + get() { + return __config.get("clientId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "clientSecret", { + get() { + return __config.get("clientSecret"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "gcpProjectId", { + get() { + return __config.get("gcpProjectId"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "googleCredentials", { + get() { + return __config.get("googleCredentials"); + }, + enumerable: true, +}); +Object.defineProperty(exports, "googleCredentialsBase64", { + get() { + return __config.get("googleCredentialsBase64"); + }, + enumerable: true, +}); +//# sourceMappingURL=vars.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/config/vars.js.map b/pulumi-redpanda/bin/config/vars.js.map new file mode 100644 index 00000000..c1796b3d --- /dev/null +++ b/pulumi-redpanda/bin/config/vars.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vars.js","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getCluster.d.ts b/pulumi-redpanda/bin/getCluster.d.ts new file mode 100644 index 00000000..c748b5a0 --- /dev/null +++ b/pulumi-redpanda/bin/getCluster.d.ts @@ -0,0 +1,58 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare function getCluster(args: GetClusterArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getCluster. + */ +export interface GetClusterArgs { + id: string; + timeouts?: inputs.GetClusterTimeouts; +} +/** + * A collection of values returned by getCluster. + */ +export interface GetClusterResult { + readonly allowDeletion: boolean; + readonly awsPrivateLink: outputs.GetClusterAwsPrivateLink; + readonly azurePrivateLink: outputs.GetClusterAzurePrivateLink; + readonly cloudProvider: string; + readonly clusterApiUrl: string; + readonly clusterConfiguration: outputs.GetClusterClusterConfiguration; + readonly clusterType: string; + readonly connectionType: string; + readonly createdAt: string; + readonly customerManagedResources: outputs.GetClusterCustomerManagedResources; + readonly gcpGlobalAccessEnabled: boolean; + readonly gcpPrivateServiceConnect: outputs.GetClusterGcpPrivateServiceConnect; + readonly httpProxy: outputs.GetClusterHttpProxy; + readonly id: string; + readonly kafkaApi: outputs.GetClusterKafkaApi; + readonly kafkaConnect: outputs.GetClusterKafkaConnect; + readonly maintenanceWindowConfig: outputs.GetClusterMaintenanceWindowConfig; + readonly name: string; + readonly networkId: string; + readonly prometheus: outputs.GetClusterPrometheus; + readonly readReplicaClusterIds: string[]; + readonly redpandaConsole: outputs.GetClusterRedpandaConsole; + readonly redpandaVersion: string; + readonly region: string; + readonly resourceGroupId: string; + readonly schemaRegistry: outputs.GetClusterSchemaRegistry; + readonly state: string; + readonly stateDescription: outputs.GetClusterStateDescription; + readonly tags: { + [key: string]: string; + }; + readonly throughputTier: string; + readonly timeouts?: outputs.GetClusterTimeouts; + readonly zones: string[]; +} +export declare function getClusterOutput(args: GetClusterOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getCluster. + */ +export interface GetClusterOutputArgs { + id: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getCluster.js b/pulumi-redpanda/bin/getCluster.js new file mode 100644 index 00000000..db9a8d16 --- /dev/null +++ b/pulumi-redpanda/bin/getCluster.js @@ -0,0 +1,24 @@ +"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.getClusterOutput = exports.getCluster = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getCluster(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getCluster:getCluster", { + "id": args.id, + "timeouts": args.timeouts, + }, opts, utilities.getPackage()); +} +exports.getCluster = getCluster; +function getClusterOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getCluster:getCluster", { + "id": args.id, + "timeouts": args.timeouts, + }, opts, utilities.getPackage()); +} +exports.getClusterOutput = getClusterOutput; +//# sourceMappingURL=getCluster.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getCluster.js.map b/pulumi-redpanda/bin/getCluster.js.map new file mode 100644 index 00000000..05421503 --- /dev/null +++ b/pulumi-redpanda/bin/getCluster.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getCluster.js","sourceRoot":"","sources":["../getCluster.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,SAAgB,UAAU,CAAC,IAAoB,EAAE,IAA2B;IACxE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sCAAsC,EAAE;QACjE,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,UAAU,EAAE,IAAI,CAAC,QAAQ;KAC5B,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,gCAMC;AA+CD,SAAgB,gBAAgB,CAAC,IAA0B,EAAE,IAAiC;IAC1F,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,sCAAsC,EAAE;QACvE,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,UAAU,EAAE,IAAI,CAAC,QAAQ;KAC5B,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,4CAMC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getNetwork.d.ts b/pulumi-redpanda/bin/getNetwork.d.ts new file mode 100644 index 00000000..c3e36272 --- /dev/null +++ b/pulumi-redpanda/bin/getNetwork.d.ts @@ -0,0 +1,31 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as outputs from "./types/output"; +export declare function getNetwork(args: GetNetworkArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getNetwork. + */ +export interface GetNetworkArgs { + id: string; +} +/** + * A collection of values returned by getNetwork. + */ +export interface GetNetworkResult { + readonly cidrBlock: string; + readonly cloudProvider: string; + readonly clusterType: string; + readonly customerManagedResources: outputs.GetNetworkCustomerManagedResources; + readonly id: string; + readonly name: string; + readonly region: string; + readonly resourceGroupId: string; + readonly state: string; + readonly zones: string[]; +} +export declare function getNetworkOutput(args: GetNetworkOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getNetwork. + */ +export interface GetNetworkOutputArgs { + id: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getNetwork.js b/pulumi-redpanda/bin/getNetwork.js new file mode 100644 index 00000000..569d2789 --- /dev/null +++ b/pulumi-redpanda/bin/getNetwork.js @@ -0,0 +1,22 @@ +"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.getNetworkOutput = exports.getNetwork = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getNetwork(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getNetwork:getNetwork", { + "id": args.id, + }, opts, utilities.getPackage()); +} +exports.getNetwork = getNetwork; +function getNetworkOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getNetwork:getNetwork", { + "id": args.id, + }, opts, utilities.getPackage()); +} +exports.getNetworkOutput = getNetworkOutput; +//# sourceMappingURL=getNetwork.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getNetwork.js.map b/pulumi-redpanda/bin/getNetwork.js.map new file mode 100644 index 00000000..d693f090 --- /dev/null +++ b/pulumi-redpanda/bin/getNetwork.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getNetwork.js","sourceRoot":"","sources":["../getNetwork.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,SAAgB,UAAU,CAAC,IAAoB,EAAE,IAA2B;IACxE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sCAAsC,EAAE;QACjE,IAAI,EAAE,IAAI,CAAC,EAAE;KAChB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,gCAKC;AAwBD,SAAgB,gBAAgB,CAAC,IAA0B,EAAE,IAAiC;IAC1F,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,sCAAsC,EAAE;QACvE,IAAI,EAAE,IAAI,CAAC,EAAE;KAChB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,4CAKC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getRegion.d.ts b/pulumi-redpanda/bin/getRegion.d.ts new file mode 100644 index 00000000..f7d4bee3 --- /dev/null +++ b/pulumi-redpanda/bin/getRegion.d.ts @@ -0,0 +1,29 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare function getRegion(args: GetRegionArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getRegion. + */ +export interface GetRegionArgs { + cloudProvider: string; + name: string; +} +/** + * A collection of values returned by getRegion. + */ +export interface GetRegionResult { + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly name: string; + readonly zones: string[]; +} +export declare function getRegionOutput(args: GetRegionOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getRegion. + */ +export interface GetRegionOutputArgs { + cloudProvider: pulumi.Input; + name: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getRegion.js b/pulumi-redpanda/bin/getRegion.js new file mode 100644 index 00000000..dac17d78 --- /dev/null +++ b/pulumi-redpanda/bin/getRegion.js @@ -0,0 +1,24 @@ +"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.getRegionOutput = exports.getRegion = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getRegion(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getRegion:getRegion", { + "cloudProvider": args.cloudProvider, + "name": args.name, + }, opts, utilities.getPackage()); +} +exports.getRegion = getRegion; +function getRegionOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getRegion:getRegion", { + "cloudProvider": args.cloudProvider, + "name": args.name, + }, opts, utilities.getPackage()); +} +exports.getRegionOutput = getRegionOutput; +//# sourceMappingURL=getRegion.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getRegion.js.map b/pulumi-redpanda/bin/getRegion.js.map new file mode 100644 index 00000000..3e200fa2 --- /dev/null +++ b/pulumi-redpanda/bin/getRegion.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getRegion.js","sourceRoot":"","sources":["../getRegion.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,SAAgB,SAAS,CAAC,IAAmB,EAAE,IAA2B;IACtE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,oCAAoC,EAAE;QAC/D,eAAe,EAAE,IAAI,CAAC,aAAa;QACnC,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,8BAMC;AAsBD,SAAgB,eAAe,CAAC,IAAyB,EAAE,IAAiC;IACxF,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,oCAAoC,EAAE;QACrE,eAAe,EAAE,IAAI,CAAC,aAAa;QACnC,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,0CAMC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getRegions.d.ts b/pulumi-redpanda/bin/getRegions.d.ts new file mode 100644 index 00000000..9453fcd4 --- /dev/null +++ b/pulumi-redpanda/bin/getRegions.d.ts @@ -0,0 +1,27 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as outputs from "./types/output"; +export declare function getRegions(args: GetRegionsArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getRegions. + */ +export interface GetRegionsArgs { + cloudProvider: string; +} +/** + * A collection of values returned by getRegions. + */ +export interface GetRegionsResult { + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly regions: outputs.GetRegionsRegion[]; +} +export declare function getRegionsOutput(args: GetRegionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getRegions. + */ +export interface GetRegionsOutputArgs { + cloudProvider: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getRegions.js b/pulumi-redpanda/bin/getRegions.js new file mode 100644 index 00000000..fa8c5c60 --- /dev/null +++ b/pulumi-redpanda/bin/getRegions.js @@ -0,0 +1,22 @@ +"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.getRegionsOutput = exports.getRegions = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getRegions(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getRegions:getRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} +exports.getRegions = getRegions; +function getRegionsOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getRegions:getRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} +exports.getRegionsOutput = getRegionsOutput; +//# sourceMappingURL=getRegions.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getRegions.js.map b/pulumi-redpanda/bin/getRegions.js.map new file mode 100644 index 00000000..51efc638 --- /dev/null +++ b/pulumi-redpanda/bin/getRegions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getRegions.js","sourceRoot":"","sources":["../getRegions.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,SAAgB,UAAU,CAAC,IAAoB,EAAE,IAA2B;IACxE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sCAAsC,EAAE;QACjE,eAAe,EAAE,IAAI,CAAC,aAAa;KACtC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,gCAKC;AAoBD,SAAgB,gBAAgB,CAAC,IAA0B,EAAE,IAAiC;IAC1F,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,sCAAsC,EAAE;QACvE,eAAe,EAAE,IAAI,CAAC,aAAa;KACtC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,4CAKC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getResourceGroup.d.ts b/pulumi-redpanda/bin/getResourceGroup.d.ts new file mode 100644 index 00000000..375b8c01 --- /dev/null +++ b/pulumi-redpanda/bin/getResourceGroup.d.ts @@ -0,0 +1,24 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare function getResourceGroup(args?: GetResourceGroupArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getResourceGroup. + */ +export interface GetResourceGroupArgs { + id?: string; + name?: string; +} +/** + * A collection of values returned by getResourceGroup. + */ +export interface GetResourceGroupResult { + readonly id: string; + readonly name: string; +} +export declare function getResourceGroupOutput(args?: GetResourceGroupOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getResourceGroup. + */ +export interface GetResourceGroupOutputArgs { + id?: pulumi.Input; + name?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getResourceGroup.js b/pulumi-redpanda/bin/getResourceGroup.js new file mode 100644 index 00000000..31814b37 --- /dev/null +++ b/pulumi-redpanda/bin/getResourceGroup.js @@ -0,0 +1,26 @@ +"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.getResourceGroupOutput = exports.getResourceGroup = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getResourceGroup(args, opts) { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getResourceGroup:getResourceGroup", { + "id": args.id, + "name": args.name, + }, opts, utilities.getPackage()); +} +exports.getResourceGroup = getResourceGroup; +function getResourceGroupOutput(args, opts) { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getResourceGroup:getResourceGroup", { + "id": args.id, + "name": args.name, + }, opts, utilities.getPackage()); +} +exports.getResourceGroupOutput = getResourceGroupOutput; +//# sourceMappingURL=getResourceGroup.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getResourceGroup.js.map b/pulumi-redpanda/bin/getResourceGroup.js.map new file mode 100644 index 00000000..5e1d9e95 --- /dev/null +++ b/pulumi-redpanda/bin/getResourceGroup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getResourceGroup.js","sourceRoot":"","sources":["../getResourceGroup.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,SAAgB,gBAAgB,CAAC,IAA2B,EAAE,IAA2B;IACrF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kDAAkD,EAAE;QAC7E,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAPD,4CAOC;AAiBD,SAAgB,sBAAsB,CAAC,IAAiC,EAAE,IAAiC;IACvG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,kDAAkD,EAAE;QACnF,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAPD,wDAOC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getSchema.d.ts b/pulumi-redpanda/bin/getSchema.d.ts new file mode 100644 index 00000000..e9d42b1c --- /dev/null +++ b/pulumi-redpanda/bin/getSchema.d.ts @@ -0,0 +1,32 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as outputs from "./types/output"; +export declare function getSchema(args: GetSchemaArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getSchema. + */ +export interface GetSchemaArgs { + clusterId: string; + subject: string; + version?: number; +} +/** + * A collection of values returned by getSchema. + */ +export interface GetSchemaResult { + readonly clusterId: string; + readonly id: number; + readonly references: outputs.GetSchemaReference[]; + readonly schema: string; + readonly schemaType: string; + readonly subject: string; + readonly version: number; +} +export declare function getSchemaOutput(args: GetSchemaOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getSchema. + */ +export interface GetSchemaOutputArgs { + clusterId: pulumi.Input; + subject: pulumi.Input; + version?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getSchema.js b/pulumi-redpanda/bin/getSchema.js new file mode 100644 index 00000000..c603814f --- /dev/null +++ b/pulumi-redpanda/bin/getSchema.js @@ -0,0 +1,26 @@ +"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.getSchemaOutput = exports.getSchema = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getSchema(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getSchema:getSchema", { + "clusterId": args.clusterId, + "subject": args.subject, + "version": args.version, + }, opts, utilities.getPackage()); +} +exports.getSchema = getSchema; +function getSchemaOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getSchema:getSchema", { + "clusterId": args.clusterId, + "subject": args.subject, + "version": args.version, + }, opts, utilities.getPackage()); +} +exports.getSchemaOutput = getSchemaOutput; +//# sourceMappingURL=getSchema.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getSchema.js.map b/pulumi-redpanda/bin/getSchema.js.map new file mode 100644 index 00000000..9c752876 --- /dev/null +++ b/pulumi-redpanda/bin/getSchema.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getSchema.js","sourceRoot":"","sources":["../getSchema.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,SAAgB,SAAS,CAAC,IAAmB,EAAE,IAA2B;IACtE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,oCAAoC,EAAE;QAC/D,WAAW,EAAE,IAAI,CAAC,SAAS;QAC3B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAPD,8BAOC;AAuBD,SAAgB,eAAe,CAAC,IAAyB,EAAE,IAAiC;IACxF,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,oCAAoC,EAAE;QACrE,WAAW,EAAE,IAAI,CAAC,SAAS;QAC3B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAPD,0CAOC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getServerlessCluster.d.ts b/pulumi-redpanda/bin/getServerlessCluster.d.ts new file mode 100644 index 00000000..75257c36 --- /dev/null +++ b/pulumi-redpanda/bin/getServerlessCluster.d.ts @@ -0,0 +1,25 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare function getServerlessCluster(args: GetServerlessClusterArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getServerlessCluster. + */ +export interface GetServerlessClusterArgs { + id: string; +} +/** + * A collection of values returned by getServerlessCluster. + */ +export interface GetServerlessClusterResult { + readonly clusterApiUrl: string; + readonly id: string; + readonly name: string; + readonly resourceGroupId: string; + readonly serverlessRegion: string; +} +export declare function getServerlessClusterOutput(args: GetServerlessClusterOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getServerlessCluster. + */ +export interface GetServerlessClusterOutputArgs { + id: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getServerlessCluster.js b/pulumi-redpanda/bin/getServerlessCluster.js new file mode 100644 index 00000000..4aea1279 --- /dev/null +++ b/pulumi-redpanda/bin/getServerlessCluster.js @@ -0,0 +1,22 @@ +"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.getServerlessClusterOutput = exports.getServerlessCluster = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getServerlessCluster(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getServerlessCluster:getServerlessCluster", { + "id": args.id, + }, opts, utilities.getPackage()); +} +exports.getServerlessCluster = getServerlessCluster; +function getServerlessClusterOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getServerlessCluster:getServerlessCluster", { + "id": args.id, + }, opts, utilities.getPackage()); +} +exports.getServerlessClusterOutput = getServerlessClusterOutput; +//# sourceMappingURL=getServerlessCluster.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getServerlessCluster.js.map b/pulumi-redpanda/bin/getServerlessCluster.js.map new file mode 100644 index 00000000..898c5cdb --- /dev/null +++ b/pulumi-redpanda/bin/getServerlessCluster.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getServerlessCluster.js","sourceRoot":"","sources":["../getServerlessCluster.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,SAAgB,oBAAoB,CAAC,IAA8B,EAAE,IAA2B;IAC5F,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,0DAA0D,EAAE;QACrF,IAAI,EAAE,IAAI,CAAC,EAAE;KAChB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,oDAKC;AAmBD,SAAgB,0BAA0B,CAAC,IAAoC,EAAE,IAAiC;IAC9G,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,0DAA0D,EAAE;QAC3F,IAAI,EAAE,IAAI,CAAC,EAAE;KAChB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,gEAKC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getServerlessRegions.d.ts b/pulumi-redpanda/bin/getServerlessRegions.d.ts new file mode 100644 index 00000000..98eb8383 --- /dev/null +++ b/pulumi-redpanda/bin/getServerlessRegions.d.ts @@ -0,0 +1,27 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as outputs from "./types/output"; +export declare function getServerlessRegions(args: GetServerlessRegionsArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getServerlessRegions. + */ +export interface GetServerlessRegionsArgs { + cloudProvider: string; +} +/** + * A collection of values returned by getServerlessRegions. + */ +export interface GetServerlessRegionsResult { + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly serverlessRegions: outputs.GetServerlessRegionsServerlessRegion[]; +} +export declare function getServerlessRegionsOutput(args: GetServerlessRegionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getServerlessRegions. + */ +export interface GetServerlessRegionsOutputArgs { + cloudProvider: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getServerlessRegions.js b/pulumi-redpanda/bin/getServerlessRegions.js new file mode 100644 index 00000000..d0a2f59b --- /dev/null +++ b/pulumi-redpanda/bin/getServerlessRegions.js @@ -0,0 +1,22 @@ +"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.getServerlessRegionsOutput = exports.getServerlessRegions = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getServerlessRegions(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getServerlessRegions:getServerlessRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} +exports.getServerlessRegions = getServerlessRegions; +function getServerlessRegionsOutput(args, opts) { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getServerlessRegions:getServerlessRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} +exports.getServerlessRegionsOutput = getServerlessRegionsOutput; +//# sourceMappingURL=getServerlessRegions.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getServerlessRegions.js.map b/pulumi-redpanda/bin/getServerlessRegions.js.map new file mode 100644 index 00000000..2398c6e8 --- /dev/null +++ b/pulumi-redpanda/bin/getServerlessRegions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getServerlessRegions.js","sourceRoot":"","sources":["../getServerlessRegions.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,SAAgB,oBAAoB,CAAC,IAA8B,EAAE,IAA2B;IAC5F,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,0DAA0D,EAAE;QACrF,eAAe,EAAE,IAAI,CAAC,aAAa;KACtC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,oDAKC;AAoBD,SAAgB,0BAA0B,CAAC,IAAoC,EAAE,IAAiC;IAC9G,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,0DAA0D,EAAE;QAC3F,eAAe,EAAE,IAAI,CAAC,aAAa;KACtC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,gEAKC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/getThroughputTiers.d.ts b/pulumi-redpanda/bin/getThroughputTiers.d.ts new file mode 100644 index 00000000..ce3939c6 --- /dev/null +++ b/pulumi-redpanda/bin/getThroughputTiers.d.ts @@ -0,0 +1,27 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as outputs from "./types/output"; +export declare function getThroughputTiers(args?: GetThroughputTiersArgs, opts?: pulumi.InvokeOptions): Promise; +/** + * A collection of arguments for invoking getThroughputTiers. + */ +export interface GetThroughputTiersArgs { + cloudProvider?: string; +} +/** + * A collection of values returned by getThroughputTiers. + */ +export interface GetThroughputTiersResult { + readonly cloudProvider?: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly throughputTiers: outputs.GetThroughputTiersThroughputTier[]; +} +export declare function getThroughputTiersOutput(args?: GetThroughputTiersOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; +/** + * A collection of arguments for invoking getThroughputTiers. + */ +export interface GetThroughputTiersOutputArgs { + cloudProvider?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/getThroughputTiers.js b/pulumi-redpanda/bin/getThroughputTiers.js new file mode 100644 index 00000000..5430e72a --- /dev/null +++ b/pulumi-redpanda/bin/getThroughputTiers.js @@ -0,0 +1,24 @@ +"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.getThroughputTiersOutput = exports.getThroughputTiers = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +function getThroughputTiers(args, opts) { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getThroughputTiers:getThroughputTiers", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} +exports.getThroughputTiers = getThroughputTiers; +function getThroughputTiersOutput(args, opts) { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getThroughputTiers:getThroughputTiers", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} +exports.getThroughputTiersOutput = getThroughputTiersOutput; +//# sourceMappingURL=getThroughputTiers.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/getThroughputTiers.js.map b/pulumi-redpanda/bin/getThroughputTiers.js.map new file mode 100644 index 00000000..23b2b6c1 --- /dev/null +++ b/pulumi-redpanda/bin/getThroughputTiers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getThroughputTiers.js","sourceRoot":"","sources":["../getThroughputTiers.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,SAAgB,kBAAkB,CAAC,IAA6B,EAAE,IAA2B;IACzF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sDAAsD,EAAE;QACjF,eAAe,EAAE,IAAI,CAAC,aAAa;KACtC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,gDAMC;AAoBD,SAAgB,wBAAwB,CAAC,IAAmC,EAAE,IAAiC;IAC3G,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,sDAAsD,EAAE;QACvF,eAAe,EAAE,IAAI,CAAC,aAAa;KACtC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,CAAC;AAND,4DAMC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/index.d.ts b/pulumi-redpanda/bin/index.d.ts new file mode 100644 index 00000000..a6f040aa --- /dev/null +++ b/pulumi-redpanda/bin/index.d.ts @@ -0,0 +1,70 @@ +export { AclArgs, AclState } from "./acl"; +export type Acl = import("./acl").Acl; +export declare const Acl: typeof import("./acl").Acl; +export { ClusterArgs, ClusterState } from "./cluster"; +export type Cluster = import("./cluster").Cluster; +export declare const Cluster: typeof import("./cluster").Cluster; +export { GetClusterArgs, GetClusterResult, GetClusterOutputArgs } from "./getCluster"; +export declare const getCluster: typeof import("./getCluster").getCluster; +export declare const getClusterOutput: typeof import("./getCluster").getClusterOutput; +export { GetNetworkArgs, GetNetworkResult, GetNetworkOutputArgs } from "./getNetwork"; +export declare const getNetwork: typeof import("./getNetwork").getNetwork; +export declare const getNetworkOutput: typeof import("./getNetwork").getNetworkOutput; +export { GetRegionArgs, GetRegionResult, GetRegionOutputArgs } from "./getRegion"; +export declare const getRegion: typeof import("./getRegion").getRegion; +export declare const getRegionOutput: typeof import("./getRegion").getRegionOutput; +export { GetRegionsArgs, GetRegionsResult, GetRegionsOutputArgs } from "./getRegions"; +export declare const getRegions: typeof import("./getRegions").getRegions; +export declare const getRegionsOutput: typeof import("./getRegions").getRegionsOutput; +export { GetResourceGroupArgs, GetResourceGroupResult, GetResourceGroupOutputArgs } from "./getResourceGroup"; +export declare const getResourceGroup: typeof import("./getResourceGroup").getResourceGroup; +export declare const getResourceGroupOutput: typeof import("./getResourceGroup").getResourceGroupOutput; +export { GetSchemaArgs, GetSchemaResult, GetSchemaOutputArgs } from "./getSchema"; +export declare const getSchema: typeof import("./getSchema").getSchema; +export declare const getSchemaOutput: typeof import("./getSchema").getSchemaOutput; +export { GetServerlessClusterArgs, GetServerlessClusterResult, GetServerlessClusterOutputArgs } from "./getServerlessCluster"; +export declare const getServerlessCluster: typeof import("./getServerlessCluster").getServerlessCluster; +export declare const getServerlessClusterOutput: typeof import("./getServerlessCluster").getServerlessClusterOutput; +export { GetServerlessRegionsArgs, GetServerlessRegionsResult, GetServerlessRegionsOutputArgs } from "./getServerlessRegions"; +export declare const getServerlessRegions: typeof import("./getServerlessRegions").getServerlessRegions; +export declare const getServerlessRegionsOutput: typeof import("./getServerlessRegions").getServerlessRegionsOutput; +export { GetThroughputTiersArgs, GetThroughputTiersResult, GetThroughputTiersOutputArgs } from "./getThroughputTiers"; +export declare const getThroughputTiers: typeof import("./getThroughputTiers").getThroughputTiers; +export declare const getThroughputTiersOutput: typeof import("./getThroughputTiers").getThroughputTiersOutput; +export { NetworkArgs, NetworkState } from "./network"; +export type Network = import("./network").Network; +export declare const Network: typeof import("./network").Network; +export { PipelineArgs, PipelineState } from "./pipeline"; +export type Pipeline = import("./pipeline").Pipeline; +export declare const Pipeline: typeof import("./pipeline").Pipeline; +export * from "./provider"; +export { ResourceGroupArgs, ResourceGroupState } from "./resourceGroup"; +export type ResourceGroup = import("./resourceGroup").ResourceGroup; +export declare const ResourceGroup: typeof import("./resourceGroup").ResourceGroup; +export { RoleArgs, RoleState } from "./role"; +export type Role = import("./role").Role; +export declare const Role: typeof import("./role").Role; +export { RoleAssignmentArgs, RoleAssignmentState } from "./roleAssignment"; +export type RoleAssignment = import("./roleAssignment").RoleAssignment; +export declare const RoleAssignment: typeof import("./roleAssignment").RoleAssignment; +export { SchemaArgs, SchemaState } from "./schema"; +export type Schema = import("./schema").Schema; +export declare const Schema: typeof import("./schema").Schema; +export { SchemaRegistryAclArgs, SchemaRegistryAclState } from "./schemaRegistryAcl"; +export type SchemaRegistryAcl = import("./schemaRegistryAcl").SchemaRegistryAcl; +export declare const SchemaRegistryAcl: typeof import("./schemaRegistryAcl").SchemaRegistryAcl; +export { ServerlessClusterArgs, ServerlessClusterState } from "./serverlessCluster"; +export type ServerlessCluster = import("./serverlessCluster").ServerlessCluster; +export declare const ServerlessCluster: typeof import("./serverlessCluster").ServerlessCluster; +export { ServerlessPrivateLinkArgs, ServerlessPrivateLinkState } from "./serverlessPrivateLink"; +export type ServerlessPrivateLink = import("./serverlessPrivateLink").ServerlessPrivateLink; +export declare const ServerlessPrivateLink: typeof import("./serverlessPrivateLink").ServerlessPrivateLink; +export { TopicArgs, TopicState } from "./topic"; +export type Topic = import("./topic").Topic; +export declare const Topic: typeof import("./topic").Topic; +export { UserArgs, UserState } from "./user"; +export type User = import("./user").User; +export declare const User: typeof import("./user").User; +import * as config from "./config"; +import * as types from "./types"; +export { config, types, }; diff --git a/pulumi-redpanda/bin/index.js b/pulumi-redpanda/bin/index.js new file mode 100644 index 00000000..4676def9 --- /dev/null +++ b/pulumi-redpanda/bin/index.js @@ -0,0 +1,139 @@ +"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! *** +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.types = exports.config = exports.User = exports.Topic = exports.ServerlessPrivateLink = exports.ServerlessCluster = exports.SchemaRegistryAcl = exports.Schema = exports.RoleAssignment = exports.Role = exports.ResourceGroup = exports.Pipeline = exports.Network = exports.getThroughputTiersOutput = exports.getThroughputTiers = exports.getServerlessRegionsOutput = exports.getServerlessRegions = exports.getServerlessClusterOutput = exports.getServerlessCluster = exports.getSchemaOutput = exports.getSchema = exports.getResourceGroupOutput = exports.getResourceGroup = exports.getRegionsOutput = exports.getRegions = exports.getRegionOutput = exports.getRegion = exports.getNetworkOutput = exports.getNetwork = exports.getClusterOutput = exports.getCluster = exports.Cluster = exports.Acl = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +exports.Acl = null; +utilities.lazyLoad(exports, ["Acl"], () => require("./acl")); +exports.Cluster = null; +utilities.lazyLoad(exports, ["Cluster"], () => require("./cluster")); +exports.getCluster = null; +exports.getClusterOutput = null; +utilities.lazyLoad(exports, ["getCluster", "getClusterOutput"], () => require("./getCluster")); +exports.getNetwork = null; +exports.getNetworkOutput = null; +utilities.lazyLoad(exports, ["getNetwork", "getNetworkOutput"], () => require("./getNetwork")); +exports.getRegion = null; +exports.getRegionOutput = null; +utilities.lazyLoad(exports, ["getRegion", "getRegionOutput"], () => require("./getRegion")); +exports.getRegions = null; +exports.getRegionsOutput = null; +utilities.lazyLoad(exports, ["getRegions", "getRegionsOutput"], () => require("./getRegions")); +exports.getResourceGroup = null; +exports.getResourceGroupOutput = null; +utilities.lazyLoad(exports, ["getResourceGroup", "getResourceGroupOutput"], () => require("./getResourceGroup")); +exports.getSchema = null; +exports.getSchemaOutput = null; +utilities.lazyLoad(exports, ["getSchema", "getSchemaOutput"], () => require("./getSchema")); +exports.getServerlessCluster = null; +exports.getServerlessClusterOutput = null; +utilities.lazyLoad(exports, ["getServerlessCluster", "getServerlessClusterOutput"], () => require("./getServerlessCluster")); +exports.getServerlessRegions = null; +exports.getServerlessRegionsOutput = null; +utilities.lazyLoad(exports, ["getServerlessRegions", "getServerlessRegionsOutput"], () => require("./getServerlessRegions")); +exports.getThroughputTiers = null; +exports.getThroughputTiersOutput = null; +utilities.lazyLoad(exports, ["getThroughputTiers", "getThroughputTiersOutput"], () => require("./getThroughputTiers")); +exports.Network = null; +utilities.lazyLoad(exports, ["Network"], () => require("./network")); +exports.Pipeline = null; +utilities.lazyLoad(exports, ["Pipeline"], () => require("./pipeline")); +__exportStar(require("./provider"), exports); +const provider_1 = require("./provider"); +exports.ResourceGroup = null; +utilities.lazyLoad(exports, ["ResourceGroup"], () => require("./resourceGroup")); +exports.Role = null; +utilities.lazyLoad(exports, ["Role"], () => require("./role")); +exports.RoleAssignment = null; +utilities.lazyLoad(exports, ["RoleAssignment"], () => require("./roleAssignment")); +exports.Schema = null; +utilities.lazyLoad(exports, ["Schema"], () => require("./schema")); +exports.SchemaRegistryAcl = null; +utilities.lazyLoad(exports, ["SchemaRegistryAcl"], () => require("./schemaRegistryAcl")); +exports.ServerlessCluster = null; +utilities.lazyLoad(exports, ["ServerlessCluster"], () => require("./serverlessCluster")); +exports.ServerlessPrivateLink = null; +utilities.lazyLoad(exports, ["ServerlessPrivateLink"], () => require("./serverlessPrivateLink")); +exports.Topic = null; +utilities.lazyLoad(exports, ["Topic"], () => require("./topic")); +exports.User = null; +utilities.lazyLoad(exports, ["User"], () => require("./user")); +// Export sub-modules: +const config = require("./config"); +exports.config = config; +const types = require("./types"); +exports.types = types; +const _module = { + version: utilities.getVersion(), + construct: (name, type, urn) => { + switch (type) { + case "redpanda:index/acl:Acl": + return new exports.Acl(name, undefined, { urn }); + case "redpanda:index/cluster:Cluster": + return new exports.Cluster(name, undefined, { urn }); + case "redpanda:index/network:Network": + return new exports.Network(name, undefined, { urn }); + case "redpanda:index/pipeline:Pipeline": + return new exports.Pipeline(name, undefined, { urn }); + case "redpanda:index/resourceGroup:ResourceGroup": + return new exports.ResourceGroup(name, undefined, { urn }); + case "redpanda:index/role:Role": + return new exports.Role(name, undefined, { urn }); + case "redpanda:index/roleAssignment:RoleAssignment": + return new exports.RoleAssignment(name, undefined, { urn }); + case "redpanda:index/schema:Schema": + return new exports.Schema(name, undefined, { urn }); + case "redpanda:index/schemaRegistryAcl:SchemaRegistryAcl": + return new exports.SchemaRegistryAcl(name, undefined, { urn }); + case "redpanda:index/serverlessCluster:ServerlessCluster": + return new exports.ServerlessCluster(name, undefined, { urn }); + case "redpanda:index/serverlessPrivateLink:ServerlessPrivateLink": + return new exports.ServerlessPrivateLink(name, undefined, { urn }); + case "redpanda:index/topic:Topic": + return new exports.Topic(name, undefined, { urn }); + case "redpanda:index/user:User": + return new exports.User(name, undefined, { urn }); + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("redpanda", "index/acl", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/cluster", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/network", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/pipeline", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/resourceGroup", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/role", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/roleAssignment", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/schema", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/schemaRegistryAcl", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/serverlessCluster", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/serverlessPrivateLink", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/topic", _module); +pulumi.runtime.registerResourceModule("redpanda", "index/user", _module); +pulumi.runtime.registerResourcePackage("redpanda", { + version: utilities.getVersion(), + constructProvider: (name, type, urn) => { + if (type !== "pulumi:providers:redpanda") { + throw new Error(`unknown provider type ${type}`); + } + return new provider_1.Provider(name, undefined, { urn }); + }, +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/index.js.map b/pulumi-redpanda/bin/index.js.map new file mode 100644 index 00000000..a6d4475f --- /dev/null +++ b/pulumi-redpanda/bin/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/network.d.ts b/pulumi-redpanda/bin/network.d.ts new file mode 100644 index 00000000..0d418f53 --- /dev/null +++ b/pulumi-redpanda/bin/network.d.ts @@ -0,0 +1,132 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class Network extends pulumi.CustomResource { + /** + * Get an existing Network 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: string, id: pulumi.Input, state?: NetworkState, opts?: pulumi.CustomResourceOptions): Network; + /** + * Returns true if the given object is an instance of Network. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Network; + /** + * The cidr_block to create the network in + */ + readonly cidrBlock: pulumi.Output; + /** + * The cloud provider to create the network in. + */ + readonly cloudProvider: pulumi.Output; + /** + * The type of cluster this network is associated with, can be one of dedicated or byoc + */ + readonly clusterType: pulumi.Output; + readonly customerManagedResources: pulumi.Output; + /** + * Name of the network + */ + readonly name: pulumi.Output; + /** + * The region to create the network in. + */ + readonly region: pulumi.Output; + /** + * The ID of the resource group in which to create the network + */ + readonly resourceGroupId: pulumi.Output; + /** + * Current state of the network. + */ + readonly state: pulumi.Output; + readonly timeouts: pulumi.Output; + /** + * Network availability zones. + */ + readonly zones: pulumi.Output; + /** + * Create a Network resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: NetworkArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Network resources. + */ +export interface NetworkState { + /** + * The cidr_block to create the network in + */ + cidrBlock?: pulumi.Input; + /** + * The cloud provider to create the network in. + */ + cloudProvider?: pulumi.Input; + /** + * The type of cluster this network is associated with, can be one of dedicated or byoc + */ + clusterType?: pulumi.Input; + customerManagedResources?: pulumi.Input; + /** + * Name of the network + */ + name?: pulumi.Input; + /** + * The region to create the network in. + */ + region?: pulumi.Input; + /** + * The ID of the resource group in which to create the network + */ + resourceGroupId?: pulumi.Input; + /** + * Current state of the network. + */ + state?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Network availability zones. + */ + zones?: pulumi.Input[]>; +} +/** + * The set of arguments for constructing a Network resource. + */ +export interface NetworkArgs { + /** + * The cidr_block to create the network in + */ + cidrBlock?: pulumi.Input; + /** + * The cloud provider to create the network in. + */ + cloudProvider: pulumi.Input; + /** + * The type of cluster this network is associated with, can be one of dedicated or byoc + */ + clusterType: pulumi.Input; + customerManagedResources?: pulumi.Input; + /** + * Name of the network + */ + name?: pulumi.Input; + /** + * The region to create the network in. + */ + region: pulumi.Input; + /** + * The ID of the resource group in which to create the network + */ + resourceGroupId: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/network.js b/pulumi-redpanda/bin/network.js new file mode 100644 index 00000000..92f06313 --- /dev/null +++ b/pulumi-redpanda/bin/network.js @@ -0,0 +1,79 @@ +"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.Network = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Network extends pulumi.CustomResource { + /** + * Get an existing Network 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 Network(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Network. 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'] === Network.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["cidrBlock"] = state?.cidrBlock; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["clusterType"] = state?.clusterType; + resourceInputs["customerManagedResources"] = state?.customerManagedResources; + resourceInputs["name"] = state?.name; + resourceInputs["region"] = state?.region; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["state"] = state?.state; + resourceInputs["timeouts"] = state?.timeouts; + resourceInputs["zones"] = state?.zones; + } + else { + const args = argsOrState; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.clusterType === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterType'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + resourceInputs["cidrBlock"] = args?.cidrBlock; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["clusterType"] = args?.clusterType; + resourceInputs["customerManagedResources"] = args?.customerManagedResources; + resourceInputs["name"] = args?.name; + resourceInputs["region"] = args?.region; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["timeouts"] = args?.timeouts; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["zones"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Network.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Network = Network; +/** @internal */ +Network.__pulumiType = 'redpanda:index/network:Network'; +//# sourceMappingURL=network.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/network.js.map b/pulumi-redpanda/bin/network.js.map new file mode 100644 index 00000000..bb01ef51 --- /dev/null +++ b/pulumi-redpanda/bin/network.js.map @@ -0,0 +1 @@ +{"version":3,"file":"network.js","sourceRoot":"","sources":["../network.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/package.json b/pulumi-redpanda/bin/package.json new file mode 100644 index 00000000..374232fe --- /dev/null +++ b/pulumi-redpanda/bin/package.json @@ -0,0 +1,23 @@ +{ + "name": "@bpinternal/pulumi-redpanda", + "version": "1.7.3", + "description": "Pulumi SDK for redpanda-data/redpanda terraform provider", + "main": "bin/index.js", + "types": "bin/index.d.ts", + "repository": { + "url": "https://github.com/botpress/packages" + }, + "author": "Botpress, Inc.", + "license": "MIT", + "scripts": { + "build": "tsc" + }, + "dependencies": { + "@pulumi/pulumi": "^3.142.0", + "async-mutex": "^0.5.0" + }, + "devDependencies": { + "@types/node": "18.16.0", + "typescript": "5.4.5" + } +} diff --git a/pulumi-redpanda/bin/pipeline.d.ts b/pulumi-redpanda/bin/pipeline.d.ts new file mode 100644 index 00000000..359d32f6 --- /dev/null +++ b/pulumi-redpanda/bin/pipeline.d.ts @@ -0,0 +1,171 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class Pipeline extends pulumi.CustomResource { + /** + * Get an existing Pipeline 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: string, id: pulumi.Input, state?: PipelineState, opts?: pulumi.CustomResourceOptions): Pipeline; + /** + * Returns true if the given object is an instance of Pipeline. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Pipeline; + /** + * Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource. + */ + readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports. + */ + readonly clusterApiUrl: pulumi.Output; + /** + * The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details. + */ + readonly configYaml: pulumi.Output; + /** + * Optional description of the pipeline. + */ + readonly description: pulumi.Output; + /** + * User-friendly display name for the pipeline. + */ + readonly displayName: pulumi.Output; + /** + * Resource allocation for the pipeline. + */ + readonly resources: pulumi.Output; + /** + * Service account credentials for the pipeline. Used to authenticate the pipeline with external services. + */ + readonly serviceAccount: pulumi.Output; + /** + * Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations. + */ + readonly state: pulumi.Output; + /** + * Pipeline status information. + */ + readonly status: pulumi.Output; + /** + * Key-value pairs to tag the pipeline for organization and filtering. + */ + readonly tags: pulumi.Output<{ + [key: string]: string; + } | undefined>; + readonly timeouts: pulumi.Output; + /** + * URL to connect to the pipeline's HTTP server, if applicable. + */ + readonly url: pulumi.Output; + /** + * Create a Pipeline resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PipelineArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Pipeline resources. + */ +export interface PipelineState { + /** + * Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports. + */ + clusterApiUrl?: pulumi.Input; + /** + * The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details. + */ + configYaml?: pulumi.Input; + /** + * Optional description of the pipeline. + */ + description?: pulumi.Input; + /** + * User-friendly display name for the pipeline. + */ + displayName?: pulumi.Input; + /** + * Resource allocation for the pipeline. + */ + resources?: pulumi.Input; + /** + * Service account credentials for the pipeline. Used to authenticate the pipeline with external services. + */ + serviceAccount?: pulumi.Input; + /** + * Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations. + */ + state?: pulumi.Input; + /** + * Pipeline status information. + */ + status?: pulumi.Input; + /** + * Key-value pairs to tag the pipeline for organization and filtering. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + timeouts?: pulumi.Input; + /** + * URL to connect to the pipeline's HTTP server, if applicable. + */ + url?: pulumi.Input; +} +/** + * The set of arguments for constructing a Pipeline resource. + */ +export interface PipelineArgs { + /** + * Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports. + */ + clusterApiUrl: pulumi.Input; + /** + * The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details. + */ + configYaml: pulumi.Input; + /** + * Optional description of the pipeline. + */ + description?: pulumi.Input; + /** + * User-friendly display name for the pipeline. + */ + displayName: pulumi.Input; + /** + * Resource allocation for the pipeline. + */ + resources?: pulumi.Input; + /** + * Service account credentials for the pipeline. Used to authenticate the pipeline with external services. + */ + serviceAccount?: pulumi.Input; + /** + * Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations. + */ + state?: pulumi.Input; + /** + * Key-value pairs to tag the pipeline for organization and filtering. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + timeouts?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/pipeline.js b/pulumi-redpanda/bin/pipeline.js new file mode 100644 index 00000000..52c5d1f5 --- /dev/null +++ b/pulumi-redpanda/bin/pipeline.js @@ -0,0 +1,82 @@ +"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.Pipeline = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Pipeline extends pulumi.CustomResource { + /** + * Get an existing Pipeline 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 Pipeline(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Pipeline. 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'] === Pipeline.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["configYaml"] = state?.configYaml; + resourceInputs["description"] = state?.description; + resourceInputs["displayName"] = state?.displayName; + resourceInputs["resources"] = state?.resources; + resourceInputs["serviceAccount"] = state?.serviceAccount; + resourceInputs["state"] = state?.state; + resourceInputs["status"] = state?.status; + resourceInputs["tags"] = state?.tags; + resourceInputs["timeouts"] = state?.timeouts; + resourceInputs["url"] = state?.url; + } + else { + const args = argsOrState; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + if (args?.configYaml === undefined && !opts.urn) { + throw new Error("Missing required property 'configYaml'"); + } + if (args?.displayName === undefined && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["configYaml"] = args?.configYaml ? pulumi.secret(args.configYaml) : undefined; + resourceInputs["description"] = args?.description; + resourceInputs["displayName"] = args?.displayName; + resourceInputs["resources"] = args?.resources; + resourceInputs["serviceAccount"] = args?.serviceAccount; + resourceInputs["state"] = args?.state; + resourceInputs["tags"] = args?.tags; + resourceInputs["timeouts"] = args?.timeouts; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["url"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["configYaml"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Pipeline.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Pipeline = Pipeline; +/** @internal */ +Pipeline.__pulumiType = 'redpanda:index/pipeline:Pipeline'; +//# sourceMappingURL=pipeline.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/pipeline.js.map b/pulumi-redpanda/bin/pipeline.js.map new file mode 100644 index 00000000..cccd3495 --- /dev/null +++ b/pulumi-redpanda/bin/pipeline.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../pipeline.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/provider.d.ts b/pulumi-redpanda/bin/provider.d.ts new file mode 100644 index 00000000..52aed4f4 --- /dev/null +++ b/pulumi-redpanda/bin/provider.d.ts @@ -0,0 +1,147 @@ +import * as pulumi from "@pulumi/pulumi"; +/** + * The provider type for the redpanda package. By default, resources use package-wide configuration + * settings, however an explicit `Provider` instance may be created and passed during resource + * construction to achieve fine-grained programmatic control over provider settings. See the + * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + */ +export declare class Provider extends pulumi.ProviderResource { + /** + * Returns true if the given object is an instance of Provider. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Provider; + /** + * Redpanda client token. You need either `access_token`, or both `client_id` and `client_secret` to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable. + */ + readonly accessToken: pulumi.Output; + /** + * AWS access key ID for BYOC clusters. Can also be set via AWS_ACCESS_KEY_ID. + */ + readonly awsAccessKeyId: pulumi.Output; + /** + * AWS secret access key for BYOC clusters. Can also be set via AWS_SECRET_ACCESS_KEY. + */ + readonly awsSecretAccessKey: pulumi.Output; + /** + * AWS session token for BYOC clusters (for temporary credentials). Can also be set via AWS_SESSION_TOKEN. + */ + readonly awsSessionToken: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID + */ + readonly azureClientId: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET + */ + readonly azureClientSecret: pulumi.Output; + /** + * The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable. + */ + readonly azureSubscriptionId: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID + */ + readonly azureTenantId: pulumi.Output; + /** + * The ID for the client. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable. + */ + readonly clientId: pulumi.Output; + /** + * Redpanda client secret. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable. + */ + readonly clientSecret: pulumi.Output; + /** + * The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`. + */ + readonly gcpProjectId: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS + */ + readonly googleCredentials: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64 + */ + readonly googleCredentialsBase64: pulumi.Output; + /** + * Create a Provider resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions); + /** + * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider. + */ + terraformConfig(): pulumi.Output<{ + [key: string]: any; + }>; +} +/** + * The set of arguments for constructing a Provider resource. + */ +export interface ProviderArgs { + /** + * Redpanda client token. You need either `access_token`, or both `client_id` and `client_secret` to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable. + */ + accessToken?: pulumi.Input; + /** + * AWS access key ID for BYOC clusters. Can also be set via AWS_ACCESS_KEY_ID. + */ + awsAccessKeyId?: pulumi.Input; + /** + * AWS secret access key for BYOC clusters. Can also be set via AWS_SECRET_ACCESS_KEY. + */ + awsSecretAccessKey?: pulumi.Input; + /** + * AWS session token for BYOC clusters (for temporary credentials). Can also be set via AWS_SESSION_TOKEN. + */ + awsSessionToken?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID + */ + azureClientId?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET + */ + azureClientSecret?: pulumi.Input; + /** + * The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable. + */ + azureSubscriptionId?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID + */ + azureTenantId?: pulumi.Input; + /** + * The ID for the client. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable. + */ + clientId?: pulumi.Input; + /** + * Redpanda client secret. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable. + */ + clientSecret?: pulumi.Input; + /** + * The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`. + */ + gcpProjectId?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS + */ + googleCredentials?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64 + */ + googleCredentialsBase64?: pulumi.Input; +} +export declare namespace Provider { + /** + * The results of the Provider.terraformConfig method. + */ + interface TerraformConfigResult { + readonly result: { + [key: string]: any; + }; + } +} diff --git a/pulumi-redpanda/bin/provider.js b/pulumi-redpanda/bin/provider.js new file mode 100644 index 00000000..28ba65be --- /dev/null +++ b/pulumi-redpanda/bin/provider.js @@ -0,0 +1,68 @@ +"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.Provider = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +/** + * The provider type for the redpanda package. By default, resources use package-wide configuration + * settings, however an explicit `Provider` instance may be created and passed during resource + * construction to achieve fine-grained programmatic control over provider settings. See the + * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + */ +class Provider extends pulumi.ProviderResource { + /** + * Returns true if the given object is an instance of Provider. 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'] === "pulumi:providers:" + Provider.__pulumiType; + } + /** + * Create a Provider resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name, args, opts) { + let resourceInputs = {}; + opts = opts || {}; + { + resourceInputs["accessToken"] = args?.accessToken ? pulumi.secret(args.accessToken) : undefined; + resourceInputs["awsAccessKeyId"] = args?.awsAccessKeyId ? pulumi.secret(args.awsAccessKeyId) : undefined; + resourceInputs["awsSecretAccessKey"] = args?.awsSecretAccessKey ? pulumi.secret(args.awsSecretAccessKey) : undefined; + resourceInputs["awsSessionToken"] = args?.awsSessionToken ? pulumi.secret(args.awsSessionToken) : undefined; + resourceInputs["azureClientId"] = args?.azureClientId; + resourceInputs["azureClientSecret"] = args?.azureClientSecret ? pulumi.secret(args.azureClientSecret) : undefined; + resourceInputs["azureSubscriptionId"] = args?.azureSubscriptionId; + resourceInputs["azureTenantId"] = args?.azureTenantId; + resourceInputs["clientId"] = args?.clientId ? pulumi.secret(args.clientId) : undefined; + resourceInputs["clientSecret"] = args?.clientSecret ? pulumi.secret(args.clientSecret) : undefined; + resourceInputs["gcpProjectId"] = args?.gcpProjectId; + resourceInputs["googleCredentials"] = args?.googleCredentials ? pulumi.secret(args.googleCredentials) : undefined; + resourceInputs["googleCredentialsBase64"] = args?.googleCredentialsBase64 ? pulumi.secret(args.googleCredentialsBase64) : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["accessToken", "awsAccessKeyId", "awsSecretAccessKey", "awsSessionToken", "azureClientSecret", "clientId", "clientSecret", "googleCredentials", "googleCredentialsBase64"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Provider.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } + /** + * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider. + */ + terraformConfig() { + const result = pulumi.runtime.call("pulumi:providers:redpanda/terraformConfig", { + "__self__": this, + }, this, utilities.getPackage()); + return result.result; + } +} +exports.Provider = Provider; +/** @internal */ +Provider.__pulumiType = 'redpanda'; +//# sourceMappingURL=provider.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/provider.js.map b/pulumi-redpanda/bin/provider.js.map new file mode 100644 index 00000000..c80332ba --- /dev/null +++ b/pulumi-redpanda/bin/provider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/resourceGroup.d.ts b/pulumi-redpanda/bin/resourceGroup.d.ts new file mode 100644 index 00000000..23e74c8b --- /dev/null +++ b/pulumi-redpanda/bin/resourceGroup.d.ts @@ -0,0 +1,48 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class ResourceGroup extends pulumi.CustomResource { + /** + * Get an existing ResourceGroup 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: string, id: pulumi.Input, state?: ResourceGroupState, opts?: pulumi.CustomResourceOptions): ResourceGroup; + /** + * Returns true if the given object is an instance of ResourceGroup. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is ResourceGroup; + /** + * Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed + */ + readonly name: pulumi.Output; + /** + * Create a ResourceGroup resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceGroupArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering ResourceGroup resources. + */ +export interface ResourceGroupState { + /** + * Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed + */ + name?: pulumi.Input; +} +/** + * The set of arguments for constructing a ResourceGroup resource. + */ +export interface ResourceGroupArgs { + /** + * Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed + */ + name?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/resourceGroup.js b/pulumi-redpanda/bin/resourceGroup.js new file mode 100644 index 00000000..92c3c3b3 --- /dev/null +++ b/pulumi-redpanda/bin/resourceGroup.js @@ -0,0 +1,49 @@ +"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.ResourceGroup = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class ResourceGroup extends pulumi.CustomResource { + /** + * Get an existing ResourceGroup 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 ResourceGroup(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of ResourceGroup. 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'] === ResourceGroup.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["name"] = state?.name; + } + else { + const args = argsOrState; + resourceInputs["name"] = args?.name; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceGroup.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.ResourceGroup = ResourceGroup; +/** @internal */ +ResourceGroup.__pulumiType = 'redpanda:index/resourceGroup:ResourceGroup'; +//# sourceMappingURL=resourceGroup.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/resourceGroup.js.map b/pulumi-redpanda/bin/resourceGroup.js.map new file mode 100644 index 00000000..0e557823 --- /dev/null +++ b/pulumi-redpanda/bin/resourceGroup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resourceGroup.js","sourceRoot":"","sources":["../resourceGroup.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,aAAc,SAAQ,MAAM,CAAC,cAAc;IACpD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA0B,EAAE,IAAmC;QACxH,OAAO,IAAI,aAAa,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,aAAa,CAAC,YAAY,CAAC;IAC9D,CAAC;IAeD,YAAY,IAAY,EAAE,WAAoD,EAAE,IAAmC;QAC/G,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAA6C,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAA4C,CAAC;YAC1D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;QACxC,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAChH,CAAC;;AArDL,sCAsDC;AAxCG,gBAAgB;AACO,0BAAY,GAAG,4CAA4C,CAAC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/role.d.ts b/pulumi-redpanda/bin/role.d.ts new file mode 100644 index 00000000..5de76e63 --- /dev/null +++ b/pulumi-redpanda/bin/role.d.ts @@ -0,0 +1,84 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class Role extends pulumi.CustomResource { + /** + * Get an existing Role 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: string, id: pulumi.Input, state?: RoleState, opts?: pulumi.CustomResourceOptions): Role; + /** + * Returns true if the given object is an instance of Role. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Role; + /** + * Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + readonly clusterApiUrl: pulumi.Output; + /** + * Whether to delete the ACLs bound to the role when the role is deleted. Defaults to false. + */ + readonly deleteAcls: pulumi.Output; + /** + * Name of the role, must be unique + */ + readonly name: pulumi.Output; + /** + * Create a Role resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: RoleArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Role resources. + */ +export interface RoleState { + /** + * Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * Whether to delete the ACLs bound to the role when the role is deleted. Defaults to false. + */ + deleteAcls?: pulumi.Input; + /** + * Name of the role, must be unique + */ + name?: pulumi.Input; +} +/** + * The set of arguments for constructing a Role resource. + */ +export interface RoleArgs { + /** + * Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * Whether to delete the ACLs bound to the role when the role is deleted. Defaults to false. + */ + deleteAcls?: pulumi.Input; + /** + * Name of the role, must be unique + */ + name?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/role.js b/pulumi-redpanda/bin/role.js new file mode 100644 index 00000000..2ba0a67c --- /dev/null +++ b/pulumi-redpanda/bin/role.js @@ -0,0 +1,58 @@ +"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.Role = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Role extends pulumi.CustomResource { + /** + * Get an existing Role 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 Role(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Role. 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'] === Role.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["deleteAcls"] = state?.deleteAcls; + resourceInputs["name"] = state?.name; + } + else { + const args = argsOrState; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["deleteAcls"] = args?.deleteAcls; + resourceInputs["name"] = args?.name; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Role.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Role = Role; +/** @internal */ +Role.__pulumiType = 'redpanda:index/role:Role'; +//# sourceMappingURL=role.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/role.js.map b/pulumi-redpanda/bin/role.js.map new file mode 100644 index 00000000..3197236d --- /dev/null +++ b/pulumi-redpanda/bin/role.js.map @@ -0,0 +1 @@ +{"version":3,"file":"role.js","sourceRoot":"","sources":["../role.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,IAAK,SAAQ,MAAM,CAAC,cAAc;IAC3C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAiB,EAAE,IAAmC;QAC/G,OAAO,IAAI,IAAI,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC;IACrD,CAAC;IA2BD,YAAY,IAAY,EAAE,WAAkC,EAAE,IAAmC;QAC7F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAAoC,CAAC;YACnD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAAmC,CAAC;YACjD,IAAI,IAAI,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;QACxC,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACvG,CAAC;;AA1EL,oBA2EC;AA7DG,gBAAgB;AACO,iBAAY,GAAG,0BAA0B,CAAC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/roleAssignment.d.ts b/pulumi-redpanda/bin/roleAssignment.d.ts new file mode 100644 index 00000000..4b4e8de4 --- /dev/null +++ b/pulumi-redpanda/bin/roleAssignment.d.ts @@ -0,0 +1,72 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class RoleAssignment extends pulumi.CustomResource { + /** + * Get an existing RoleAssignment 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: string, id: pulumi.Input, state?: RoleAssignmentState, opts?: pulumi.CustomResourceOptions): RoleAssignment; + /** + * Returns true if the given object is an instance of RoleAssignment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is RoleAssignment; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster + */ + readonly clusterApiUrl: pulumi.Output; + /** + * The principal to assign the role to. Specify just the username (e.g., `"john.doe"`) + */ + readonly principal: pulumi.Output; + /** + * The name of the role to assign + */ + readonly roleName: pulumi.Output; + /** + * Create a RoleAssignment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: RoleAssignmentArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering RoleAssignment resources. + */ +export interface RoleAssignmentState { + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster + */ + clusterApiUrl?: pulumi.Input; + /** + * The principal to assign the role to. Specify just the username (e.g., `"john.doe"`) + */ + principal?: pulumi.Input; + /** + * The name of the role to assign + */ + roleName?: pulumi.Input; +} +/** + * The set of arguments for constructing a RoleAssignment resource. + */ +export interface RoleAssignmentArgs { + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster + */ + clusterApiUrl: pulumi.Input; + /** + * The principal to assign the role to. Specify just the username (e.g., `"john.doe"`) + */ + principal: pulumi.Input; + /** + * The name of the role to assign + */ + roleName: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/roleAssignment.js b/pulumi-redpanda/bin/roleAssignment.js new file mode 100644 index 00000000..4332f668 --- /dev/null +++ b/pulumi-redpanda/bin/roleAssignment.js @@ -0,0 +1,62 @@ +"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.RoleAssignment = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class RoleAssignment extends pulumi.CustomResource { + /** + * Get an existing RoleAssignment 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 RoleAssignment(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of RoleAssignment. 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'] === RoleAssignment.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["principal"] = state?.principal; + resourceInputs["roleName"] = state?.roleName; + } + else { + const args = argsOrState; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + if (args?.principal === undefined && !opts.urn) { + throw new Error("Missing required property 'principal'"); + } + if (args?.roleName === undefined && !opts.urn) { + throw new Error("Missing required property 'roleName'"); + } + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["principal"] = args?.principal; + resourceInputs["roleName"] = args?.roleName; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(RoleAssignment.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.RoleAssignment = RoleAssignment; +/** @internal */ +RoleAssignment.__pulumiType = 'redpanda:index/roleAssignment:RoleAssignment'; +//# sourceMappingURL=roleAssignment.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/roleAssignment.js.map b/pulumi-redpanda/bin/roleAssignment.js.map new file mode 100644 index 00000000..fd095ad7 --- /dev/null +++ b/pulumi-redpanda/bin/roleAssignment.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roleAssignment.js","sourceRoot":"","sources":["../roleAssignment.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,cAAe,SAAQ,MAAM,CAAC,cAAc;IACrD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA2B,EAAE,IAAmC;QACzH,OAAO,IAAI,cAAc,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,YAAY,CAAC;IAC/D,CAAC;IAuBD,YAAY,IAAY,EAAE,WAAsD,EAAE,IAAmC;QACjH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAA8C,CAAC;YAC7D,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAA6C,CAAC;YAC3D,IAAI,IAAI,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC5D,CAAC;YACD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;QAChD,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACjH,CAAC;;AA1EL,wCA2EC;AA7DG,gBAAgB;AACO,2BAAY,GAAG,8CAA8C,CAAC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/schema.d.ts b/pulumi-redpanda/bin/schema.d.ts new file mode 100644 index 00000000..efa6550a --- /dev/null +++ b/pulumi-redpanda/bin/schema.d.ts @@ -0,0 +1,192 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class Schema extends pulumi.CustomResource { + /** + * Get an existing Schema 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: string, id: pulumi.Input, state?: SchemaState, opts?: pulumi.CustomResourceOptions): Schema; + /** + * Returns true if the given object is an instance of Schema. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Schema; + /** + * When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable. + */ + readonly allowDeletion: pulumi.Output; + /** + * The ID of the cluster where the schema is stored. + */ + readonly clusterId: pulumi.Output; + /** + * The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD. + */ + readonly compatibility: pulumi.Output; + /** + * The SASL password for Schema Registry authentication. Deprecated: use password_wo instead. + * + * @deprecated Deprecated + */ + readonly password: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + readonly passwordWoVersion: pulumi.Output; + /** + * List of schema references. + */ + readonly references: pulumi.Output; + /** + * The schema definition in JSON format. + */ + readonly schema: pulumi.Output; + /** + * The unique identifier for the schema. + */ + readonly schemaId: pulumi.Output; + /** + * The type of schema (AVRO, JSON, PROTOBUF). + */ + readonly schemaType: pulumi.Output; + /** + * The subject name for the schema. + */ + readonly subject: pulumi.Output; + /** + * The SASL username for Schema Registry authentication. + */ + readonly username: pulumi.Output; + /** + * The version of the schema. + */ + readonly version: pulumi.Output; + /** + * Create a Schema resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SchemaArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Schema resources. + */ +export interface SchemaState { + /** + * When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable. + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the schema is stored. + */ + clusterId?: pulumi.Input; + /** + * The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD. + */ + compatibility?: pulumi.Input; + /** + * The SASL password for Schema Registry authentication. Deprecated: use password_wo instead. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * List of schema references. + */ + references?: pulumi.Input[]>; + /** + * The schema definition in JSON format. + */ + schema?: pulumi.Input; + /** + * The unique identifier for the schema. + */ + schemaId?: pulumi.Input; + /** + * The type of schema (AVRO, JSON, PROTOBUF). + */ + schemaType?: pulumi.Input; + /** + * The subject name for the schema. + */ + subject?: pulumi.Input; + /** + * The SASL username for Schema Registry authentication. + */ + username?: pulumi.Input; + /** + * The version of the schema. + */ + version?: pulumi.Input; +} +/** + * The set of arguments for constructing a Schema resource. + */ +export interface SchemaArgs { + /** + * When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable. + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the schema is stored. + */ + clusterId: pulumi.Input; + /** + * The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD. + */ + compatibility?: pulumi.Input; + /** + * The SASL password for Schema Registry authentication. Deprecated: use password_wo instead. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * List of schema references. + */ + references?: pulumi.Input[]>; + /** + * The schema definition in JSON format. + */ + schema: pulumi.Input; + /** + * The type of schema (AVRO, JSON, PROTOBUF). + */ + schemaType?: pulumi.Input; + /** + * The subject name for the schema. + */ + subject: pulumi.Input; + /** + * The SASL username for Schema Registry authentication. + */ + username: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/schema.js b/pulumi-redpanda/bin/schema.js new file mode 100644 index 00000000..2a3a7288 --- /dev/null +++ b/pulumi-redpanda/bin/schema.js @@ -0,0 +1,87 @@ +"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.Schema = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Schema extends pulumi.CustomResource { + /** + * Get an existing Schema 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 Schema(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Schema. 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'] === Schema.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterId"] = state?.clusterId; + resourceInputs["compatibility"] = state?.compatibility; + resourceInputs["password"] = state?.password; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + resourceInputs["references"] = state?.references; + resourceInputs["schema"] = state?.schema; + resourceInputs["schemaId"] = state?.schemaId; + resourceInputs["schemaType"] = state?.schemaType; + resourceInputs["subject"] = state?.subject; + resourceInputs["username"] = state?.username; + resourceInputs["version"] = state?.version; + } + else { + const args = argsOrState; + if (args?.clusterId === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterId'"); + } + if (args?.schema === undefined && !opts.urn) { + throw new Error("Missing required property 'schema'"); + } + if (args?.subject === undefined && !opts.urn) { + throw new Error("Missing required property 'subject'"); + } + if (args?.username === undefined && !opts.urn) { + throw new Error("Missing required property 'username'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterId"] = args?.clusterId; + resourceInputs["compatibility"] = args?.compatibility; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + resourceInputs["references"] = args?.references; + resourceInputs["schema"] = args?.schema; + resourceInputs["schemaType"] = args?.schemaType; + resourceInputs["subject"] = args?.subject; + resourceInputs["username"] = args?.username ? pulumi.secret(args.username) : undefined; + resourceInputs["schemaId"] = undefined /*out*/; + resourceInputs["version"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password", "passwordWo", "username"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Schema.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Schema = Schema; +/** @internal */ +Schema.__pulumiType = 'redpanda:index/schema:Schema'; +//# sourceMappingURL=schema.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/schema.js.map b/pulumi-redpanda/bin/schema.js.map new file mode 100644 index 00000000..1752c046 --- /dev/null +++ b/pulumi-redpanda/bin/schema.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schema.js","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/schemaRegistryAcl.d.ts b/pulumi-redpanda/bin/schemaRegistryAcl.d.ts new file mode 100644 index 00000000..ee8d4393 --- /dev/null +++ b/pulumi-redpanda/bin/schemaRegistryAcl.d.ts @@ -0,0 +1,198 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class SchemaRegistryAcl extends pulumi.CustomResource { + /** + * Get an existing SchemaRegistryAcl 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: string, id: pulumi.Input, state?: SchemaRegistryAclState, opts?: pulumi.CustomResourceOptions): SchemaRegistryAcl; + /** + * Returns true if the given object is an instance of SchemaRegistryAcl. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is SchemaRegistryAcl; + /** + * When set to true, allows the resource to be removed from state even if deletion fails due to permission errors + */ + readonly allowDeletion: pulumi.Output; + /** + * The ID of the cluster where the Schema Registry ACL will be created + */ + readonly clusterId: pulumi.Output; + /** + * The host address to use for this ACL. Use '*' for wildcard + */ + readonly host: pulumi.Output; + /** + * The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE_CONFIGS, ALTER, ALTER_CONFIGS + */ + readonly operation: pulumi.Output; + /** + * Password for authentication. Deprecated: use password_wo instead. Can be set via REDPANDA_SR_PASSWORD environment variable + * + * @deprecated Deprecated + */ + readonly password: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + readonly passwordWoVersion: pulumi.Output; + /** + * The pattern type of the resource: LITERAL or PREFIXED + */ + readonly patternType: pulumi.Output; + /** + * The permission type: ALLOW or DENY + */ + readonly permission: pulumi.Output; + /** + * The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin) + */ + readonly principal: pulumi.Output; + /** + * The name of the resource this ACL entry will be on. Use '*' for wildcard + */ + readonly resourceName: pulumi.Output; + /** + * The type of the resource: SUBJECT or REGISTRY + */ + readonly resourceType: pulumi.Output; + /** + * Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable + */ + readonly username: pulumi.Output; + /** + * Create a SchemaRegistryAcl resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SchemaRegistryAclArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering SchemaRegistryAcl resources. + */ +export interface SchemaRegistryAclState { + /** + * When set to true, allows the resource to be removed from state even if deletion fails due to permission errors + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the Schema Registry ACL will be created + */ + clusterId?: pulumi.Input; + /** + * The host address to use for this ACL. Use '*' for wildcard + */ + host?: pulumi.Input; + /** + * The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE_CONFIGS, ALTER, ALTER_CONFIGS + */ + operation?: pulumi.Input; + /** + * Password for authentication. Deprecated: use password_wo instead. Can be set via REDPANDA_SR_PASSWORD environment variable + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * The pattern type of the resource: LITERAL or PREFIXED + */ + patternType?: pulumi.Input; + /** + * The permission type: ALLOW or DENY + */ + permission?: pulumi.Input; + /** + * The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin) + */ + principal?: pulumi.Input; + /** + * The name of the resource this ACL entry will be on. Use '*' for wildcard + */ + resourceName?: pulumi.Input; + /** + * The type of the resource: SUBJECT or REGISTRY + */ + resourceType?: pulumi.Input; + /** + * Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable + */ + username?: pulumi.Input; +} +/** + * The set of arguments for constructing a SchemaRegistryAcl resource. + */ +export interface SchemaRegistryAclArgs { + /** + * When set to true, allows the resource to be removed from state even if deletion fails due to permission errors + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the Schema Registry ACL will be created + */ + clusterId: pulumi.Input; + /** + * The host address to use for this ACL. Use '*' for wildcard + */ + host: pulumi.Input; + /** + * The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE_CONFIGS, ALTER, ALTER_CONFIGS + */ + operation: pulumi.Input; + /** + * Password for authentication. Deprecated: use password_wo instead. Can be set via REDPANDA_SR_PASSWORD environment variable + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * The pattern type of the resource: LITERAL or PREFIXED + */ + patternType: pulumi.Input; + /** + * The permission type: ALLOW or DENY + */ + permission: pulumi.Input; + /** + * The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin) + */ + principal: pulumi.Input; + /** + * The name of the resource this ACL entry will be on. Use '*' for wildcard + */ + resourceName: pulumi.Input; + /** + * The type of the resource: SUBJECT or REGISTRY + */ + resourceType: pulumi.Input; + /** + * Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable + */ + username?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/schemaRegistryAcl.js b/pulumi-redpanda/bin/schemaRegistryAcl.js new file mode 100644 index 00000000..f23ae774 --- /dev/null +++ b/pulumi-redpanda/bin/schemaRegistryAcl.js @@ -0,0 +1,99 @@ +"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.SchemaRegistryAcl = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class SchemaRegistryAcl extends pulumi.CustomResource { + /** + * Get an existing SchemaRegistryAcl 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 SchemaRegistryAcl(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of SchemaRegistryAcl. 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'] === SchemaRegistryAcl.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterId"] = state?.clusterId; + resourceInputs["host"] = state?.host; + resourceInputs["operation"] = state?.operation; + resourceInputs["password"] = state?.password; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + resourceInputs["patternType"] = state?.patternType; + resourceInputs["permission"] = state?.permission; + resourceInputs["principal"] = state?.principal; + resourceInputs["resourceName"] = state?.resourceName; + resourceInputs["resourceType"] = state?.resourceType; + resourceInputs["username"] = state?.username; + } + else { + const args = argsOrState; + if (args?.clusterId === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterId'"); + } + if (args?.host === undefined && !opts.urn) { + throw new Error("Missing required property 'host'"); + } + if (args?.operation === undefined && !opts.urn) { + throw new Error("Missing required property 'operation'"); + } + if (args?.patternType === undefined && !opts.urn) { + throw new Error("Missing required property 'patternType'"); + } + if (args?.permission === undefined && !opts.urn) { + throw new Error("Missing required property 'permission'"); + } + if (args?.principal === undefined && !opts.urn) { + throw new Error("Missing required property 'principal'"); + } + if (args?.resourceName === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceName'"); + } + if (args?.resourceType === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterId"] = args?.clusterId; + resourceInputs["host"] = args?.host; + resourceInputs["operation"] = args?.operation; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + resourceInputs["patternType"] = args?.patternType; + resourceInputs["permission"] = args?.permission; + resourceInputs["principal"] = args?.principal; + resourceInputs["resourceName"] = args?.resourceName; + resourceInputs["resourceType"] = args?.resourceType; + resourceInputs["username"] = args?.username ? pulumi.secret(args.username) : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password", "passwordWo", "username"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(SchemaRegistryAcl.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.SchemaRegistryAcl = SchemaRegistryAcl; +/** @internal */ +SchemaRegistryAcl.__pulumiType = 'redpanda:index/schemaRegistryAcl:SchemaRegistryAcl'; +//# sourceMappingURL=schemaRegistryAcl.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/schemaRegistryAcl.js.map b/pulumi-redpanda/bin/schemaRegistryAcl.js.map new file mode 100644 index 00000000..06c9390b --- /dev/null +++ b/pulumi-redpanda/bin/schemaRegistryAcl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schemaRegistryAcl.js","sourceRoot":"","sources":["../schemaRegistryAcl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/serverlessCluster.d.ts b/pulumi-redpanda/bin/serverlessCluster.d.ts new file mode 100644 index 00000000..e350889d --- /dev/null +++ b/pulumi-redpanda/bin/serverlessCluster.d.ts @@ -0,0 +1,192 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class ServerlessCluster extends pulumi.CustomResource { + /** + * Get an existing ServerlessCluster 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: string, id: pulumi.Input, state?: ServerlessClusterState, opts?: pulumi.CustomResourceOptions): ServerlessCluster; + /** + * Returns true if the given object is an instance of ServerlessCluster. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is ServerlessCluster; + /** + * The URL of the dataplane API for the serverless cluster + * + * @deprecated Deprecated + */ + readonly clusterApiUrl: pulumi.Output; + /** + * Private Console URL for the serverless cluster + */ + readonly consolePrivateUrl: pulumi.Output; + /** + * Public Console URL for the serverless cluster + */ + readonly consoleUrl: pulumi.Output; + /** + * Dataplane API endpoints for the serverless cluster + */ + readonly dataplaneApi: pulumi.Output; + /** + * Kafka API endpoints for the serverless cluster + */ + readonly kafkaApi: pulumi.Output; + /** + * Name of the serverless cluster + */ + readonly name: pulumi.Output; + /** + * Network configuration controlling public/private access to the cluster + */ + readonly networkingConfig: pulumi.Output; + /** + * Planned deletion information for the serverless cluster. + */ + readonly plannedDeletion: pulumi.Output; + /** + * Private link ID for the serverless cluster. Must be set if private networking is enabled. + */ + readonly privateLinkId: pulumi.Output; + /** + * Prometheus metrics endpoints for the serverless cluster + */ + readonly prometheus: pulumi.Output; + /** + * The ID of the Resource Group in which to create the serverless cluster + */ + readonly resourceGroupId: pulumi.Output; + /** + * Schema Registry endpoints for the serverless cluster + */ + readonly schemaRegistry: pulumi.Output; + /** + * Redpanda specific region of the serverless cluster + */ + readonly serverlessRegion: pulumi.Output; + /** + * Current state of the serverless cluster. + */ + readonly state: pulumi.Output; + /** + * Tags placed on cloud resources. + */ + readonly tags: pulumi.Output<{ + [key: string]: string; + } | undefined>; + /** + * Create a ServerlessCluster resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServerlessClusterArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering ServerlessCluster resources. + */ +export interface ServerlessClusterState { + /** + * The URL of the dataplane API for the serverless cluster + * + * @deprecated Deprecated + */ + clusterApiUrl?: pulumi.Input; + /** + * Private Console URL for the serverless cluster + */ + consolePrivateUrl?: pulumi.Input; + /** + * Public Console URL for the serverless cluster + */ + consoleUrl?: pulumi.Input; + /** + * Dataplane API endpoints for the serverless cluster + */ + dataplaneApi?: pulumi.Input; + /** + * Kafka API endpoints for the serverless cluster + */ + kafkaApi?: pulumi.Input; + /** + * Name of the serverless cluster + */ + name?: pulumi.Input; + /** + * Network configuration controlling public/private access to the cluster + */ + networkingConfig?: pulumi.Input; + /** + * Planned deletion information for the serverless cluster. + */ + plannedDeletion?: pulumi.Input; + /** + * Private link ID for the serverless cluster. Must be set if private networking is enabled. + */ + privateLinkId?: pulumi.Input; + /** + * Prometheus metrics endpoints for the serverless cluster + */ + prometheus?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless cluster + */ + resourceGroupId?: pulumi.Input; + /** + * Schema Registry endpoints for the serverless cluster + */ + schemaRegistry?: pulumi.Input; + /** + * Redpanda specific region of the serverless cluster + */ + serverlessRegion?: pulumi.Input; + /** + * Current state of the serverless cluster. + */ + state?: pulumi.Input; + /** + * Tags placed on cloud resources. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; +} +/** + * The set of arguments for constructing a ServerlessCluster resource. + */ +export interface ServerlessClusterArgs { + /** + * Name of the serverless cluster + */ + name?: pulumi.Input; + /** + * Network configuration controlling public/private access to the cluster + */ + networkingConfig?: pulumi.Input; + /** + * Private link ID for the serverless cluster. Must be set if private networking is enabled. + */ + privateLinkId?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless cluster + */ + resourceGroupId: pulumi.Input; + /** + * Redpanda specific region of the serverless cluster + */ + serverlessRegion: pulumi.Input; + /** + * Tags placed on cloud resources. + */ + tags?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; +} diff --git a/pulumi-redpanda/bin/serverlessCluster.js b/pulumi-redpanda/bin/serverlessCluster.js new file mode 100644 index 00000000..69b30070 --- /dev/null +++ b/pulumi-redpanda/bin/serverlessCluster.js @@ -0,0 +1,83 @@ +"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.ServerlessCluster = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class ServerlessCluster extends pulumi.CustomResource { + /** + * Get an existing ServerlessCluster 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 ServerlessCluster(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of ServerlessCluster. 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'] === ServerlessCluster.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["consolePrivateUrl"] = state?.consolePrivateUrl; + resourceInputs["consoleUrl"] = state?.consoleUrl; + resourceInputs["dataplaneApi"] = state?.dataplaneApi; + resourceInputs["kafkaApi"] = state?.kafkaApi; + resourceInputs["name"] = state?.name; + resourceInputs["networkingConfig"] = state?.networkingConfig; + resourceInputs["plannedDeletion"] = state?.plannedDeletion; + resourceInputs["privateLinkId"] = state?.privateLinkId; + resourceInputs["prometheus"] = state?.prometheus; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["schemaRegistry"] = state?.schemaRegistry; + resourceInputs["serverlessRegion"] = state?.serverlessRegion; + resourceInputs["state"] = state?.state; + resourceInputs["tags"] = state?.tags; + } + else { + const args = argsOrState; + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + if (args?.serverlessRegion === undefined && !opts.urn) { + throw new Error("Missing required property 'serverlessRegion'"); + } + resourceInputs["name"] = args?.name; + resourceInputs["networkingConfig"] = args?.networkingConfig; + resourceInputs["privateLinkId"] = args?.privateLinkId; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["serverlessRegion"] = args?.serverlessRegion; + resourceInputs["tags"] = args?.tags; + resourceInputs["clusterApiUrl"] = undefined /*out*/; + resourceInputs["consolePrivateUrl"] = undefined /*out*/; + resourceInputs["consoleUrl"] = undefined /*out*/; + resourceInputs["dataplaneApi"] = undefined /*out*/; + resourceInputs["kafkaApi"] = undefined /*out*/; + resourceInputs["plannedDeletion"] = undefined /*out*/; + resourceInputs["prometheus"] = undefined /*out*/; + resourceInputs["schemaRegistry"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServerlessCluster.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.ServerlessCluster = ServerlessCluster; +/** @internal */ +ServerlessCluster.__pulumiType = 'redpanda:index/serverlessCluster:ServerlessCluster'; +//# sourceMappingURL=serverlessCluster.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/serverlessCluster.js.map b/pulumi-redpanda/bin/serverlessCluster.js.map new file mode 100644 index 00000000..205eafa6 --- /dev/null +++ b/pulumi-redpanda/bin/serverlessCluster.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serverlessCluster.js","sourceRoot":"","sources":["../serverlessCluster.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,MAAa,iBAAkB,SAAQ,MAAM,CAAC,cAAc;IACxD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA8B,EAAE,IAAmC;QAC5H,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,iBAAiB,CAAC,YAAY,CAAC;IAClE,CAAC;IAyED,YAAY,IAAY,EAAE,WAA4D,EAAE,IAAmC;QACvH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAAiD,CAAC;YAChE,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;YAC/D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC;YACrD,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC;YAC7C,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;YAC7D,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,EAAE,eAAe,CAAC;YAC3D,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,EAAE,eAAe,CAAC;YAC3D,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;YAC7D,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAAgD,CAAC;YAC9D,IAAI,IAAI,EAAE,eAAe,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,EAAE,gBAAgB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACpE,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,iBAAiB,CAAC,GAAG,IAAI,EAAE,eAAe,CAAC;YAC1D,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACpD,cAAc,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACxD,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACjD,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACnD,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC/C,cAAc,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACtD,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACjD,cAAc,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACrD,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;QAChD,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACpH,CAAC;;AAjJL,8CAkJC;AApIG,gBAAgB;AACO,8BAAY,GAAG,oDAAoD,CAAC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/serverlessPrivateLink.d.ts b/pulumi-redpanda/bin/serverlessPrivateLink.d.ts new file mode 100644 index 00000000..89be020b --- /dev/null +++ b/pulumi-redpanda/bin/serverlessPrivateLink.d.ts @@ -0,0 +1,142 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class ServerlessPrivateLink extends pulumi.CustomResource { + /** + * Get an existing ServerlessPrivateLink 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: string, id: pulumi.Input, state?: ServerlessPrivateLinkState, opts?: pulumi.CustomResourceOptions): ServerlessPrivateLink; + /** + * Returns true if the given object is an instance of ServerlessPrivateLink. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is ServerlessPrivateLink; + /** + * Allows deletion of the serverless private link. Defaults to false. + */ + readonly allowDeletion: pulumi.Output; + /** + * Cloud provider (aws) + */ + readonly cloudProvider: pulumi.Output; + /** + * Cloud provider specific configuration + */ + readonly cloudProviderConfig: pulumi.Output; + /** + * Timestamp when the serverless private link was created + */ + readonly createdAt: pulumi.Output; + /** + * Name of the serverless private link + */ + readonly name: pulumi.Output; + /** + * The ID of the Resource Group in which to create the serverless private link + */ + readonly resourceGroupId: pulumi.Output; + /** + * Redpanda serverless region + */ + readonly serverlessRegion: pulumi.Output; + /** + * Current state of the serverless private link (STATE_CREATING, STATE_READY, STATE_DELETING, STATE_FAILED, STATE_UPDATING) + */ + readonly state: pulumi.Output; + /** + * Cloud provider specific status information + */ + readonly status: pulumi.Output; + /** + * Timestamp when the serverless private link was last updated. This value changes on every update operation. + */ + readonly updatedAt: pulumi.Output; + /** + * Create a ServerlessPrivateLink resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServerlessPrivateLinkArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering ServerlessPrivateLink resources. + */ +export interface ServerlessPrivateLinkState { + /** + * Allows deletion of the serverless private link. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * Cloud provider (aws) + */ + cloudProvider?: pulumi.Input; + /** + * Cloud provider specific configuration + */ + cloudProviderConfig?: pulumi.Input; + /** + * Timestamp when the serverless private link was created + */ + createdAt?: pulumi.Input; + /** + * Name of the serverless private link + */ + name?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless private link + */ + resourceGroupId?: pulumi.Input; + /** + * Redpanda serverless region + */ + serverlessRegion?: pulumi.Input; + /** + * Current state of the serverless private link (STATE_CREATING, STATE_READY, STATE_DELETING, STATE_FAILED, STATE_UPDATING) + */ + state?: pulumi.Input; + /** + * Cloud provider specific status information + */ + status?: pulumi.Input; + /** + * Timestamp when the serverless private link was last updated. This value changes on every update operation. + */ + updatedAt?: pulumi.Input; +} +/** + * The set of arguments for constructing a ServerlessPrivateLink resource. + */ +export interface ServerlessPrivateLinkArgs { + /** + * Allows deletion of the serverless private link. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * Cloud provider (aws) + */ + cloudProvider: pulumi.Input; + /** + * Cloud provider specific configuration + */ + cloudProviderConfig: pulumi.Input; + /** + * Name of the serverless private link + */ + name?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless private link + */ + resourceGroupId: pulumi.Input; + /** + * Redpanda serverless region + */ + serverlessRegion: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/serverlessPrivateLink.js b/pulumi-redpanda/bin/serverlessPrivateLink.js new file mode 100644 index 00000000..3442812b --- /dev/null +++ b/pulumi-redpanda/bin/serverlessPrivateLink.js @@ -0,0 +1,79 @@ +"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.ServerlessPrivateLink = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class ServerlessPrivateLink extends pulumi.CustomResource { + /** + * Get an existing ServerlessPrivateLink 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 ServerlessPrivateLink(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of ServerlessPrivateLink. 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'] === ServerlessPrivateLink.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["cloudProviderConfig"] = state?.cloudProviderConfig; + resourceInputs["createdAt"] = state?.createdAt; + resourceInputs["name"] = state?.name; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["serverlessRegion"] = state?.serverlessRegion; + resourceInputs["state"] = state?.state; + resourceInputs["status"] = state?.status; + resourceInputs["updatedAt"] = state?.updatedAt; + } + else { + const args = argsOrState; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.cloudProviderConfig === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProviderConfig'"); + } + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + if (args?.serverlessRegion === undefined && !opts.urn) { + throw new Error("Missing required property 'serverlessRegion'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["cloudProviderConfig"] = args?.cloudProviderConfig; + resourceInputs["name"] = args?.name; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["serverlessRegion"] = args?.serverlessRegion; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServerlessPrivateLink.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.ServerlessPrivateLink = ServerlessPrivateLink; +/** @internal */ +ServerlessPrivateLink.__pulumiType = 'redpanda:index/serverlessPrivateLink:ServerlessPrivateLink'; +//# sourceMappingURL=serverlessPrivateLink.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/serverlessPrivateLink.js.map b/pulumi-redpanda/bin/serverlessPrivateLink.js.map new file mode 100644 index 00000000..41573780 --- /dev/null +++ b/pulumi-redpanda/bin/serverlessPrivateLink.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serverlessPrivateLink.js","sourceRoot":"","sources":["../serverlessPrivateLink.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/topic.d.ts b/pulumi-redpanda/bin/topic.d.ts new file mode 100644 index 00000000..112bee7e --- /dev/null +++ b/pulumi-redpanda/bin/topic.d.ts @@ -0,0 +1,128 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +export declare class Topic extends pulumi.CustomResource { + /** + * Get an existing Topic 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: string, id: pulumi.Input, state?: TopicState, opts?: pulumi.CustomResourceOptions): Topic; + /** + * Returns true if the given object is an instance of Topic. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is Topic; + /** + * Indicates whether the topic can be deleted. + */ + readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + readonly clusterApiUrl: pulumi.Output; + /** + * A map of string key/value pairs of topic configurations. + */ + readonly configuration: pulumi.Output<{ + [key: string]: string; + }>; + /** + * The name of the topic. + */ + readonly name: pulumi.Output; + /** + * The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if allow_deletion is set to true (defaults to false). + */ + readonly partitionCount: pulumi.Output; + /** + * Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both replication_factor and partition_count must be -1. Mutually exclusive with partition_count and replication_factor. + */ + readonly replicaAssignments: pulumi.Output; + /** + * The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance. + */ + readonly replicationFactor: pulumi.Output; + /** + * Create a Topic resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: TopicArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering Topic resources. + */ +export interface TopicState { + /** + * Indicates whether the topic can be deleted. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * A map of string key/value pairs of topic configurations. + */ + configuration?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + /** + * The name of the topic. + */ + name?: pulumi.Input; + /** + * The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if allow_deletion is set to true (defaults to false). + */ + partitionCount?: pulumi.Input; + /** + * Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both replication_factor and partition_count must be -1. Mutually exclusive with partition_count and replication_factor. + */ + replicaAssignments?: pulumi.Input[]>; + /** + * The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance. + */ + replicationFactor?: pulumi.Input; +} +/** + * The set of arguments for constructing a Topic resource. + */ +export interface TopicArgs { + /** + * Indicates whether the topic can be deleted. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * A map of string key/value pairs of topic configurations. + */ + configuration?: pulumi.Input<{ + [key: string]: pulumi.Input; + }>; + /** + * The name of the topic. + */ + name?: pulumi.Input; + /** + * The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if allow_deletion is set to true (defaults to false). + */ + partitionCount?: pulumi.Input; + /** + * Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both replication_factor and partition_count must be -1. Mutually exclusive with partition_count and replication_factor. + */ + replicaAssignments?: pulumi.Input[]>; + /** + * The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance. + */ + replicationFactor?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/topic.js b/pulumi-redpanda/bin/topic.js new file mode 100644 index 00000000..df6284e2 --- /dev/null +++ b/pulumi-redpanda/bin/topic.js @@ -0,0 +1,64 @@ +"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.Topic = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class Topic extends pulumi.CustomResource { + /** + * Get an existing Topic 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 Topic(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of Topic. 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'] === Topic.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["configuration"] = state?.configuration; + resourceInputs["name"] = state?.name; + resourceInputs["partitionCount"] = state?.partitionCount; + resourceInputs["replicaAssignments"] = state?.replicaAssignments; + resourceInputs["replicationFactor"] = state?.replicationFactor; + } + else { + const args = argsOrState; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["configuration"] = args?.configuration; + resourceInputs["name"] = args?.name; + resourceInputs["partitionCount"] = args?.partitionCount; + resourceInputs["replicaAssignments"] = args?.replicaAssignments; + resourceInputs["replicationFactor"] = args?.replicationFactor; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Topic.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.Topic = Topic; +/** @internal */ +Topic.__pulumiType = 'redpanda:index/topic:Topic'; +//# sourceMappingURL=topic.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/topic.js.map b/pulumi-redpanda/bin/topic.js.map new file mode 100644 index 00000000..d323f9e8 --- /dev/null +++ b/pulumi-redpanda/bin/topic.js.map @@ -0,0 +1 @@ +{"version":3,"file":"topic.js","sourceRoot":"","sources":["../topic.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,MAAa,KAAM,SAAQ,MAAM,CAAC,cAAc;IAC5C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAkB,EAAE,IAAmC;QAChH,OAAO,IAAI,KAAK,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;IACtD,CAAC;IAuCD,YAAY,IAAY,EAAE,WAAoC,EAAE,IAAmC;QAC/F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAAqC,CAAC;YACpD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;YACvD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,oBAAoB,CAAC,GAAG,KAAK,EAAE,kBAAkB,CAAC;YACjE,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAAoC,CAAC;YAClD,IAAI,IAAI,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YACtD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC;YAChE,cAAc,CAAC,mBAAmB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;QAClE,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACxG,CAAC;;AA5FL,sBA6FC;AA/EG,gBAAgB;AACO,kBAAY,GAAG,4BAA4B,CAAC"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/types/index.d.ts b/pulumi-redpanda/bin/types/index.d.ts new file mode 100644 index 00000000..81efd51f --- /dev/null +++ b/pulumi-redpanda/bin/types/index.d.ts @@ -0,0 +1,3 @@ +import * as input from "./input"; +import * as output from "./output"; +export { input, output, }; diff --git a/pulumi-redpanda/bin/types/index.js b/pulumi-redpanda/bin/types/index.js new file mode 100644 index 00000000..017e4303 --- /dev/null +++ b/pulumi-redpanda/bin/types/index.js @@ -0,0 +1,11 @@ +"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.output = exports.input = void 0; +// Export sub-modules: +const input = require("./input"); +exports.input = input; +const output = require("./output"); +exports.output = output; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/types/index.js.map b/pulumi-redpanda/bin/types/index.js.map new file mode 100644 index 00000000..357f4a98 --- /dev/null +++ b/pulumi-redpanda/bin/types/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAIjF,sBAAsB;AACtB,iCAAiC;AAI7B,sBAAK;AAHT,mCAAmC;AAI/B,wBAAM"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/types/input.d.ts b/pulumi-redpanda/bin/types/input.d.ts new file mode 100644 index 00000000..e2e3fb3b --- /dev/null +++ b/pulumi-redpanda/bin/types/input.d.ts @@ -0,0 +1,1007 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +export interface ClusterAwsPrivateLink { + /** + * The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedPrincipals: pulumi.Input[]>; + /** + * Whether Console is connected via PrivateLink. + */ + connectConsole: pulumi.Input; + /** + * Whether AWS PrivateLink is enabled. + */ + enabled: pulumi.Input; + /** + * Current status of the PrivateLink configuration. + */ + status?: pulumi.Input; + /** + * Supported regions for AWS PrivateLink. + */ + supportedRegions?: pulumi.Input[]>; +} +export interface ClusterAwsPrivateLinkStatus { + /** + * Port for Redpanda Console. + */ + consolePort?: pulumi.Input; + /** + * When the PrivateLink service was created. + */ + createdAt?: pulumi.Input; + /** + * When the PrivateLink service was deleted. + */ + deletedAt?: pulumi.Input; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort?: pulumi.Input; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort?: pulumi.Input; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort?: pulumi.Input; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort?: pulumi.Input; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort?: pulumi.Input; + /** + * The PrivateLink service ID. + */ + serviceId?: pulumi.Input; + /** + * The PrivateLink service name. + */ + serviceName?: pulumi.Input; + /** + * Current state of the PrivateLink service. + */ + serviceState?: pulumi.Input; + /** + * List of VPC endpoint connections. + */ + vpcEndpointConnections?: pulumi.Input[]>; +} +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnection { + /** + * The connection ID. + */ + connectionId?: pulumi.Input; + /** + * When the endpoint connection was created. + */ + createdAt?: pulumi.Input; + /** + * DNS entries for the endpoint. + */ + dnsEntries?: pulumi.Input[]>; + /** + * The endpoint connection ID. + */ + id?: pulumi.Input; + /** + * ARNs of associated load balancers. + */ + loadBalancerArns?: pulumi.Input[]>; + /** + * Owner of the endpoint connection. + */ + owner?: pulumi.Input; + /** + * State of the endpoint connection. + */ + state?: pulumi.Input; +} +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry { + /** + * The DNS name. + */ + dnsName?: pulumi.Input; + /** + * The hosted zone ID. + */ + hostedZoneId?: pulumi.Input; +} +export interface ClusterAzurePrivateLink { + /** + * The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedSubscriptions: pulumi.Input[]>; + /** + * Whether Console is connected in Redpanda Azure Private Link Service. + */ + connectConsole: pulumi.Input; + /** + * Whether Redpanda Azure Private Link Endpoint Service is enabled. + */ + enabled: pulumi.Input; + /** + * Current status of the Private Link configuration. + */ + status?: pulumi.Input; +} +export interface ClusterAzurePrivateLinkStatus { + /** + * List of approved Azure subscription IDs. + */ + approvedSubscriptions?: pulumi.Input[]>; + /** + * Port for Redpanda Console. + */ + consolePort?: pulumi.Input; + /** + * When the Private Link service was created. + */ + createdAt?: pulumi.Input; + /** + * When the Private Link service was deleted. + */ + deletedAt?: pulumi.Input; + /** + * DNS A record for the service. + */ + dnsARecord?: pulumi.Input; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort?: pulumi.Input; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort?: pulumi.Input; + /** + * List of private endpoint connections. + */ + privateEndpointConnections?: pulumi.Input[]>; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort?: pulumi.Input; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort?: pulumi.Input; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort?: pulumi.Input; + /** + * The Private Link service ID. + */ + serviceId?: pulumi.Input; + /** + * The Private Link service name. + */ + serviceName?: pulumi.Input; +} +export interface ClusterAzurePrivateLinkStatusPrivateEndpointConnection { + /** + * ID of the connection. + */ + connectionId?: pulumi.Input; + /** + * Name of the connection. + */ + connectionName?: pulumi.Input; + /** + * When the endpoint connection was created. + */ + createdAt?: pulumi.Input; + /** + * ID of the private endpoint. + */ + privateEndpointId?: pulumi.Input; + /** + * Name of the private endpoint. + */ + privateEndpointName?: pulumi.Input; + /** + * Status of the endpoint connection. + */ + status?: pulumi.Input; +} +export interface ClusterCloudStorage { + /** + * AWS cloud storage configuration. + */ + aws?: pulumi.Input; + /** + * Azure cloud storage configuration. + */ + azure?: pulumi.Input; + /** + * GCP cloud storage configuration. + */ + gcp?: pulumi.Input; + /** + * If true, cloud storage is not deleted when the cluster is destroyed. + */ + skipDestroy?: pulumi.Input; +} +export interface ClusterCloudStorageAws { + /** + * ARN of the AWS S3 bucket. + */ + arn?: pulumi.Input; +} +export interface ClusterCloudStorageAzure { + /** + * Name of the Azure storage container. + */ + containerName?: pulumi.Input; + /** + * Name of the Azure storage account. + */ + storageAccountName?: pulumi.Input; +} +export interface ClusterCloudStorageGcp { + /** + * Name of the GCP storage bucket. + */ + name?: pulumi.Input; +} +export interface ClusterClusterConfiguration { + /** + * Custom properties for the cluster in JSON format. + */ + customPropertiesJson?: pulumi.Input; +} +export interface ClusterCustomerManagedResources { + aws?: pulumi.Input; + gcp?: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAws { + agentInstanceProfile: pulumi.Input; + cloudStorageBucket: pulumi.Input; + clusterSecurityGroup: pulumi.Input; + connectorsNodeGroupInstanceProfile: pulumi.Input; + connectorsSecurityGroup: pulumi.Input; + k8sClusterRole: pulumi.Input; + nodeSecurityGroup: pulumi.Input; + permissionsBoundaryPolicy: pulumi.Input; + redpandaAgentSecurityGroup: pulumi.Input; + redpandaConnectNodeGroupInstanceProfile?: pulumi.Input; + redpandaConnectSecurityGroup?: pulumi.Input; + redpandaNodeGroupInstanceProfile: pulumi.Input; + redpandaNodeGroupSecurityGroup: pulumi.Input; + utilityNodeGroupInstanceProfile: pulumi.Input; + utilitySecurityGroup: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsAgentInstanceProfile { + /** + * ARN for the agent instance profile + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsCloudStorageBucket { + /** + * ARN for the cloud storage bucket + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsClusterSecurityGroup { + /** + * ARN for the cluster security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile { + /** + * ARN for the connectors node group instance profile + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup { + /** + * ARN for the connectors security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsK8sClusterRole { + /** + * ARN for the Kubernetes cluster role + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsNodeSecurityGroup { + /** + * ARN for the node security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy { + /** + * ARN for the permissions boundary policy + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup { + /** + * ARN for the redpanda agent security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile { + /** + * ARN for the Redpanda Connect node group instance profile + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup { + /** + * ARN for the Redpanda Connect security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile { + /** + * ARN for the redpanda node group instance profile + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup { + /** + * ARN for the redpanda node group security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile { + /** + * ARN for the utility node group instance profile + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesAwsUtilitySecurityGroup { + /** + * ARN for the utility security group + */ + arn: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcp { + /** + * GCP service account for the agent. + */ + agentServiceAccount: pulumi.Input; + /** + * GCP service account for managed connectors. + */ + connectorServiceAccount: pulumi.Input; + /** + * GCP service account for Redpanda Console. + */ + consoleServiceAccount: pulumi.Input; + /** + * GCP service account for GCP Kubernetes Engine (GKE). + */ + gkeServiceAccount: pulumi.Input; + /** + * NAT subnet name if GCP Private Service Connect is enabled. + */ + pscNatSubnetName?: pulumi.Input; + /** + * GCP service account for the Redpanda cluster. + */ + redpandaClusterServiceAccount: pulumi.Input; + /** + * GCP subnet where Redpanda cluster is deployed. + */ + subnet: pulumi.Input; + /** + * GCP storage bucket for Tiered storage. + */ + tieredStorageBucket: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpAgentServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpConnectorServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpConsoleServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpGkeServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpSubnet { + /** + * Kubernetes Master IPv4 range, e.g. 10.0.0.0/24. + */ + k8sMasterIpv4Range: pulumi.Input; + /** + * Subnet name. + */ + name: pulumi.Input; + /** + * Secondary IPv4 range for pods. + */ + secondaryIpv4RangePods: pulumi.Input; + /** + * Secondary IPv4 range for services. + */ + secondaryIpv4RangeServices: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods { + /** + * Secondary IPv4 range name for pods. + */ + name: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices { + /** + * Secondary IPv4 range name for services. + */ + name: pulumi.Input; +} +export interface ClusterCustomerManagedResourcesGcpTieredStorageBucket { + /** + * GCP storage bucket name. + */ + name: pulumi.Input; +} +export interface ClusterGcpPrivateServiceConnect { + /** + * List of consumers that are allowed to connect to Redpanda GCP PSC (Private Service Connect) service attachment. + */ + consumerAcceptLists: pulumi.Input[]>; + /** + * Whether Redpanda GCP Private Service Connect is enabled. + */ + enabled: pulumi.Input; + /** + * Whether global access is enabled. + */ + globalAccessEnabled: pulumi.Input; + /** + * Current status of the Private Service Connect configuration. + */ + status?: pulumi.Input; +} +export interface ClusterGcpPrivateServiceConnectConsumerAcceptList { + /** + * Either the GCP project number or its alphanumeric ID. + */ + source: pulumi.Input; +} +export interface ClusterGcpPrivateServiceConnectStatus { + /** + * List of connected endpoints. + */ + connectedEndpoints?: pulumi.Input[]>; + /** + * When the Private Service Connect service was created. + */ + createdAt?: pulumi.Input; + /** + * When the Private Service Connect service was deleted. + */ + deletedAt?: pulumi.Input; + /** + * DNS A records for the service. + */ + dnsARecords?: pulumi.Input[]>; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort?: pulumi.Input; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort?: pulumi.Input; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort?: pulumi.Input; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort?: pulumi.Input; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort?: pulumi.Input; + /** + * Hostname for the seed brokers. + */ + seedHostname?: pulumi.Input; + /** + * The service attachment identifier. + */ + serviceAttachment?: pulumi.Input; +} +export interface ClusterGcpPrivateServiceConnectStatusConnectedEndpoint { + /** + * The connection ID. + */ + connectionId?: pulumi.Input; + /** + * The consumer network. + */ + consumerNetwork?: pulumi.Input; + /** + * The endpoint address. + */ + endpoint?: pulumi.Input; + /** + * Status of the endpoint connection. + */ + status?: pulumi.Input; +} +export interface ClusterHttpProxy { + /** + * All HTTP proxy endpoint variants. + */ + allUrls?: pulumi.Input; + /** + * mTLS configuration. + */ + mtls?: pulumi.Input; + /** + * SASL configuration. + */ + sasl?: pulumi.Input; + /** + * The HTTP Proxy URL. + */ + url?: pulumi.Input; +} +export interface ClusterHttpProxyAllUrls { + /** + * mTLS endpoint. + */ + mtls?: pulumi.Input; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls?: pulumi.Input; + /** + * Private link SASL endpoint. + */ + privateLinkSasl?: pulumi.Input; + /** + * SASL endpoint. + */ + sasl?: pulumi.Input; +} +export interface ClusterHttpProxyMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: pulumi.Input[]>; + /** + * Whether mTLS is enabled. + */ + enabled?: pulumi.Input; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: pulumi.Input[]>; +} +export interface ClusterHttpProxySasl { + /** + * Whether SASL is enabled. + */ + enabled?: pulumi.Input; +} +export interface ClusterKafkaApi { + /** + * All seed broker endpoint variants. + */ + allSeedBrokers?: pulumi.Input; + /** + * mTLS configuration. + */ + mtls?: pulumi.Input; + /** + * SASL configuration. + */ + sasl?: pulumi.Input; + /** + * List of Kafka broker addresses. + */ + seedBrokers?: pulumi.Input[]>; +} +export interface ClusterKafkaApiAllSeedBrokers { + /** + * mTLS endpoint. + */ + mtls?: pulumi.Input; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls?: pulumi.Input; + /** + * Private link SASL endpoint. + */ + privateLinkSasl?: pulumi.Input; + /** + * SASL endpoint. + */ + sasl?: pulumi.Input; +} +export interface ClusterKafkaApiMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: pulumi.Input[]>; + /** + * Whether mTLS is enabled. + */ + enabled?: pulumi.Input; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: pulumi.Input[]>; +} +export interface ClusterKafkaApiSasl { + /** + * Whether SASL is enabled. + */ + enabled?: pulumi.Input; +} +export interface ClusterKafkaConnect { + /** + * Whether Kafka Connect is enabled. + */ + enabled?: pulumi.Input; +} +export interface ClusterMaintenanceWindowConfig { + /** + * If true, maintenance can occur at any time. + */ + anytime?: pulumi.Input; + dayHour?: pulumi.Input; + /** + * If true, maintenance window is unspecified. + */ + unspecified?: pulumi.Input; +} +export interface ClusterMaintenanceWindowConfigDayHour { + /** + * Day of week. + */ + dayOfWeek?: pulumi.Input; + /** + * Hour of day. + */ + hourOfDay?: pulumi.Input; +} +export interface ClusterPrometheus { + /** + * The Prometheus metrics endpoint URL. + */ + url?: pulumi.Input; +} +export interface ClusterRedpandaConsole { + /** + * The Redpanda Console URL. + */ + url?: pulumi.Input; +} +export interface ClusterSchemaRegistry { + /** + * All schema registry endpoint variants. + */ + allUrls?: pulumi.Input; + /** + * mTLS configuration. + */ + mtls?: pulumi.Input; + /** + * The Schema Registry URL. + */ + url?: pulumi.Input; +} +export interface ClusterSchemaRegistryAllUrls { + /** + * mTLS endpoint. + */ + mtls?: pulumi.Input; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls?: pulumi.Input; + /** + * Private link SASL endpoint. + */ + privateLinkSasl?: pulumi.Input; + /** + * SASL endpoint. + */ + sasl?: pulumi.Input; +} +export interface ClusterSchemaRegistryMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: pulumi.Input[]>; + /** + * Whether mTLS is enabled. + */ + enabled?: pulumi.Input; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: pulumi.Input[]>; +} +export interface ClusterStateDescription { + /** + * Error code if cluster is in error state. + */ + code?: pulumi.Input; + /** + * Detailed error message if cluster is in error state. + */ + message?: pulumi.Input; +} +export interface ClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; +} +export interface GetClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + read?: string; +} +export interface GetClusterTimeoutsArgs { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + read?: pulumi.Input; +} +export interface NetworkCustomerManagedResources { + aws?: pulumi.Input; + gcp?: pulumi.Input; +} +export interface NetworkCustomerManagedResourcesAws { + dynamodbTable: pulumi.Input; + managementBucket: pulumi.Input; + privateSubnets: pulumi.Input; + vpc: pulumi.Input; +} +export interface NetworkCustomerManagedResourcesAwsDynamodbTable { + /** + * AWS DynamoDB table identifier + */ + arn: pulumi.Input; +} +export interface NetworkCustomerManagedResourcesAwsManagementBucket { + /** + * AWS storage bucket identifier + */ + arn: pulumi.Input; +} +export interface NetworkCustomerManagedResourcesAwsPrivateSubnets { + /** + * AWS private subnet identifiers + */ + arns: pulumi.Input[]>; +} +export interface NetworkCustomerManagedResourcesAwsVpc { + /** + * AWS VPC identifier + */ + arn: pulumi.Input; +} +export interface NetworkCustomerManagedResourcesGcp { + managementBucket: pulumi.Input; + /** + * Name of user-created network where the Redpanda cluster is deployed + */ + networkName: pulumi.Input; + /** + * GCP project ID where the network is created + */ + networkProjectId: pulumi.Input; +} +export interface NetworkCustomerManagedResourcesGcpManagementBucket { + /** + * GCP storage bucket name for storing the state of Redpanda cluster deployment + */ + name: pulumi.Input; +} +export interface NetworkTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; +} +export interface PipelineResources { + /** + * Amount of CPU to allocate for the pipeline. + */ + cpuShares?: pulumi.Input; + /** + * Amount of memory to allocate for the pipeline. + */ + memoryShares?: pulumi.Input; +} +export interface PipelineServiceAccount { + /** + * The client ID for the service account. + */ + clientId: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + clientSecret: pulumi.Input; + /** + * Version number for client_secret. Increment to trigger a secret update. + */ + secretVersion?: pulumi.Input; +} +export interface PipelineStatus { + /** + * Error message if the pipeline is in an error state. + */ + error?: pulumi.Input; +} +export interface PipelineTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; +} +export interface SchemaReference { + /** + * The name of the referenced schema. + */ + name: pulumi.Input; + /** + * The subject of the referenced schema. + */ + subject: pulumi.Input; + /** + * The version of the referenced schema. + */ + version: pulumi.Input; +} +export interface ServerlessClusterDataplaneApi { + /** + * Private Dataplane API URL + */ + privateUrl?: pulumi.Input; + /** + * Public Dataplane API URL + */ + url?: pulumi.Input; +} +export interface ServerlessClusterKafkaApi { + /** + * Private Kafka API seed brokers (bootstrap servers) + */ + privateSeedBrokers?: pulumi.Input[]>; + /** + * Public Kafka API seed brokers (bootstrap servers) + */ + seedBrokers?: pulumi.Input[]>; +} +export interface ServerlessClusterNetworkingConfig { + /** + * Private network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + private?: pulumi.Input; + /** + * Public network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + public?: pulumi.Input; +} +export interface ServerlessClusterPlannedDeletion { + /** + * Timestamp after which the cluster will be deleted. + */ + deleteAfter?: pulumi.Input; + /** + * Reason for the planned deletion. + */ + reason?: pulumi.Input; +} +export interface ServerlessClusterPrometheus { + /** + * Private Prometheus metrics URL + */ + privateUrl?: pulumi.Input; + /** + * Public Prometheus metrics URL + */ + url?: pulumi.Input; +} +export interface ServerlessClusterSchemaRegistry { + /** + * Private Schema Registry URL + */ + privateUrl?: pulumi.Input; + /** + * Public Schema Registry URL + */ + url?: pulumi.Input; +} +export interface ServerlessPrivateLinkCloudProviderConfig { + /** + * AWS-specific configuration. Required when cloud_provider is 'aws'. + */ + aws?: pulumi.Input; +} +export interface ServerlessPrivateLinkCloudProviderConfigAws { + /** + * AWS principals (ARNs) allowed to connect to the private link endpoint + */ + allowedPrincipals: pulumi.Input[]>; +} +export interface ServerlessPrivateLinkStatus { + /** + * AWS-specific status information + */ + aws?: pulumi.Input; +} +export interface ServerlessPrivateLinkStatusAws { + /** + * Availability zones where the private link endpoint service is available + */ + availabilityZones?: pulumi.Input[]>; + /** + * VPC endpoint service name for connecting to the private link + */ + vpcEndpointServiceName?: pulumi.Input; +} +export interface TopicReplicaAssignment { + /** + * A partition to create. + */ + partitionId: pulumi.Input; + /** + * The broker IDs the partition replicas are assigned to. + */ + replicaIds: pulumi.Input[]>; +} diff --git a/pulumi-redpanda/bin/types/input.js b/pulumi-redpanda/bin/types/input.js new file mode 100644 index 00000000..14e61b41 --- /dev/null +++ b/pulumi-redpanda/bin/types/input.js @@ -0,0 +1,5 @@ +"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 }); +//# sourceMappingURL=input.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/types/input.js.map b/pulumi-redpanda/bin/types/input.js.map new file mode 100644 index 00000000..eadbd87a --- /dev/null +++ b/pulumi-redpanda/bin/types/input.js.map @@ -0,0 +1 @@ +{"version":3,"file":"input.js","sourceRoot":"","sources":["../../types/input.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/types/output.d.ts b/pulumi-redpanda/bin/types/output.d.ts new file mode 100644 index 00000000..3eae5854 --- /dev/null +++ b/pulumi-redpanda/bin/types/output.d.ts @@ -0,0 +1,1832 @@ +import * as outputs from "../types/output"; +export interface ClusterAwsPrivateLink { + /** + * The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedPrincipals: string[]; + /** + * Whether Console is connected via PrivateLink. + */ + connectConsole: boolean; + /** + * Whether AWS PrivateLink is enabled. + */ + enabled: boolean; + /** + * Current status of the PrivateLink configuration. + */ + status: outputs.ClusterAwsPrivateLinkStatus; + /** + * Supported regions for AWS PrivateLink. + */ + supportedRegions: string[]; +} +export interface ClusterAwsPrivateLinkStatus { + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the PrivateLink service was created. + */ + createdAt: string; + /** + * When the PrivateLink service was deleted. + */ + deletedAt: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The PrivateLink service ID. + */ + serviceId: string; + /** + * The PrivateLink service name. + */ + serviceName: string; + /** + * Current state of the PrivateLink service. + */ + serviceState: string; + /** + * List of VPC endpoint connections. + */ + vpcEndpointConnections: outputs.ClusterAwsPrivateLinkStatusVpcEndpointConnection[]; +} +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnection { + /** + * The connection ID. + */ + connectionId: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * DNS entries for the endpoint. + */ + dnsEntries: outputs.ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry[]; + /** + * The endpoint connection ID. + */ + id: string; + /** + * ARNs of associated load balancers. + */ + loadBalancerArns: string[]; + /** + * Owner of the endpoint connection. + */ + owner: string; + /** + * State of the endpoint connection. + */ + state: string; +} +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry { + /** + * The DNS name. + */ + dnsName: string; + /** + * The hosted zone ID. + */ + hostedZoneId: string; +} +export interface ClusterAzurePrivateLink { + /** + * The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedSubscriptions: string[]; + /** + * Whether Console is connected in Redpanda Azure Private Link Service. + */ + connectConsole: boolean; + /** + * Whether Redpanda Azure Private Link Endpoint Service is enabled. + */ + enabled: boolean; + /** + * Current status of the Private Link configuration. + */ + status: outputs.ClusterAzurePrivateLinkStatus; +} +export interface ClusterAzurePrivateLinkStatus { + /** + * List of approved Azure subscription IDs. + */ + approvedSubscriptions: string[]; + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the Private Link service was created. + */ + createdAt: string; + /** + * When the Private Link service was deleted. + */ + deletedAt: string; + /** + * DNS A record for the service. + */ + dnsARecord: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * List of private endpoint connections. + */ + privateEndpointConnections: outputs.ClusterAzurePrivateLinkStatusPrivateEndpointConnection[]; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The Private Link service ID. + */ + serviceId: string; + /** + * The Private Link service name. + */ + serviceName: string; +} +export interface ClusterAzurePrivateLinkStatusPrivateEndpointConnection { + /** + * ID of the connection. + */ + connectionId: string; + /** + * Name of the connection. + */ + connectionName: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * ID of the private endpoint. + */ + privateEndpointId: string; + /** + * Name of the private endpoint. + */ + privateEndpointName: string; + /** + * Status of the endpoint connection. + */ + status: string; +} +export interface ClusterCloudStorage { + /** + * AWS cloud storage configuration. + */ + aws: outputs.ClusterCloudStorageAws; + /** + * Azure cloud storage configuration. + */ + azure: outputs.ClusterCloudStorageAzure; + /** + * GCP cloud storage configuration. + */ + gcp: outputs.ClusterCloudStorageGcp; + /** + * If true, cloud storage is not deleted when the cluster is destroyed. + */ + skipDestroy?: boolean; +} +export interface ClusterCloudStorageAws { + /** + * ARN of the AWS S3 bucket. + */ + arn: string; +} +export interface ClusterCloudStorageAzure { + /** + * Name of the Azure storage container. + */ + containerName: string; + /** + * Name of the Azure storage account. + */ + storageAccountName: string; +} +export interface ClusterCloudStorageGcp { + /** + * Name of the GCP storage bucket. + */ + name: string; +} +export interface ClusterClusterConfiguration { + /** + * Custom properties for the cluster in JSON format. + */ + customPropertiesJson?: string; +} +export interface ClusterCustomerManagedResources { + aws?: outputs.ClusterCustomerManagedResourcesAws; + gcp?: outputs.ClusterCustomerManagedResourcesGcp; +} +export interface ClusterCustomerManagedResourcesAws { + agentInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsAgentInstanceProfile; + cloudStorageBucket: outputs.ClusterCustomerManagedResourcesAwsCloudStorageBucket; + clusterSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsClusterSecurityGroup; + connectorsNodeGroupInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile; + connectorsSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup; + k8sClusterRole: outputs.ClusterCustomerManagedResourcesAwsK8sClusterRole; + nodeSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsNodeSecurityGroup; + permissionsBoundaryPolicy: outputs.ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy; + redpandaAgentSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup; + redpandaConnectNodeGroupInstanceProfile?: outputs.ClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile; + redpandaConnectSecurityGroup?: outputs.ClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup; + redpandaNodeGroupInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile; + redpandaNodeGroupSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup; + utilityNodeGroupInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile; + utilitySecurityGroup: outputs.ClusterCustomerManagedResourcesAwsUtilitySecurityGroup; +} +export interface ClusterCustomerManagedResourcesAwsAgentInstanceProfile { + /** + * ARN for the agent instance profile + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsCloudStorageBucket { + /** + * ARN for the cloud storage bucket + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsClusterSecurityGroup { + /** + * ARN for the cluster security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile { + /** + * ARN for the connectors node group instance profile + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup { + /** + * ARN for the connectors security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsK8sClusterRole { + /** + * ARN for the Kubernetes cluster role + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsNodeSecurityGroup { + /** + * ARN for the node security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy { + /** + * ARN for the permissions boundary policy + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup { + /** + * ARN for the redpanda agent security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile { + /** + * ARN for the Redpanda Connect node group instance profile + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup { + /** + * ARN for the Redpanda Connect security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile { + /** + * ARN for the redpanda node group instance profile + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup { + /** + * ARN for the redpanda node group security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile { + /** + * ARN for the utility node group instance profile + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesAwsUtilitySecurityGroup { + /** + * ARN for the utility security group + */ + arn: string; +} +export interface ClusterCustomerManagedResourcesGcp { + /** + * GCP service account for the agent. + */ + agentServiceAccount: outputs.ClusterCustomerManagedResourcesGcpAgentServiceAccount; + /** + * GCP service account for managed connectors. + */ + connectorServiceAccount: outputs.ClusterCustomerManagedResourcesGcpConnectorServiceAccount; + /** + * GCP service account for Redpanda Console. + */ + consoleServiceAccount: outputs.ClusterCustomerManagedResourcesGcpConsoleServiceAccount; + /** + * GCP service account for GCP Kubernetes Engine (GKE). + */ + gkeServiceAccount: outputs.ClusterCustomerManagedResourcesGcpGkeServiceAccount; + /** + * NAT subnet name if GCP Private Service Connect is enabled. + */ + pscNatSubnetName?: string; + /** + * GCP service account for the Redpanda cluster. + */ + redpandaClusterServiceAccount: outputs.ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount; + /** + * GCP subnet where Redpanda cluster is deployed. + */ + subnet: outputs.ClusterCustomerManagedResourcesGcpSubnet; + /** + * GCP storage bucket for Tiered storage. + */ + tieredStorageBucket: outputs.ClusterCustomerManagedResourcesGcpTieredStorageBucket; +} +export interface ClusterCustomerManagedResourcesGcpAgentServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface ClusterCustomerManagedResourcesGcpConnectorServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface ClusterCustomerManagedResourcesGcpConsoleServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface ClusterCustomerManagedResourcesGcpGkeServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface ClusterCustomerManagedResourcesGcpSubnet { + /** + * Kubernetes Master IPv4 range, e.g. 10.0.0.0/24. + */ + k8sMasterIpv4Range: string; + /** + * Subnet name. + */ + name: string; + /** + * Secondary IPv4 range for pods. + */ + secondaryIpv4RangePods: outputs.ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods; + /** + * Secondary IPv4 range for services. + */ + secondaryIpv4RangeServices: outputs.ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices; +} +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods { + /** + * Secondary IPv4 range name for pods. + */ + name: string; +} +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices { + /** + * Secondary IPv4 range name for services. + */ + name: string; +} +export interface ClusterCustomerManagedResourcesGcpTieredStorageBucket { + /** + * GCP storage bucket name. + */ + name: string; +} +export interface ClusterGcpPrivateServiceConnect { + /** + * List of consumers that are allowed to connect to Redpanda GCP PSC (Private Service Connect) service attachment. + */ + consumerAcceptLists: outputs.ClusterGcpPrivateServiceConnectConsumerAcceptList[]; + /** + * Whether Redpanda GCP Private Service Connect is enabled. + */ + enabled: boolean; + /** + * Whether global access is enabled. + */ + globalAccessEnabled: boolean; + /** + * Current status of the Private Service Connect configuration. + */ + status: outputs.ClusterGcpPrivateServiceConnectStatus; +} +export interface ClusterGcpPrivateServiceConnectConsumerAcceptList { + /** + * Either the GCP project number or its alphanumeric ID. + */ + source: string; +} +export interface ClusterGcpPrivateServiceConnectStatus { + /** + * List of connected endpoints. + */ + connectedEndpoints: outputs.ClusterGcpPrivateServiceConnectStatusConnectedEndpoint[]; + /** + * When the Private Service Connect service was created. + */ + createdAt: string; + /** + * When the Private Service Connect service was deleted. + */ + deletedAt: string; + /** + * DNS A records for the service. + */ + dnsARecords: string[]; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * Hostname for the seed brokers. + */ + seedHostname: string; + /** + * The service attachment identifier. + */ + serviceAttachment: string; +} +export interface ClusterGcpPrivateServiceConnectStatusConnectedEndpoint { + /** + * The connection ID. + */ + connectionId: string; + /** + * The consumer network. + */ + consumerNetwork: string; + /** + * The endpoint address. + */ + endpoint: string; + /** + * Status of the endpoint connection. + */ + status: string; +} +export interface ClusterHttpProxy { + /** + * All HTTP proxy endpoint variants. + */ + allUrls: outputs.ClusterHttpProxyAllUrls; + /** + * mTLS configuration. + */ + mtls: outputs.ClusterHttpProxyMtls; + /** + * SASL configuration. + */ + sasl: outputs.ClusterHttpProxySasl; + /** + * The HTTP Proxy URL. + */ + url: string; +} +export interface ClusterHttpProxyAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} +export interface ClusterHttpProxyMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: string[]; +} +export interface ClusterHttpProxySasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} +export interface ClusterKafkaApi { + /** + * All seed broker endpoint variants. + */ + allSeedBrokers: outputs.ClusterKafkaApiAllSeedBrokers; + /** + * mTLS configuration. + */ + mtls: outputs.ClusterKafkaApiMtls; + /** + * SASL configuration. + */ + sasl: outputs.ClusterKafkaApiSasl; + /** + * List of Kafka broker addresses. + */ + seedBrokers: string[]; +} +export interface ClusterKafkaApiAllSeedBrokers { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} +export interface ClusterKafkaApiMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: string[]; +} +export interface ClusterKafkaApiSasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} +export interface ClusterKafkaConnect { + /** + * Whether Kafka Connect is enabled. + */ + enabled: boolean; +} +export interface ClusterMaintenanceWindowConfig { + /** + * If true, maintenance can occur at any time. + */ + anytime?: boolean; + dayHour?: outputs.ClusterMaintenanceWindowConfigDayHour; + /** + * If true, maintenance window is unspecified. + */ + unspecified: boolean; +} +export interface ClusterMaintenanceWindowConfigDayHour { + /** + * Day of week. + */ + dayOfWeek?: string; + /** + * Hour of day. + */ + hourOfDay?: number; +} +export interface ClusterPrometheus { + /** + * The Prometheus metrics endpoint URL. + */ + url: string; +} +export interface ClusterRedpandaConsole { + /** + * The Redpanda Console URL. + */ + url: string; +} +export interface ClusterSchemaRegistry { + /** + * All schema registry endpoint variants. + */ + allUrls: outputs.ClusterSchemaRegistryAllUrls; + /** + * mTLS configuration. + */ + mtls?: outputs.ClusterSchemaRegistryMtls; + /** + * The Schema Registry URL. + */ + url: string; +} +export interface ClusterSchemaRegistryAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} +export interface ClusterSchemaRegistryMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: string[]; +} +export interface ClusterStateDescription { + /** + * Error code if cluster is in error state. + */ + code: number; + /** + * Detailed error message if cluster is in error state. + */ + message: string; +} +export interface ClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; +} +export interface GetClusterAwsPrivateLink { + /** + * The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. + */ + allowedPrincipals: string[]; + /** + * Whether Console is connected via PrivateLink. + */ + connectConsole: boolean; + /** + * Whether AWS PrivateLink is enabled. + */ + enabled: boolean; + /** + * Current status of the PrivateLink configuration. + */ + status: outputs.GetClusterAwsPrivateLinkStatus; + /** + * Supported regions for AWS PrivateLink. + */ + supportedRegions: string[]; +} +export interface GetClusterAwsPrivateLinkStatus { + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the PrivateLink service was created. + */ + createdAt: string; + /** + * When the PrivateLink service was deleted. + */ + deletedAt: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The PrivateLink service ID. + */ + serviceId: string; + /** + * The PrivateLink service name. + */ + serviceName: string; + /** + * Current state of the PrivateLink service. + */ + serviceState: string; + /** + * List of VPC endpoint connections. + */ + vpcEndpointConnections: outputs.GetClusterAwsPrivateLinkStatusVpcEndpointConnection[]; +} +export interface GetClusterAwsPrivateLinkStatusVpcEndpointConnection { + /** + * The connection ID. + */ + connectionId: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * DNS entries for the endpoint. + */ + dnsEntries: outputs.GetClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry[]; + /** + * The endpoint connection ID. + */ + id: string; + /** + * ARNs of associated load balancers. + */ + loadBalancerArns: string[]; + /** + * Owner of the endpoint connection. + */ + owner: string; + /** + * State of the endpoint connection. + */ + state: string; +} +export interface GetClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry { + /** + * The DNS name. + */ + dnsName: string; + /** + * The hosted zone ID. + */ + hostedZoneId: string; +} +export interface GetClusterAzurePrivateLink { + /** + * The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. + */ + allowedSubscriptions: string[]; + /** + * Whether Console is connected in Redpanda Azure Private Link Service. + */ + connectConsole: boolean; + /** + * Whether Redpanda Azure Private Link Endpoint Service is enabled. + */ + enabled: boolean; + /** + * Current status of the Private Link configuration. + */ + status: outputs.GetClusterAzurePrivateLinkStatus; +} +export interface GetClusterAzurePrivateLinkStatus { + /** + * List of approved Azure subscription IDs. + */ + approvedSubscriptions: string[]; + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the Private Link service was created. + */ + createdAt: string; + /** + * When the Private Link service was deleted. + */ + deletedAt: string; + /** + * DNS A record for the service. + */ + dnsARecord: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * List of private endpoint connections. + */ + privateEndpointConnections: outputs.GetClusterAzurePrivateLinkStatusPrivateEndpointConnection[]; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The Private Link service ID. + */ + serviceId: string; + /** + * The Private Link service name. + */ + serviceName: string; +} +export interface GetClusterAzurePrivateLinkStatusPrivateEndpointConnection { + /** + * ID of the connection. + */ + connectionId: string; + /** + * Name of the connection. + */ + connectionName: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * ID of the private endpoint. + */ + privateEndpointId: string; + /** + * Name of the private endpoint. + */ + privateEndpointName: string; + /** + * Status of the endpoint connection. + */ + status: string; +} +export interface GetClusterClusterConfiguration { + /** + * Custom properties for the cluster in JSON format. + */ + customPropertiesJson: string; +} +export interface GetClusterCustomerManagedResources { + aws: outputs.GetClusterCustomerManagedResourcesAws; + gcp: outputs.GetClusterCustomerManagedResourcesGcp; +} +export interface GetClusterCustomerManagedResourcesAws { + agentInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsAgentInstanceProfile; + cloudStorageBucket: outputs.GetClusterCustomerManagedResourcesAwsCloudStorageBucket; + clusterSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsClusterSecurityGroup; + connectorsNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile; + connectorsSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsConnectorsSecurityGroup; + k8sClusterRole: outputs.GetClusterCustomerManagedResourcesAwsK8sClusterRole; + nodeSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsNodeSecurityGroup; + permissionsBoundaryPolicy: outputs.GetClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy; + redpandaAgentSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup; + redpandaConnectNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile; + redpandaConnectSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup; + redpandaNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile; + redpandaNodeGroupSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup; + utilityNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile; + utilitySecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsUtilitySecurityGroup; +} +export interface GetClusterCustomerManagedResourcesAwsAgentInstanceProfile { + /** + * ARN for the agent instance profile + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsCloudStorageBucket { + /** + * ARN for the cloud storage bucket + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsClusterSecurityGroup { + /** + * ARN for the cluster security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile { + /** + * ARN for the connectors node group instance profile + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsConnectorsSecurityGroup { + /** + * ARN for the connectors security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsK8sClusterRole { + /** + * ARN for the Kubernetes cluster role + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsNodeSecurityGroup { + /** + * ARN for the node security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy { + /** + * ARN for the permissions boundary policy + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup { + /** + * ARN for the redpanda agent security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile { + /** + * ARN for the Redpanda Connect node group instance profile + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup { + /** + * ARN for the Redpanda Connect security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile { + /** + * ARN for the redpanda node group instance profile + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup { + /** + * ARN for the redpanda node group security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile { + /** + * ARN for the utility node group instance profile + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesAwsUtilitySecurityGroup { + /** + * ARN for the utility security group + */ + arn: string; +} +export interface GetClusterCustomerManagedResourcesGcp { + /** + * GCP service account for the agent. + */ + agentServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpAgentServiceAccount; + /** + * GCP service account for managed connectors. + */ + connectorServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpConnectorServiceAccount; + /** + * GCP service account for Redpanda Console. + */ + consoleServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpConsoleServiceAccount; + /** + * GCP service account for GCP Kubernetes Engine (GKE). + */ + gkeServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpGkeServiceAccount; + /** + * NAT subnet name if GCP Private Service Connect is enabled. + */ + pscNatSubnetName: string; + /** + * GCP service account for the Redpanda cluster. + */ + redpandaClusterServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount; + /** + * GCP subnet where Redpanda cluster is deployed. + */ + subnet: outputs.GetClusterCustomerManagedResourcesGcpSubnet; + /** + * GCP storage bucket for Tiered storage. + */ + tieredStorageBucket: outputs.GetClusterCustomerManagedResourcesGcpTieredStorageBucket; +} +export interface GetClusterCustomerManagedResourcesGcpAgentServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface GetClusterCustomerManagedResourcesGcpConnectorServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface GetClusterCustomerManagedResourcesGcpConsoleServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface GetClusterCustomerManagedResourcesGcpGkeServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface GetClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount { + /** + * GCP service account email. + */ + email: string; +} +export interface GetClusterCustomerManagedResourcesGcpSubnet { + /** + * Kubernetes Master IPv4 range, e.g. 10.0.0.0/24. + */ + k8sMasterIpv4Range: string; + /** + * Subnet name. + */ + name: string; + /** + * Secondary IPv4 range for pods. + */ + secondaryIpv4RangePods: outputs.GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods; + /** + * Secondary IPv4 range for services. + */ + secondaryIpv4RangeServices: outputs.GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices; +} +export interface GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods { + /** + * Secondary IPv4 range name for pods. + */ + name: string; +} +export interface GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices { + /** + * Secondary IPv4 range name for services. + */ + name: string; +} +export interface GetClusterCustomerManagedResourcesGcpTieredStorageBucket { + /** + * GCP storage bucket name. + */ + name: string; +} +export interface GetClusterGcpPrivateServiceConnect { + /** + * List of consumers that are allowed to connect to Redpanda GCP PSC service attachment. + */ + consumerAcceptLists: outputs.GetClusterGcpPrivateServiceConnectConsumerAcceptList[]; + /** + * Whether Redpanda GCP Private Service Connect is enabled. + */ + enabled: boolean; + /** + * Whether global access is enabled. + */ + globalAccessEnabled: boolean; + /** + * Current status of the Private Service Connect configuration. + */ + status: outputs.GetClusterGcpPrivateServiceConnectStatus; +} +export interface GetClusterGcpPrivateServiceConnectConsumerAcceptList { + /** + * Either the GCP project number or its alphanumeric ID. + */ + source: string; +} +export interface GetClusterGcpPrivateServiceConnectStatus { + /** + * List of connected endpoints. + */ + connectedEndpoints: outputs.GetClusterGcpPrivateServiceConnectStatusConnectedEndpoint[]; + /** + * When the Private Service Connect service was created. + */ + createdAt: string; + /** + * When the Private Service Connect service was deleted. + */ + deletedAt: string; + /** + * DNS A records for the service. + */ + dnsARecords: string[]; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * Hostname for the seed brokers. + */ + seedHostname: string; + /** + * The service attachment identifier. + */ + serviceAttachment: string; +} +export interface GetClusterGcpPrivateServiceConnectStatusConnectedEndpoint { + /** + * The connection ID. + */ + connectionId: string; + /** + * The consumer network. + */ + consumerNetwork: string; + /** + * The endpoint address. + */ + endpoint: string; + /** + * Status of the endpoint connection. + */ + status: string; +} +export interface GetClusterHttpProxy { + /** + * All HTTP proxy endpoint variants. + */ + allUrls: outputs.GetClusterHttpProxyAllUrls; + /** + * mTLS configuration. + */ + mtls: outputs.GetClusterHttpProxyMtls; + /** + * SASL configuration. + */ + sasl: outputs.GetClusterHttpProxySasl; + /** + * The HTTP Proxy URL. + */ + url: string; +} +export interface GetClusterHttpProxyAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} +export interface GetClusterHttpProxyMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. + */ + principalMappingRules: string[]; +} +export interface GetClusterHttpProxySasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} +export interface GetClusterKafkaApi { + /** + * All seed broker endpoint variants. + */ + allSeedBrokers: outputs.GetClusterKafkaApiAllSeedBrokers; + /** + * mTLS configuration. + */ + mtls: outputs.GetClusterKafkaApiMtls; + /** + * SASL configuration. + */ + sasl: outputs.GetClusterKafkaApiSasl; + /** + * List of Kafka broker addresses. + */ + seedBrokers: string[]; +} +export interface GetClusterKafkaApiAllSeedBrokers { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} +export interface GetClusterKafkaApiMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. + */ + principalMappingRules: string[]; +} +export interface GetClusterKafkaApiSasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} +export interface GetClusterKafkaConnect { + /** + * Whether Kafka Connect is enabled. + */ + enabled: boolean; +} +export interface GetClusterMaintenanceWindowConfig { + /** + * If true, maintenance can occur at any time. + */ + anytime: boolean; + dayHour: outputs.GetClusterMaintenanceWindowConfigDayHour; + /** + * If true, maintenance window is unspecified. + */ + unspecified: boolean; +} +export interface GetClusterMaintenanceWindowConfigDayHour { + /** + * Day of week. + */ + dayOfWeek: string; + /** + * Hour of day. + */ + hourOfDay: number; +} +export interface GetClusterPrometheus { + /** + * The Prometheus metrics endpoint URL. + */ + url: string; +} +export interface GetClusterRedpandaConsole { + /** + * The Redpanda Console URL. + */ + url: string; +} +export interface GetClusterSchemaRegistry { + /** + * All schema registry endpoint variants. + */ + allUrls: outputs.GetClusterSchemaRegistryAllUrls; + /** + * mTLS configuration. + */ + mtls: outputs.GetClusterSchemaRegistryMtls; + /** + * The Schema Registry URL. + */ + url: string; +} +export interface GetClusterSchemaRegistryAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} +export interface GetClusterSchemaRegistryMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. + */ + principalMappingRules: string[]; +} +export interface GetClusterStateDescription { + /** + * Error code if cluster is in error state. + */ + code: number; + /** + * Detailed error message if cluster is in error state. + */ + message: string; +} +export interface GetClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + read?: string; +} +export interface GetNetworkCustomerManagedResources { + aws: outputs.GetNetworkCustomerManagedResourcesAws; + gcp: outputs.GetNetworkCustomerManagedResourcesGcp; +} +export interface GetNetworkCustomerManagedResourcesAws { + dynamodbTable: outputs.GetNetworkCustomerManagedResourcesAwsDynamodbTable; + managementBucket: outputs.GetNetworkCustomerManagedResourcesAwsManagementBucket; + privateSubnets: outputs.GetNetworkCustomerManagedResourcesAwsPrivateSubnets; + vpc: outputs.GetNetworkCustomerManagedResourcesAwsVpc; +} +export interface GetNetworkCustomerManagedResourcesAwsDynamodbTable { + /** + * AWS DynamoDB table identifier + */ + arn: string; +} +export interface GetNetworkCustomerManagedResourcesAwsManagementBucket { + /** + * AWS storage bucket identifier + */ + arn: string; +} +export interface GetNetworkCustomerManagedResourcesAwsPrivateSubnets { + /** + * AWS private subnet identifiers + */ + arns: string[]; +} +export interface GetNetworkCustomerManagedResourcesAwsVpc { + /** + * AWS VPC identifier + */ + arn: string; +} +export interface GetNetworkCustomerManagedResourcesGcp { + managementBucket: outputs.GetNetworkCustomerManagedResourcesGcpManagementBucket; + /** + * Name of user-created network where the Redpanda cluster is deployed + */ + networkName: string; + /** + * GCP project ID where the network is created + */ + networkProjectId: string; +} +export interface GetNetworkCustomerManagedResourcesGcpManagementBucket { + /** + * GCP storage bucket name for storing the state of Redpanda cluster deployment + */ + name: string; +} +export interface GetRegionsRegion { + /** + * Name of the region + */ + name: string; + /** + * Zones available in the region + */ + zones: string[]; +} +export interface GetSchemaReference { + /** + * The name of the referenced schema. + */ + name: string; + /** + * The subject of the referenced schema. + */ + subject: string; + /** + * The version of the referenced schema. + */ + version: number; +} +export interface GetServerlessRegionsServerlessRegion { + /** + * Cloud provider where the serverless regions exist + */ + cloudProvider: string; + /** + * Name of the serverless region + */ + name: string; + placement: outputs.GetServerlessRegionsServerlessRegionPlacement; + /** + * Time zone of the serverless region + */ + timeZone: string; +} +export interface GetServerlessRegionsServerlessRegionPlacement { + /** + * Region available + */ + enabled: boolean; +} +export interface GetThroughputTiersThroughputTier { + /** + * Cloud provider where the Throughput Tier is available + */ + cloudProvider: string; + /** + * Display name of the Throughput Tier + */ + displayName: string; + /** + * Unique name of the Throughput Tier + */ + name: string; +} +export interface NetworkCustomerManagedResources { + aws?: outputs.NetworkCustomerManagedResourcesAws; + gcp?: outputs.NetworkCustomerManagedResourcesGcp; +} +export interface NetworkCustomerManagedResourcesAws { + dynamodbTable: outputs.NetworkCustomerManagedResourcesAwsDynamodbTable; + managementBucket: outputs.NetworkCustomerManagedResourcesAwsManagementBucket; + privateSubnets: outputs.NetworkCustomerManagedResourcesAwsPrivateSubnets; + vpc: outputs.NetworkCustomerManagedResourcesAwsVpc; +} +export interface NetworkCustomerManagedResourcesAwsDynamodbTable { + /** + * AWS DynamoDB table identifier + */ + arn: string; +} +export interface NetworkCustomerManagedResourcesAwsManagementBucket { + /** + * AWS storage bucket identifier + */ + arn: string; +} +export interface NetworkCustomerManagedResourcesAwsPrivateSubnets { + /** + * AWS private subnet identifiers + */ + arns: string[]; +} +export interface NetworkCustomerManagedResourcesAwsVpc { + /** + * AWS VPC identifier + */ + arn: string; +} +export interface NetworkCustomerManagedResourcesGcp { + managementBucket: outputs.NetworkCustomerManagedResourcesGcpManagementBucket; + /** + * Name of user-created network where the Redpanda cluster is deployed + */ + networkName: string; + /** + * GCP project ID where the network is created + */ + networkProjectId: string; +} +export interface NetworkCustomerManagedResourcesGcpManagementBucket { + /** + * GCP storage bucket name for storing the state of Redpanda cluster deployment + */ + name: string; +} +export interface NetworkTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; +} +export interface PipelineResources { + /** + * Amount of CPU to allocate for the pipeline. + */ + cpuShares?: string; + /** + * Amount of memory to allocate for the pipeline. + */ + memoryShares?: string; +} +export interface PipelineServiceAccount { + /** + * The client ID for the service account. + */ + clientId: string; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + clientSecret: string; + /** + * Version number for client_secret. Increment to trigger a secret update. + */ + secretVersion?: number; +} +export interface PipelineStatus { + /** + * Error message if the pipeline is in an error state. + */ + error: string; +} +export interface PipelineTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; +} +export interface SchemaReference { + /** + * The name of the referenced schema. + */ + name: string; + /** + * The subject of the referenced schema. + */ + subject: string; + /** + * The version of the referenced schema. + */ + version: number; +} +export interface ServerlessClusterDataplaneApi { + /** + * Private Dataplane API URL + */ + privateUrl: string; + /** + * Public Dataplane API URL + */ + url: string; +} +export interface ServerlessClusterKafkaApi { + /** + * Private Kafka API seed brokers (bootstrap servers) + */ + privateSeedBrokers: string[]; + /** + * Public Kafka API seed brokers (bootstrap servers) + */ + seedBrokers: string[]; +} +export interface ServerlessClusterNetworkingConfig { + /** + * Private network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + private: string; + /** + * Public network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + public: string; +} +export interface ServerlessClusterPlannedDeletion { + /** + * Timestamp after which the cluster will be deleted. + */ + deleteAfter: string; + /** + * Reason for the planned deletion. + */ + reason: string; +} +export interface ServerlessClusterPrometheus { + /** + * Private Prometheus metrics URL + */ + privateUrl: string; + /** + * Public Prometheus metrics URL + */ + url: string; +} +export interface ServerlessClusterSchemaRegistry { + /** + * Private Schema Registry URL + */ + privateUrl: string; + /** + * Public Schema Registry URL + */ + url: string; +} +export interface ServerlessPrivateLinkCloudProviderConfig { + /** + * AWS-specific configuration. Required when cloud_provider is 'aws'. + */ + aws?: outputs.ServerlessPrivateLinkCloudProviderConfigAws; +} +export interface ServerlessPrivateLinkCloudProviderConfigAws { + /** + * AWS principals (ARNs) allowed to connect to the private link endpoint + */ + allowedPrincipals: string[]; +} +export interface ServerlessPrivateLinkStatus { + /** + * AWS-specific status information + */ + aws: outputs.ServerlessPrivateLinkStatusAws; +} +export interface ServerlessPrivateLinkStatusAws { + /** + * Availability zones where the private link endpoint service is available + */ + availabilityZones: string[]; + /** + * VPC endpoint service name for connecting to the private link + */ + vpcEndpointServiceName: string; +} +export interface TopicReplicaAssignment { + /** + * A partition to create. + */ + partitionId: number; + /** + * The broker IDs the partition replicas are assigned to. + */ + replicaIds: number[]; +} diff --git a/pulumi-redpanda/bin/types/output.js b/pulumi-redpanda/bin/types/output.js new file mode 100644 index 00000000..7144aa49 --- /dev/null +++ b/pulumi-redpanda/bin/types/output.js @@ -0,0 +1,5 @@ +"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 }); +//# sourceMappingURL=output.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/types/output.js.map b/pulumi-redpanda/bin/types/output.js.map new file mode 100644 index 00000000..37ae3029 --- /dev/null +++ b/pulumi-redpanda/bin/types/output.js.map @@ -0,0 +1 @@ +{"version":3,"file":"output.js","sourceRoot":"","sources":["../../types/output.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/user.d.ts b/pulumi-redpanda/bin/user.d.ts new file mode 100644 index 00000000..2aca8af1 --- /dev/null +++ b/pulumi-redpanda/bin/user.d.ts @@ -0,0 +1,126 @@ +import * as pulumi from "@pulumi/pulumi"; +export declare class User extends pulumi.CustomResource { + /** + * Get an existing User 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: string, id: pulumi.Input, state?: UserState, opts?: pulumi.CustomResourceOptions): User; + /** + * Returns true if the given object is an instance of User. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + static isInstance(obj: any): obj is User; + /** + * Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + readonly clusterApiUrl: pulumi.Output; + /** + * Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information + */ + readonly mechanism: pulumi.Output; + /** + * Name of the user, must be unique + */ + readonly name: pulumi.Output; + /** + * Password of the user. Deprecated: use password_wo instead to avoid storing password in state. + * + * @deprecated Deprecated + */ + readonly password: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + readonly passwordWoVersion: pulumi.Output; + /** + * Create a User resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: UserArgs, opts?: pulumi.CustomResourceOptions); +} +/** + * Input properties used for looking up and filtering User resources. + */ +export interface UserState { + /** + * Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information + */ + mechanism?: pulumi.Input; + /** + * Name of the user, must be unique + */ + name?: pulumi.Input; + /** + * Password of the user. Deprecated: use password_wo instead to avoid storing password in state. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; +} +/** + * The set of arguments for constructing a User resource. + */ +export interface UserArgs { + /** + * Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information + */ + mechanism?: pulumi.Input; + /** + * Name of the user, must be unique + */ + name?: pulumi.Input; + /** + * Password of the user. Deprecated: use password_wo instead to avoid storing password in state. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; +} diff --git a/pulumi-redpanda/bin/user.js b/pulumi-redpanda/bin/user.js new file mode 100644 index 00000000..6b2a9bda --- /dev/null +++ b/pulumi-redpanda/bin/user.js @@ -0,0 +1,66 @@ +"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.User = void 0; +const pulumi = require("@pulumi/pulumi"); +const utilities = require("./utilities"); +class User extends pulumi.CustomResource { + /** + * Get an existing User 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 User(name, state, { ...opts, id: id }); + } + /** + * Returns true if the given object is an instance of User. 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'] === User.__pulumiType; + } + constructor(name, argsOrState, opts) { + let resourceInputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["mechanism"] = state?.mechanism; + resourceInputs["name"] = state?.name; + resourceInputs["password"] = state?.password; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + } + else { + const args = argsOrState; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["mechanism"] = args?.mechanism; + resourceInputs["name"] = args?.name; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password", "passwordWo"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(User.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} +exports.User = User; +/** @internal */ +User.__pulumiType = 'redpanda:index/user:User'; +//# sourceMappingURL=user.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/user.js.map b/pulumi-redpanda/bin/user.js.map new file mode 100644 index 00000000..346c956a --- /dev/null +++ b/pulumi-redpanda/bin/user.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.js","sourceRoot":"","sources":["../user.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/bin/utilities.d.ts b/pulumi-redpanda/bin/utilities.d.ts new file mode 100644 index 00000000..5e4f35e4 --- /dev/null +++ b/pulumi-redpanda/bin/utilities.d.ts @@ -0,0 +1,5 @@ +export declare function getEnv(...vars: string[]): string | undefined; +export declare function getEnvBoolean(...vars: string[]): boolean | undefined; +export declare function getEnvNumber(...vars: string[]): number | undefined; +export declare function getVersion(): string; +export declare function getPackage(): Promise; diff --git a/pulumi-redpanda/bin/utilities.js b/pulumi-redpanda/bin/utilities.js new file mode 100644 index 00000000..d280cacb --- /dev/null +++ b/pulumi-redpanda/bin/utilities.js @@ -0,0 +1,129 @@ +"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.getPackage = exports.callAsync = exports.lazyLoad = exports.resourceOptsDefaults = exports.getVersion = exports.getEnvNumber = exports.getEnvBoolean = exports.getEnv = void 0; +const resproto = require("@pulumi/pulumi/proto/resource_pb"); +const mutex = require("async-mutex"); +const runtime = require("@pulumi/pulumi/runtime"); +function getEnv(...vars) { + for (const v of vars) { + const value = process.env[v]; + if (value) { + return value; + } + } + return undefined; +} +exports.getEnv = getEnv; +function getEnvBoolean(...vars) { + const s = getEnv(...vars); + if (s !== undefined) { + // NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what + // Terraform uses internally when parsing boolean values. + if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) { + return true; + } + if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) { + return false; + } + } + return undefined; +} +exports.getEnvBoolean = getEnvBoolean; +function getEnvNumber(...vars) { + const s = getEnv(...vars); + if (s !== undefined) { + const f = parseFloat(s); + if (!isNaN(f)) { + return f; + } + } + return undefined; +} +exports.getEnvNumber = getEnvNumber; +function getVersion() { + let version = require('./package.json').version; + // Node allows for the version to be prefixed by a "v", while semver doesn't. + // If there is a v, strip it off. + if (version.indexOf('v') === 0) { + version = version.slice(1); + } + return version; +} +exports.getVersion = getVersion; +/** @internal */ +function resourceOptsDefaults() { + return { version: getVersion() }; +} +exports.resourceOptsDefaults = resourceOptsDefaults; +/** @internal */ +function lazyLoad(exports, props, loadModule) { + for (let property of props) { + Object.defineProperty(exports, property, { + enumerable: true, + get: function () { + return loadModule()[property]; + }, + }); + } +} +exports.lazyLoad = lazyLoad; +/** @internal */ +async function callAsync(tok, props, res, opts) { + const o = runtime.call(tok, props, res); + const value = await o.promise(true /*withUnknowns*/); + const isKnown = await o.isKnown; + const isSecret = await o.isSecret; + const problem = !isKnown ? "an unknown value" + : isSecret ? "a secret value" + : undefined; + // Ingoring o.resources silently. They are typically non-empty, r.f() calls include r as a dependency. + if (problem) { + throw new Error(`Plain resource method "${tok}" incorrectly returned ${problem}. ` + + "This is an error in the provider, please report this to the provider developer."); + } + // Extract a single property if requested. + if (opts && opts.property) { + return value[opts.property]; + } + return value; +} +exports.callAsync = callAsync; +const _packageLock = new mutex.Mutex(); +var _packageRef = undefined; +async function getPackage() { + if (_packageRef === undefined) { + if (!runtime.supportsParameterization()) { + throw new Error("The Pulumi CLI does not support parameterization. Please update the Pulumi CLI"); + } + await _packageLock.acquire(); + if (_packageRef === undefined) { + const monitor = runtime.getMonitor(); + const params = new resproto.Parameterization(); + params.setName("redpanda"); + params.setVersion("1.7.3"); + params.setValue(Uint8Array.from(atob("eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL3JlZHBhbmRhLWRhdGEvcmVkcGFuZGEiLCJ2ZXJzaW9uIjoiMS43LjMifX0="), c => c.charCodeAt(0))); + const req = new resproto.RegisterPackageRequest(); + req.setName("terraform-provider"); + req.setVersion("1.1.0"); + req.setDownloadUrl(""); + req.setParameterization(params); + const resp = await new Promise((resolve, reject) => { + monitor.registerPackage(req, (err, resp) => { + if (err) { + reject(err); + } + else { + resolve(resp); + } + }); + }); + _packageRef = resp.getRef(); + } + _packageLock.release(); + } + return _packageRef; +} +exports.getPackage = getPackage; +//# sourceMappingURL=utilities.js.map \ No newline at end of file diff --git a/pulumi-redpanda/bin/utilities.js.map b/pulumi-redpanda/bin/utilities.js.map new file mode 100644 index 00000000..6598b10e --- /dev/null +++ b/pulumi-redpanda/bin/utilities.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../utilities.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pulumi-redpanda/cluster.ts b/pulumi-redpanda/cluster.ts new file mode 100644 index 00000000..e3aadb4f --- /dev/null +++ b/pulumi-redpanda/cluster.ts @@ -0,0 +1,566 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class Cluster extends pulumi.CustomResource { + /** + * Get an existing Cluster 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. + */ + public static get(name: string, id: pulumi.Input, state?: ClusterState, opts?: pulumi.CustomResourceOptions): Cluster { + return new Cluster(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/cluster:Cluster'; + + /** + * Returns true if the given object is an instance of Cluster. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Cluster { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Cluster.__pulumiType; + } + + /** + * Allows deletion of the cluster. Defaults to false. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * API gateway access mode. Can be NETWORK_ACCESS_MODE_PRIVATE or NETWORK_ACCESS_MODE_PUBLIC. + */ + declare public readonly apiGatewayAccess: pulumi.Output; + /** + * AWS PrivateLink configuration. + */ + declare public readonly awsPrivateLink: pulumi.Output; + /** + * Azure Private Link configuration. + */ + declare public readonly azurePrivateLink: pulumi.Output; + /** + * Cloud provider where resources are created. + */ + declare public readonly cloudProvider: pulumi.Output; + /** + * Cloud storage configuration for tiered storage. + */ + declare public readonly cloudStorage: pulumi.Output; + /** + * The URL of the cluster API. + */ + declare public /*out*/ readonly clusterApiUrl: pulumi.Output; + /** + * Configuration for the cluster. + */ + declare public readonly clusterConfiguration: pulumi.Output; + /** + * Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated. + */ + declare public readonly clusterType: pulumi.Output; + /** + * Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice. + */ + declare public readonly connectionType: pulumi.Output; + /** + * Timestamp when the cluster was created. + */ + declare public /*out*/ readonly createdAt: pulumi.Output; + /** + * The actual running Redpanda version of the cluster. + */ + declare public /*out*/ readonly currentRedpandaVersion: pulumi.Output; + /** + * Customer managed resources configuration for the cluster. + */ + declare public readonly customerManagedResources: pulumi.Output; + /** + * The target Redpanda version during an upgrade. + */ + declare public /*out*/ readonly desiredRedpandaVersion: pulumi.Output; + /** + * If true, GCP global access is enabled. + */ + declare public readonly gcpGlobalAccessEnabled: pulumi.Output; + /** + * GCP Private Service Connect configuration. + */ + declare public readonly gcpPrivateServiceConnect: pulumi.Output; + /** + * HTTP Proxy properties. + */ + declare public readonly httpProxy: pulumi.Output; + /** + * Cluster's Kafka API properties. + */ + declare public readonly kafkaApi: pulumi.Output; + /** + * Kafka Connect configuration. + */ + declare public readonly kafkaConnect: pulumi.Output; + /** + * Maintenance window configuration for the cluster. + */ + declare public readonly maintenanceWindowConfig: pulumi.Output; + /** + * Unique name of the cluster. + */ + declare public readonly name: pulumi.Output; + /** + * NAT gateway IP addresses for the cluster. + */ + declare public /*out*/ readonly natGateways: pulumi.Output; + /** + * Network ID where cluster is placed. + */ + declare public readonly networkId: pulumi.Output; + /** + * Prometheus metrics endpoint properties. + */ + declare public /*out*/ readonly prometheus: pulumi.Output; + /** + * IDs of clusters that can create read-only topics from this cluster. + */ + declare public readonly readReplicaClusterIds: pulumi.Output; + /** + * Redpanda Console properties. + */ + declare public /*out*/ readonly redpandaConsole: pulumi.Output; + /** + * Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature. + */ + declare public readonly redpandaNodeCount: pulumi.Output; + /** + * Current Redpanda version of the cluster. + */ + declare public readonly redpandaVersion: pulumi.Output; + /** + * Cloud provider region. Region represents the name of the region where the cluster will be provisioned. + */ + declare public readonly region: pulumi.Output; + /** + * Resource group ID of the cluster. + */ + declare public readonly resourceGroupId: pulumi.Output; + /** + * Schema Registry properties. + */ + declare public readonly schemaRegistry: pulumi.Output; + /** + * Current state of the cluster. + */ + declare public /*out*/ readonly state: pulumi.Output; + /** + * Detailed state description when cluster is in a non-ready state. + */ + declare public /*out*/ readonly stateDescription: pulumi.Output; + /** + * Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix "gcp.network-tag.", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is "gcp.network-tag.network-tag-foo", the network tag named "network-tag-foo" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags. + */ + declare public readonly tags: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Usage tier of the cluster. + */ + declare public readonly throughputTier: pulumi.Output; + declare public readonly timeouts: pulumi.Output; + /** + * Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster. + */ + declare public readonly zones: pulumi.Output; + + /** + * Create a Cluster resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ClusterArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ClusterArgs | ClusterState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ClusterState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["apiGatewayAccess"] = state?.apiGatewayAccess; + resourceInputs["awsPrivateLink"] = state?.awsPrivateLink; + resourceInputs["azurePrivateLink"] = state?.azurePrivateLink; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["cloudStorage"] = state?.cloudStorage; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["clusterConfiguration"] = state?.clusterConfiguration; + resourceInputs["clusterType"] = state?.clusterType; + resourceInputs["connectionType"] = state?.connectionType; + resourceInputs["createdAt"] = state?.createdAt; + resourceInputs["currentRedpandaVersion"] = state?.currentRedpandaVersion; + resourceInputs["customerManagedResources"] = state?.customerManagedResources; + resourceInputs["desiredRedpandaVersion"] = state?.desiredRedpandaVersion; + resourceInputs["gcpGlobalAccessEnabled"] = state?.gcpGlobalAccessEnabled; + resourceInputs["gcpPrivateServiceConnect"] = state?.gcpPrivateServiceConnect; + resourceInputs["httpProxy"] = state?.httpProxy; + resourceInputs["kafkaApi"] = state?.kafkaApi; + resourceInputs["kafkaConnect"] = state?.kafkaConnect; + resourceInputs["maintenanceWindowConfig"] = state?.maintenanceWindowConfig; + resourceInputs["name"] = state?.name; + resourceInputs["natGateways"] = state?.natGateways; + resourceInputs["networkId"] = state?.networkId; + resourceInputs["prometheus"] = state?.prometheus; + resourceInputs["readReplicaClusterIds"] = state?.readReplicaClusterIds; + resourceInputs["redpandaConsole"] = state?.redpandaConsole; + resourceInputs["redpandaNodeCount"] = state?.redpandaNodeCount; + resourceInputs["redpandaVersion"] = state?.redpandaVersion; + resourceInputs["region"] = state?.region; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["schemaRegistry"] = state?.schemaRegistry; + resourceInputs["state"] = state?.state; + resourceInputs["stateDescription"] = state?.stateDescription; + resourceInputs["tags"] = state?.tags; + resourceInputs["throughputTier"] = state?.throughputTier; + resourceInputs["timeouts"] = state?.timeouts; + resourceInputs["zones"] = state?.zones; + } else { + const args = argsOrState as ClusterArgs | undefined; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.clusterType === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterType'"); + } + if (args?.connectionType === undefined && !opts.urn) { + throw new Error("Missing required property 'connectionType'"); + } + if (args?.networkId === undefined && !opts.urn) { + throw new Error("Missing required property 'networkId'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + if (args?.throughputTier === undefined && !opts.urn) { + throw new Error("Missing required property 'throughputTier'"); + } + if (args?.zones === undefined && !opts.urn) { + throw new Error("Missing required property 'zones'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["apiGatewayAccess"] = args?.apiGatewayAccess; + resourceInputs["awsPrivateLink"] = args?.awsPrivateLink; + resourceInputs["azurePrivateLink"] = args?.azurePrivateLink; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["cloudStorage"] = args?.cloudStorage; + resourceInputs["clusterConfiguration"] = args?.clusterConfiguration; + resourceInputs["clusterType"] = args?.clusterType; + resourceInputs["connectionType"] = args?.connectionType; + resourceInputs["customerManagedResources"] = args?.customerManagedResources; + resourceInputs["gcpGlobalAccessEnabled"] = args?.gcpGlobalAccessEnabled; + resourceInputs["gcpPrivateServiceConnect"] = args?.gcpPrivateServiceConnect; + resourceInputs["httpProxy"] = args?.httpProxy; + resourceInputs["kafkaApi"] = args?.kafkaApi; + resourceInputs["kafkaConnect"] = args?.kafkaConnect; + resourceInputs["maintenanceWindowConfig"] = args?.maintenanceWindowConfig; + resourceInputs["name"] = args?.name; + resourceInputs["networkId"] = args?.networkId; + resourceInputs["readReplicaClusterIds"] = args?.readReplicaClusterIds; + resourceInputs["redpandaNodeCount"] = args?.redpandaNodeCount; + resourceInputs["redpandaVersion"] = args?.redpandaVersion; + resourceInputs["region"] = args?.region; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["schemaRegistry"] = args?.schemaRegistry; + resourceInputs["tags"] = args?.tags; + resourceInputs["throughputTier"] = args?.throughputTier; + resourceInputs["timeouts"] = args?.timeouts; + resourceInputs["zones"] = args?.zones; + resourceInputs["clusterApiUrl"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["currentRedpandaVersion"] = undefined /*out*/; + resourceInputs["desiredRedpandaVersion"] = undefined /*out*/; + resourceInputs["natGateways"] = undefined /*out*/; + resourceInputs["prometheus"] = undefined /*out*/; + resourceInputs["redpandaConsole"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["stateDescription"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Cluster.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Cluster resources. + */ +export interface ClusterState { + /** + * Allows deletion of the cluster. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * API gateway access mode. Can be NETWORK_ACCESS_MODE_PRIVATE or NETWORK_ACCESS_MODE_PUBLIC. + */ + apiGatewayAccess?: pulumi.Input; + /** + * AWS PrivateLink configuration. + */ + awsPrivateLink?: pulumi.Input; + /** + * Azure Private Link configuration. + */ + azurePrivateLink?: pulumi.Input; + /** + * Cloud provider where resources are created. + */ + cloudProvider?: pulumi.Input; + /** + * Cloud storage configuration for tiered storage. + */ + cloudStorage?: pulumi.Input; + /** + * The URL of the cluster API. + */ + clusterApiUrl?: pulumi.Input; + /** + * Configuration for the cluster. + */ + clusterConfiguration?: pulumi.Input; + /** + * Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated. + */ + clusterType?: pulumi.Input; + /** + * Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice. + */ + connectionType?: pulumi.Input; + /** + * Timestamp when the cluster was created. + */ + createdAt?: pulumi.Input; + /** + * The actual running Redpanda version of the cluster. + */ + currentRedpandaVersion?: pulumi.Input; + /** + * Customer managed resources configuration for the cluster. + */ + customerManagedResources?: pulumi.Input; + /** + * The target Redpanda version during an upgrade. + */ + desiredRedpandaVersion?: pulumi.Input; + /** + * If true, GCP global access is enabled. + */ + gcpGlobalAccessEnabled?: pulumi.Input; + /** + * GCP Private Service Connect configuration. + */ + gcpPrivateServiceConnect?: pulumi.Input; + /** + * HTTP Proxy properties. + */ + httpProxy?: pulumi.Input; + /** + * Cluster's Kafka API properties. + */ + kafkaApi?: pulumi.Input; + /** + * Kafka Connect configuration. + */ + kafkaConnect?: pulumi.Input; + /** + * Maintenance window configuration for the cluster. + */ + maintenanceWindowConfig?: pulumi.Input; + /** + * Unique name of the cluster. + */ + name?: pulumi.Input; + /** + * NAT gateway IP addresses for the cluster. + */ + natGateways?: pulumi.Input[]>; + /** + * Network ID where cluster is placed. + */ + networkId?: pulumi.Input; + /** + * Prometheus metrics endpoint properties. + */ + prometheus?: pulumi.Input; + /** + * IDs of clusters that can create read-only topics from this cluster. + */ + readReplicaClusterIds?: pulumi.Input[]>; + /** + * Redpanda Console properties. + */ + redpandaConsole?: pulumi.Input; + /** + * Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature. + */ + redpandaNodeCount?: pulumi.Input; + /** + * Current Redpanda version of the cluster. + */ + redpandaVersion?: pulumi.Input; + /** + * Cloud provider region. Region represents the name of the region where the cluster will be provisioned. + */ + region?: pulumi.Input; + /** + * Resource group ID of the cluster. + */ + resourceGroupId?: pulumi.Input; + /** + * Schema Registry properties. + */ + schemaRegistry?: pulumi.Input; + /** + * Current state of the cluster. + */ + state?: pulumi.Input; + /** + * Detailed state description when cluster is in a non-ready state. + */ + stateDescription?: pulumi.Input; + /** + * Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix "gcp.network-tag.", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is "gcp.network-tag.network-tag-foo", the network tag named "network-tag-foo" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Usage tier of the cluster. + */ + throughputTier?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster. + */ + zones?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a Cluster resource. + */ +export interface ClusterArgs { + /** + * Allows deletion of the cluster. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * API gateway access mode. Can be NETWORK_ACCESS_MODE_PRIVATE or NETWORK_ACCESS_MODE_PUBLIC. + */ + apiGatewayAccess?: pulumi.Input; + /** + * AWS PrivateLink configuration. + */ + awsPrivateLink?: pulumi.Input; + /** + * Azure Private Link configuration. + */ + azurePrivateLink?: pulumi.Input; + /** + * Cloud provider where resources are created. + */ + cloudProvider: pulumi.Input; + /** + * Cloud storage configuration for tiered storage. + */ + cloudStorage?: pulumi.Input; + /** + * Configuration for the cluster. + */ + clusterConfiguration?: pulumi.Input; + /** + * Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated. + */ + clusterType: pulumi.Input; + /** + * Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice. + */ + connectionType: pulumi.Input; + /** + * Customer managed resources configuration for the cluster. + */ + customerManagedResources?: pulumi.Input; + /** + * If true, GCP global access is enabled. + */ + gcpGlobalAccessEnabled?: pulumi.Input; + /** + * GCP Private Service Connect configuration. + */ + gcpPrivateServiceConnect?: pulumi.Input; + /** + * HTTP Proxy properties. + */ + httpProxy?: pulumi.Input; + /** + * Cluster's Kafka API properties. + */ + kafkaApi?: pulumi.Input; + /** + * Kafka Connect configuration. + */ + kafkaConnect?: pulumi.Input; + /** + * Maintenance window configuration for the cluster. + */ + maintenanceWindowConfig?: pulumi.Input; + /** + * Unique name of the cluster. + */ + name?: pulumi.Input; + /** + * Network ID where cluster is placed. + */ + networkId: pulumi.Input; + /** + * IDs of clusters that can create read-only topics from this cluster. + */ + readReplicaClusterIds?: pulumi.Input[]>; + /** + * Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature. + */ + redpandaNodeCount?: pulumi.Input; + /** + * Current Redpanda version of the cluster. + */ + redpandaVersion?: pulumi.Input; + /** + * Cloud provider region. Region represents the name of the region where the cluster will be provisioned. + */ + region: pulumi.Input; + /** + * Resource group ID of the cluster. + */ + resourceGroupId: pulumi.Input; + /** + * Schema Registry properties. + */ + schemaRegistry?: pulumi.Input; + /** + * Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix "gcp.network-tag.", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is "gcp.network-tag.network-tag-foo", the network tag named "network-tag-foo" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Usage tier of the cluster. + */ + throughputTier: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster. + */ + zones: pulumi.Input[]>; +} diff --git a/pulumi-redpanda/config/index.ts b/pulumi-redpanda/config/index.ts new file mode 100644 index 00000000..3fbadc82 --- /dev/null +++ b/pulumi-redpanda/config/index.ts @@ -0,0 +1,5 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +// Export members: +export * from "./vars"; diff --git a/pulumi-redpanda/config/vars.ts b/pulumi-redpanda/config/vars.ts new file mode 100644 index 00000000..3ba25cf2 --- /dev/null +++ b/pulumi-redpanda/config/vars.ts @@ -0,0 +1,152 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +declare var exports: any; +const __config = new pulumi.Config("redpanda"); + +/** + * Redpanda client token. You need either `access_token`, or both `client_id` and `client_secret` to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable. + */ +export declare const accessToken: string | undefined; +Object.defineProperty(exports, "accessToken", { + get() { + return __config.get("accessToken"); + }, + enumerable: true, +}); + +/** + * AWS access key ID for BYOC clusters. Can also be set via AWS_ACCESS_KEY_ID. + */ +export declare const awsAccessKeyId: string | undefined; +Object.defineProperty(exports, "awsAccessKeyId", { + get() { + return __config.get("awsAccessKeyId"); + }, + enumerable: true, +}); + +/** + * AWS secret access key for BYOC clusters. Can also be set via AWS_SECRET_ACCESS_KEY. + */ +export declare const awsSecretAccessKey: string | undefined; +Object.defineProperty(exports, "awsSecretAccessKey", { + get() { + return __config.get("awsSecretAccessKey"); + }, + enumerable: true, +}); + +/** + * AWS session token for BYOC clusters (for temporary credentials). Can also be set via AWS_SESSION_TOKEN. + */ +export declare const awsSessionToken: string | undefined; +Object.defineProperty(exports, "awsSessionToken", { + get() { + return __config.get("awsSessionToken"); + }, + enumerable: true, +}); + +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID + */ +export declare const azureClientId: string | undefined; +Object.defineProperty(exports, "azureClientId", { + get() { + return __config.get("azureClientId"); + }, + enumerable: true, +}); + +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET + */ +export declare const azureClientSecret: string | undefined; +Object.defineProperty(exports, "azureClientSecret", { + get() { + return __config.get("azureClientSecret"); + }, + enumerable: true, +}); + +/** + * The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable. + */ +export declare const azureSubscriptionId: string | undefined; +Object.defineProperty(exports, "azureSubscriptionId", { + get() { + return __config.get("azureSubscriptionId"); + }, + enumerable: true, +}); + +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID + */ +export declare const azureTenantId: string | undefined; +Object.defineProperty(exports, "azureTenantId", { + get() { + return __config.get("azureTenantId"); + }, + enumerable: true, +}); + +/** + * The ID for the client. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable. + */ +export declare const clientId: string | undefined; +Object.defineProperty(exports, "clientId", { + get() { + return __config.get("clientId"); + }, + enumerable: true, +}); + +/** + * Redpanda client secret. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable. + */ +export declare const clientSecret: string | undefined; +Object.defineProperty(exports, "clientSecret", { + get() { + return __config.get("clientSecret"); + }, + enumerable: true, +}); + +/** + * The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`. + */ +export declare const gcpProjectId: string | undefined; +Object.defineProperty(exports, "gcpProjectId", { + get() { + return __config.get("gcpProjectId"); + }, + enumerable: true, +}); + +/** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS + */ +export declare const googleCredentials: string | undefined; +Object.defineProperty(exports, "googleCredentials", { + get() { + return __config.get("googleCredentials"); + }, + enumerable: true, +}); + +/** + * Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64 + */ +export declare const googleCredentialsBase64: string | undefined; +Object.defineProperty(exports, "googleCredentialsBase64", { + get() { + return __config.get("googleCredentialsBase64"); + }, + enumerable: true, +}); + diff --git a/pulumi-redpanda/getCluster.ts b/pulumi-redpanda/getCluster.ts new file mode 100644 index 00000000..990536e4 --- /dev/null +++ b/pulumi-redpanda/getCluster.ts @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getCluster(args: GetClusterArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getCluster:getCluster", { + "id": args.id, + "timeouts": args.timeouts, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getCluster. + */ +export interface GetClusterArgs { + id: string; + timeouts?: inputs.GetClusterTimeouts; +} + +/** + * A collection of values returned by getCluster. + */ +export interface GetClusterResult { + readonly allowDeletion: boolean; + readonly awsPrivateLink: outputs.GetClusterAwsPrivateLink; + readonly azurePrivateLink: outputs.GetClusterAzurePrivateLink; + readonly cloudProvider: string; + readonly clusterApiUrl: string; + readonly clusterConfiguration: outputs.GetClusterClusterConfiguration; + readonly clusterType: string; + readonly connectionType: string; + readonly createdAt: string; + readonly customerManagedResources: outputs.GetClusterCustomerManagedResources; + readonly gcpGlobalAccessEnabled: boolean; + readonly gcpPrivateServiceConnect: outputs.GetClusterGcpPrivateServiceConnect; + readonly httpProxy: outputs.GetClusterHttpProxy; + readonly id: string; + readonly kafkaApi: outputs.GetClusterKafkaApi; + readonly kafkaConnect: outputs.GetClusterKafkaConnect; + readonly maintenanceWindowConfig: outputs.GetClusterMaintenanceWindowConfig; + readonly name: string; + readonly networkId: string; + readonly prometheus: outputs.GetClusterPrometheus; + readonly readReplicaClusterIds: string[]; + readonly redpandaConsole: outputs.GetClusterRedpandaConsole; + readonly redpandaVersion: string; + readonly region: string; + readonly resourceGroupId: string; + readonly schemaRegistry: outputs.GetClusterSchemaRegistry; + readonly state: string; + readonly stateDescription: outputs.GetClusterStateDescription; + readonly tags: {[key: string]: string}; + readonly throughputTier: string; + readonly timeouts?: outputs.GetClusterTimeouts; + readonly zones: string[]; +} +export function getClusterOutput(args: GetClusterOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getCluster:getCluster", { + "id": args.id, + "timeouts": args.timeouts, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getCluster. + */ +export interface GetClusterOutputArgs { + id: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/pulumi-redpanda/getNetwork.ts b/pulumi-redpanda/getNetwork.ts new file mode 100644 index 00000000..c9351dc8 --- /dev/null +++ b/pulumi-redpanda/getNetwork.ts @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getNetwork(args: GetNetworkArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getNetwork:getNetwork", { + "id": args.id, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getNetwork. + */ +export interface GetNetworkArgs { + id: string; +} + +/** + * A collection of values returned by getNetwork. + */ +export interface GetNetworkResult { + readonly cidrBlock: string; + readonly cloudProvider: string; + readonly clusterType: string; + readonly customerManagedResources: outputs.GetNetworkCustomerManagedResources; + readonly id: string; + readonly name: string; + readonly region: string; + readonly resourceGroupId: string; + readonly state: string; + readonly zones: string[]; +} +export function getNetworkOutput(args: GetNetworkOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getNetwork:getNetwork", { + "id": args.id, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getNetwork. + */ +export interface GetNetworkOutputArgs { + id: pulumi.Input; +} diff --git a/pulumi-redpanda/getRegion.ts b/pulumi-redpanda/getRegion.ts new file mode 100644 index 00000000..261e423b --- /dev/null +++ b/pulumi-redpanda/getRegion.ts @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getRegion(args: GetRegionArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getRegion:getRegion", { + "cloudProvider": args.cloudProvider, + "name": args.name, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getRegion. + */ +export interface GetRegionArgs { + cloudProvider: string; + name: string; +} + +/** + * A collection of values returned by getRegion. + */ +export interface GetRegionResult { + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly name: string; + readonly zones: string[]; +} +export function getRegionOutput(args: GetRegionOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getRegion:getRegion", { + "cloudProvider": args.cloudProvider, + "name": args.name, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getRegion. + */ +export interface GetRegionOutputArgs { + cloudProvider: pulumi.Input; + name: pulumi.Input; +} diff --git a/pulumi-redpanda/getRegions.ts b/pulumi-redpanda/getRegions.ts new file mode 100644 index 00000000..db1e43f0 --- /dev/null +++ b/pulumi-redpanda/getRegions.ts @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getRegions(args: GetRegionsArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getRegions:getRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getRegions. + */ +export interface GetRegionsArgs { + cloudProvider: string; +} + +/** + * A collection of values returned by getRegions. + */ +export interface GetRegionsResult { + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly regions: outputs.GetRegionsRegion[]; +} +export function getRegionsOutput(args: GetRegionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getRegions:getRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getRegions. + */ +export interface GetRegionsOutputArgs { + cloudProvider: pulumi.Input; +} diff --git a/pulumi-redpanda/getResourceGroup.ts b/pulumi-redpanda/getResourceGroup.ts new file mode 100644 index 00000000..d4009574 --- /dev/null +++ b/pulumi-redpanda/getResourceGroup.ts @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getResourceGroup(args?: GetResourceGroupArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getResourceGroup:getResourceGroup", { + "id": args.id, + "name": args.name, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getResourceGroup. + */ +export interface GetResourceGroupArgs { + id?: string; + name?: string; +} + +/** + * A collection of values returned by getResourceGroup. + */ +export interface GetResourceGroupResult { + readonly id: string; + readonly name: string; +} +export function getResourceGroupOutput(args?: GetResourceGroupOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getResourceGroup:getResourceGroup", { + "id": args.id, + "name": args.name, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getResourceGroup. + */ +export interface GetResourceGroupOutputArgs { + id?: pulumi.Input; + name?: pulumi.Input; +} diff --git a/pulumi-redpanda/getSchema.ts b/pulumi-redpanda/getSchema.ts new file mode 100644 index 00000000..a8120775 --- /dev/null +++ b/pulumi-redpanda/getSchema.ts @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getSchema(args: GetSchemaArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getSchema:getSchema", { + "clusterId": args.clusterId, + "subject": args.subject, + "version": args.version, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getSchema. + */ +export interface GetSchemaArgs { + clusterId: string; + subject: string; + version?: number; +} + +/** + * A collection of values returned by getSchema. + */ +export interface GetSchemaResult { + readonly clusterId: string; + readonly id: number; + readonly references: outputs.GetSchemaReference[]; + readonly schema: string; + readonly schemaType: string; + readonly subject: string; + readonly version: number; +} +export function getSchemaOutput(args: GetSchemaOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getSchema:getSchema", { + "clusterId": args.clusterId, + "subject": args.subject, + "version": args.version, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getSchema. + */ +export interface GetSchemaOutputArgs { + clusterId: pulumi.Input; + subject: pulumi.Input; + version?: pulumi.Input; +} diff --git a/pulumi-redpanda/getServerlessCluster.ts b/pulumi-redpanda/getServerlessCluster.ts new file mode 100644 index 00000000..7ee16252 --- /dev/null +++ b/pulumi-redpanda/getServerlessCluster.ts @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getServerlessCluster(args: GetServerlessClusterArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getServerlessCluster:getServerlessCluster", { + "id": args.id, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getServerlessCluster. + */ +export interface GetServerlessClusterArgs { + id: string; +} + +/** + * A collection of values returned by getServerlessCluster. + */ +export interface GetServerlessClusterResult { + readonly clusterApiUrl: string; + readonly id: string; + readonly name: string; + readonly resourceGroupId: string; + readonly serverlessRegion: string; +} +export function getServerlessClusterOutput(args: GetServerlessClusterOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getServerlessCluster:getServerlessCluster", { + "id": args.id, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getServerlessCluster. + */ +export interface GetServerlessClusterOutputArgs { + id: pulumi.Input; +} diff --git a/pulumi-redpanda/getServerlessRegions.ts b/pulumi-redpanda/getServerlessRegions.ts new file mode 100644 index 00000000..12be3da3 --- /dev/null +++ b/pulumi-redpanda/getServerlessRegions.ts @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getServerlessRegions(args: GetServerlessRegionsArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getServerlessRegions:getServerlessRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getServerlessRegions. + */ +export interface GetServerlessRegionsArgs { + cloudProvider: string; +} + +/** + * A collection of values returned by getServerlessRegions. + */ +export interface GetServerlessRegionsResult { + readonly cloudProvider: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly serverlessRegions: outputs.GetServerlessRegionsServerlessRegion[]; +} +export function getServerlessRegionsOutput(args: GetServerlessRegionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getServerlessRegions:getServerlessRegions", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getServerlessRegions. + */ +export interface GetServerlessRegionsOutputArgs { + cloudProvider: pulumi.Input; +} diff --git a/pulumi-redpanda/getThroughputTiers.ts b/pulumi-redpanda/getThroughputTiers.ts new file mode 100644 index 00000000..f91ea129 --- /dev/null +++ b/pulumi-redpanda/getThroughputTiers.ts @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getThroughputTiers(args?: GetThroughputTiersArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("redpanda:index/getThroughputTiers:getThroughputTiers", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getThroughputTiers. + */ +export interface GetThroughputTiersArgs { + cloudProvider?: string; +} + +/** + * A collection of values returned by getThroughputTiers. + */ +export interface GetThroughputTiersResult { + readonly cloudProvider?: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly throughputTiers: outputs.GetThroughputTiersThroughputTier[]; +} +export function getThroughputTiersOutput(args?: GetThroughputTiersOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("redpanda:index/getThroughputTiers:getThroughputTiers", { + "cloudProvider": args.cloudProvider, + }, opts, utilities.getPackage()); +} + +/** + * A collection of arguments for invoking getThroughputTiers. + */ +export interface GetThroughputTiersOutputArgs { + cloudProvider?: pulumi.Input; +} diff --git a/pulumi-redpanda/index.ts b/pulumi-redpanda/index.ts new file mode 100644 index 00000000..7644ad62 --- /dev/null +++ b/pulumi-redpanda/index.ts @@ -0,0 +1,187 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +// Export members: +export { AclArgs, AclState } from "./acl"; +export type Acl = import("./acl").Acl; +export const Acl: typeof import("./acl").Acl = null as any; +utilities.lazyLoad(exports, ["Acl"], () => require("./acl")); + +export { ClusterArgs, ClusterState } from "./cluster"; +export type Cluster = import("./cluster").Cluster; +export const Cluster: typeof import("./cluster").Cluster = null as any; +utilities.lazyLoad(exports, ["Cluster"], () => require("./cluster")); + +export { GetClusterArgs, GetClusterResult, GetClusterOutputArgs } from "./getCluster"; +export const getCluster: typeof import("./getCluster").getCluster = null as any; +export const getClusterOutput: typeof import("./getCluster").getClusterOutput = null as any; +utilities.lazyLoad(exports, ["getCluster","getClusterOutput"], () => require("./getCluster")); + +export { GetNetworkArgs, GetNetworkResult, GetNetworkOutputArgs } from "./getNetwork"; +export const getNetwork: typeof import("./getNetwork").getNetwork = null as any; +export const getNetworkOutput: typeof import("./getNetwork").getNetworkOutput = null as any; +utilities.lazyLoad(exports, ["getNetwork","getNetworkOutput"], () => require("./getNetwork")); + +export { GetRegionArgs, GetRegionResult, GetRegionOutputArgs } from "./getRegion"; +export const getRegion: typeof import("./getRegion").getRegion = null as any; +export const getRegionOutput: typeof import("./getRegion").getRegionOutput = null as any; +utilities.lazyLoad(exports, ["getRegion","getRegionOutput"], () => require("./getRegion")); + +export { GetRegionsArgs, GetRegionsResult, GetRegionsOutputArgs } from "./getRegions"; +export const getRegions: typeof import("./getRegions").getRegions = null as any; +export const getRegionsOutput: typeof import("./getRegions").getRegionsOutput = null as any; +utilities.lazyLoad(exports, ["getRegions","getRegionsOutput"], () => require("./getRegions")); + +export { GetResourceGroupArgs, GetResourceGroupResult, GetResourceGroupOutputArgs } from "./getResourceGroup"; +export const getResourceGroup: typeof import("./getResourceGroup").getResourceGroup = null as any; +export const getResourceGroupOutput: typeof import("./getResourceGroup").getResourceGroupOutput = null as any; +utilities.lazyLoad(exports, ["getResourceGroup","getResourceGroupOutput"], () => require("./getResourceGroup")); + +export { GetSchemaArgs, GetSchemaResult, GetSchemaOutputArgs } from "./getSchema"; +export const getSchema: typeof import("./getSchema").getSchema = null as any; +export const getSchemaOutput: typeof import("./getSchema").getSchemaOutput = null as any; +utilities.lazyLoad(exports, ["getSchema","getSchemaOutput"], () => require("./getSchema")); + +export { GetServerlessClusterArgs, GetServerlessClusterResult, GetServerlessClusterOutputArgs } from "./getServerlessCluster"; +export const getServerlessCluster: typeof import("./getServerlessCluster").getServerlessCluster = null as any; +export const getServerlessClusterOutput: typeof import("./getServerlessCluster").getServerlessClusterOutput = null as any; +utilities.lazyLoad(exports, ["getServerlessCluster","getServerlessClusterOutput"], () => require("./getServerlessCluster")); + +export { GetServerlessRegionsArgs, GetServerlessRegionsResult, GetServerlessRegionsOutputArgs } from "./getServerlessRegions"; +export const getServerlessRegions: typeof import("./getServerlessRegions").getServerlessRegions = null as any; +export const getServerlessRegionsOutput: typeof import("./getServerlessRegions").getServerlessRegionsOutput = null as any; +utilities.lazyLoad(exports, ["getServerlessRegions","getServerlessRegionsOutput"], () => require("./getServerlessRegions")); + +export { GetThroughputTiersArgs, GetThroughputTiersResult, GetThroughputTiersOutputArgs } from "./getThroughputTiers"; +export const getThroughputTiers: typeof import("./getThroughputTiers").getThroughputTiers = null as any; +export const getThroughputTiersOutput: typeof import("./getThroughputTiers").getThroughputTiersOutput = null as any; +utilities.lazyLoad(exports, ["getThroughputTiers","getThroughputTiersOutput"], () => require("./getThroughputTiers")); + +export { NetworkArgs, NetworkState } from "./network"; +export type Network = import("./network").Network; +export const Network: typeof import("./network").Network = null as any; +utilities.lazyLoad(exports, ["Network"], () => require("./network")); + +export { PipelineArgs, PipelineState } from "./pipeline"; +export type Pipeline = import("./pipeline").Pipeline; +export const Pipeline: typeof import("./pipeline").Pipeline = null as any; +utilities.lazyLoad(exports, ["Pipeline"], () => require("./pipeline")); + +export * from "./provider"; +import { Provider } from "./provider"; + +export { ResourceGroupArgs, ResourceGroupState } from "./resourceGroup"; +export type ResourceGroup = import("./resourceGroup").ResourceGroup; +export const ResourceGroup: typeof import("./resourceGroup").ResourceGroup = null as any; +utilities.lazyLoad(exports, ["ResourceGroup"], () => require("./resourceGroup")); + +export { RoleArgs, RoleState } from "./role"; +export type Role = import("./role").Role; +export const Role: typeof import("./role").Role = null as any; +utilities.lazyLoad(exports, ["Role"], () => require("./role")); + +export { RoleAssignmentArgs, RoleAssignmentState } from "./roleAssignment"; +export type RoleAssignment = import("./roleAssignment").RoleAssignment; +export const RoleAssignment: typeof import("./roleAssignment").RoleAssignment = null as any; +utilities.lazyLoad(exports, ["RoleAssignment"], () => require("./roleAssignment")); + +export { SchemaArgs, SchemaState } from "./schema"; +export type Schema = import("./schema").Schema; +export const Schema: typeof import("./schema").Schema = null as any; +utilities.lazyLoad(exports, ["Schema"], () => require("./schema")); + +export { SchemaRegistryAclArgs, SchemaRegistryAclState } from "./schemaRegistryAcl"; +export type SchemaRegistryAcl = import("./schemaRegistryAcl").SchemaRegistryAcl; +export const SchemaRegistryAcl: typeof import("./schemaRegistryAcl").SchemaRegistryAcl = null as any; +utilities.lazyLoad(exports, ["SchemaRegistryAcl"], () => require("./schemaRegistryAcl")); + +export { ServerlessClusterArgs, ServerlessClusterState } from "./serverlessCluster"; +export type ServerlessCluster = import("./serverlessCluster").ServerlessCluster; +export const ServerlessCluster: typeof import("./serverlessCluster").ServerlessCluster = null as any; +utilities.lazyLoad(exports, ["ServerlessCluster"], () => require("./serverlessCluster")); + +export { ServerlessPrivateLinkArgs, ServerlessPrivateLinkState } from "./serverlessPrivateLink"; +export type ServerlessPrivateLink = import("./serverlessPrivateLink").ServerlessPrivateLink; +export const ServerlessPrivateLink: typeof import("./serverlessPrivateLink").ServerlessPrivateLink = null as any; +utilities.lazyLoad(exports, ["ServerlessPrivateLink"], () => require("./serverlessPrivateLink")); + +export { TopicArgs, TopicState } from "./topic"; +export type Topic = import("./topic").Topic; +export const Topic: typeof import("./topic").Topic = null as any; +utilities.lazyLoad(exports, ["Topic"], () => require("./topic")); + +export { UserArgs, UserState } from "./user"; +export type User = import("./user").User; +export const User: typeof import("./user").User = null as any; +utilities.lazyLoad(exports, ["User"], () => require("./user")); + + +// Export sub-modules: +import * as config from "./config"; +import * as types from "./types"; + +export { + config, + types, +}; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "redpanda:index/acl:Acl": + return new Acl(name, undefined, { urn }) + case "redpanda:index/cluster:Cluster": + return new Cluster(name, undefined, { urn }) + case "redpanda:index/network:Network": + return new Network(name, undefined, { urn }) + case "redpanda:index/pipeline:Pipeline": + return new Pipeline(name, undefined, { urn }) + case "redpanda:index/resourceGroup:ResourceGroup": + return new ResourceGroup(name, undefined, { urn }) + case "redpanda:index/role:Role": + return new Role(name, undefined, { urn }) + case "redpanda:index/roleAssignment:RoleAssignment": + return new RoleAssignment(name, undefined, { urn }) + case "redpanda:index/schema:Schema": + return new Schema(name, undefined, { urn }) + case "redpanda:index/schemaRegistryAcl:SchemaRegistryAcl": + return new SchemaRegistryAcl(name, undefined, { urn }) + case "redpanda:index/serverlessCluster:ServerlessCluster": + return new ServerlessCluster(name, undefined, { urn }) + case "redpanda:index/serverlessPrivateLink:ServerlessPrivateLink": + return new ServerlessPrivateLink(name, undefined, { urn }) + case "redpanda:index/topic:Topic": + return new Topic(name, undefined, { urn }) + case "redpanda:index/user:User": + return new User(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("redpanda", "index/acl", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/cluster", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/network", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/pipeline", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/resourceGroup", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/role", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/roleAssignment", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/schema", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/schemaRegistryAcl", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/serverlessCluster", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/serverlessPrivateLink", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/topic", _module) +pulumi.runtime.registerResourceModule("redpanda", "index/user", _module) +pulumi.runtime.registerResourcePackage("redpanda", { + version: utilities.getVersion(), + constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => { + if (type !== "pulumi:providers:redpanda") { + throw new Error(`unknown provider type ${type}`); + } + return new Provider(name, undefined, { urn }); + }, +}); diff --git a/pulumi-redpanda/network.ts b/pulumi-redpanda/network.ts new file mode 100644 index 00000000..cb75618f --- /dev/null +++ b/pulumi-redpanda/network.ts @@ -0,0 +1,195 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class Network extends pulumi.CustomResource { + /** + * Get an existing Network 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. + */ + public static get(name: string, id: pulumi.Input, state?: NetworkState, opts?: pulumi.CustomResourceOptions): Network { + return new Network(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/network:Network'; + + /** + * Returns true if the given object is an instance of Network. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Network { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Network.__pulumiType; + } + + /** + * The cidr_block to create the network in + */ + declare public readonly cidrBlock: pulumi.Output; + /** + * The cloud provider to create the network in. + */ + declare public readonly cloudProvider: pulumi.Output; + /** + * The type of cluster this network is associated with, can be one of dedicated or byoc + */ + declare public readonly clusterType: pulumi.Output; + declare public readonly customerManagedResources: pulumi.Output; + /** + * Name of the network + */ + declare public readonly name: pulumi.Output; + /** + * The region to create the network in. + */ + declare public readonly region: pulumi.Output; + /** + * The ID of the resource group in which to create the network + */ + declare public readonly resourceGroupId: pulumi.Output; + /** + * Current state of the network. + */ + declare public /*out*/ readonly state: pulumi.Output; + declare public readonly timeouts: pulumi.Output; + /** + * Network availability zones. + */ + declare public /*out*/ readonly zones: pulumi.Output; + + /** + * Create a Network resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: NetworkArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: NetworkArgs | NetworkState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as NetworkState | undefined; + resourceInputs["cidrBlock"] = state?.cidrBlock; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["clusterType"] = state?.clusterType; + resourceInputs["customerManagedResources"] = state?.customerManagedResources; + resourceInputs["name"] = state?.name; + resourceInputs["region"] = state?.region; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["state"] = state?.state; + resourceInputs["timeouts"] = state?.timeouts; + resourceInputs["zones"] = state?.zones; + } else { + const args = argsOrState as NetworkArgs | undefined; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.clusterType === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterType'"); + } + if (args?.region === undefined && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + resourceInputs["cidrBlock"] = args?.cidrBlock; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["clusterType"] = args?.clusterType; + resourceInputs["customerManagedResources"] = args?.customerManagedResources; + resourceInputs["name"] = args?.name; + resourceInputs["region"] = args?.region; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["timeouts"] = args?.timeouts; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["zones"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Network.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Network resources. + */ +export interface NetworkState { + /** + * The cidr_block to create the network in + */ + cidrBlock?: pulumi.Input; + /** + * The cloud provider to create the network in. + */ + cloudProvider?: pulumi.Input; + /** + * The type of cluster this network is associated with, can be one of dedicated or byoc + */ + clusterType?: pulumi.Input; + customerManagedResources?: pulumi.Input; + /** + * Name of the network + */ + name?: pulumi.Input; + /** + * The region to create the network in. + */ + region?: pulumi.Input; + /** + * The ID of the resource group in which to create the network + */ + resourceGroupId?: pulumi.Input; + /** + * Current state of the network. + */ + state?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Network availability zones. + */ + zones?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a Network resource. + */ +export interface NetworkArgs { + /** + * The cidr_block to create the network in + */ + cidrBlock?: pulumi.Input; + /** + * The cloud provider to create the network in. + */ + cloudProvider: pulumi.Input; + /** + * The type of cluster this network is associated with, can be one of dedicated or byoc + */ + clusterType: pulumi.Input; + customerManagedResources?: pulumi.Input; + /** + * Name of the network + */ + name?: pulumi.Input; + /** + * The region to create the network in. + */ + region: pulumi.Input; + /** + * The ID of the resource group in which to create the network + */ + resourceGroupId: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/pulumi-redpanda/package.json b/pulumi-redpanda/package.json new file mode 100644 index 00000000..eb4a337c --- /dev/null +++ b/pulumi-redpanda/package.json @@ -0,0 +1,24 @@ +{ + "name": "@bpinternal/pulumi-redpanda", + "version": "1.7.3", + "description": "Pulumi SDK for redpanda-data/redpanda terraform provider", + "main": "bin/index.js", + "types": "bin/index.d.ts", + "repository": { + "url": "https://github.com/botpress/packages" + }, + "author": "Botpress, Inc.", + "license": "MIT", + "scripts": { + "build": "tsc" + }, + "dependencies": { + "@pulumi/pulumi": "^3.142.0", + "async-mutex": "^0.5.0" + }, + "devDependencies": { + "@types/node": "18.16.0", + "typescript": "5.4.5" + }, + "packageManager": "pnpm@10.29.3" +} diff --git a/pulumi-redpanda/pipeline.ts b/pulumi-redpanda/pipeline.ts new file mode 100644 index 00000000..3ab18f2e --- /dev/null +++ b/pulumi-redpanda/pipeline.ts @@ -0,0 +1,231 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class Pipeline extends pulumi.CustomResource { + /** + * Get an existing Pipeline 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. + */ + public static get(name: string, id: pulumi.Input, state?: PipelineState, opts?: pulumi.CustomResourceOptions): Pipeline { + return new Pipeline(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/pipeline:Pipeline'; + + /** + * Returns true if the given object is an instance of Pipeline. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Pipeline { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Pipeline.__pulumiType; + } + + /** + * Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports. + */ + declare public readonly clusterApiUrl: pulumi.Output; + /** + * The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details. + */ + declare public readonly configYaml: pulumi.Output; + /** + * Optional description of the pipeline. + */ + declare public readonly description: pulumi.Output; + /** + * User-friendly display name for the pipeline. + */ + declare public readonly displayName: pulumi.Output; + /** + * Resource allocation for the pipeline. + */ + declare public readonly resources: pulumi.Output; + /** + * Service account credentials for the pipeline. Used to authenticate the pipeline with external services. + */ + declare public readonly serviceAccount: pulumi.Output; + /** + * Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations. + */ + declare public readonly state: pulumi.Output; + /** + * Pipeline status information. + */ + declare public /*out*/ readonly status: pulumi.Output; + /** + * Key-value pairs to tag the pipeline for organization and filtering. + */ + declare public readonly tags: pulumi.Output<{[key: string]: string} | undefined>; + declare public readonly timeouts: pulumi.Output; + /** + * URL to connect to the pipeline's HTTP server, if applicable. + */ + declare public /*out*/ readonly url: pulumi.Output; + + /** + * Create a Pipeline resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PipelineArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: PipelineArgs | PipelineState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as PipelineState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["configYaml"] = state?.configYaml; + resourceInputs["description"] = state?.description; + resourceInputs["displayName"] = state?.displayName; + resourceInputs["resources"] = state?.resources; + resourceInputs["serviceAccount"] = state?.serviceAccount; + resourceInputs["state"] = state?.state; + resourceInputs["status"] = state?.status; + resourceInputs["tags"] = state?.tags; + resourceInputs["timeouts"] = state?.timeouts; + resourceInputs["url"] = state?.url; + } else { + const args = argsOrState as PipelineArgs | undefined; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + if (args?.configYaml === undefined && !opts.urn) { + throw new Error("Missing required property 'configYaml'"); + } + if (args?.displayName === undefined && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["configYaml"] = args?.configYaml ? pulumi.secret(args.configYaml) : undefined; + resourceInputs["description"] = args?.description; + resourceInputs["displayName"] = args?.displayName; + resourceInputs["resources"] = args?.resources; + resourceInputs["serviceAccount"] = args?.serviceAccount; + resourceInputs["state"] = args?.state; + resourceInputs["tags"] = args?.tags; + resourceInputs["timeouts"] = args?.timeouts; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["url"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["configYaml"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Pipeline.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Pipeline resources. + */ +export interface PipelineState { + /** + * Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports. + */ + clusterApiUrl?: pulumi.Input; + /** + * The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details. + */ + configYaml?: pulumi.Input; + /** + * Optional description of the pipeline. + */ + description?: pulumi.Input; + /** + * User-friendly display name for the pipeline. + */ + displayName?: pulumi.Input; + /** + * Resource allocation for the pipeline. + */ + resources?: pulumi.Input; + /** + * Service account credentials for the pipeline. Used to authenticate the pipeline with external services. + */ + serviceAccount?: pulumi.Input; + /** + * Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations. + */ + state?: pulumi.Input; + /** + * Pipeline status information. + */ + status?: pulumi.Input; + /** + * Key-value pairs to tag the pipeline for organization and filtering. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + /** + * URL to connect to the pipeline's HTTP server, if applicable. + */ + url?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Pipeline resource. + */ +export interface PipelineArgs { + /** + * Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports. + */ + clusterApiUrl: pulumi.Input; + /** + * The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details. + */ + configYaml: pulumi.Input; + /** + * Optional description of the pipeline. + */ + description?: pulumi.Input; + /** + * User-friendly display name for the pipeline. + */ + displayName: pulumi.Input; + /** + * Resource allocation for the pipeline. + */ + resources?: pulumi.Input; + /** + * Service account credentials for the pipeline. Used to authenticate the pipeline with external services. + */ + serviceAccount?: pulumi.Input; + /** + * Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations. + */ + state?: pulumi.Input; + /** + * Key-value pairs to tag the pipeline for organization and filtering. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; +} diff --git a/pulumi-redpanda/pnpm-lock.yaml b/pulumi-redpanda/pnpm-lock.yaml new file mode 100644 index 00000000..99026aad --- /dev/null +++ b/pulumi-redpanda/pnpm-lock.yaml @@ -0,0 +1,2140 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@pulumi/pulumi': + specifier: ^3.142.0 + version: 3.227.0(typescript@5.4.5) + async-mutex: + specifier: ^0.5.0 + version: 0.5.0 + devDependencies: + '@types/node': + specifier: 18.16.0 + version: 18.16.0 + typescript: + specifier: 5.4.5 + version: 5.4.5 + +packages: + + '@gar/promise-retry@1.0.3': + resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@grpc/grpc-js@1.14.3': + resolution: {integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.8.0': + resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==} + engines: {node: '>=6'} + hasBin: true + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@logdna/tail-file@2.2.0': + resolution: {integrity: sha512-XGSsWDweP80Fks16lwkAUIr54ICyBs6PsI4mpfTLQaWgEJRtY9xEV+PeyDpJ+sJEGZxqINlpmAwe/6tS1pP8Ng==} + engines: {node: '>=10.3.0'} + + '@npmcli/agent@4.0.0': + resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/arborist@9.4.2': + resolution: {integrity: sha512-omJgPyzt11cEGrxzgrECoOyxAunmPMgBFTcAB/FbaB+9iOYhGmRdsQqySV8o0LWQ/l2kTeASUIMR4xJufVwmtw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + '@npmcli/fs@5.0.0': + resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/git@7.0.2': + resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/installed-package-contents@4.0.0': + resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + '@npmcli/map-workspaces@5.0.3': + resolution: {integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/metavuln-calculator@9.0.3': + resolution: {integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/name-from-folder@4.0.0': + resolution: {integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/node-gyp@5.0.0': + resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/package-json@7.0.5': + resolution: {integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/promise-spawn@9.0.1': + resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/query@5.0.0': + resolution: {integrity: sha512-8TZWfTQOsODpLqo9SVhVjHovmKXNpevHU0gO9e+y4V4fRIOneiXy0u0sMP9LmS71XivrEWfZWg50ReH4WRT4aQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/redact@4.0.0': + resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/run-script@10.0.4': + resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@opentelemetry/api-logs@0.57.2': + resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} + engines: {node: '>=14'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@1.30.1': + resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@1.30.1': + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-trace-otlp-grpc@0.57.2': + resolution: {integrity: sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-zipkin@1.30.1': + resolution: {integrity: sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/instrumentation-grpc@0.57.2': + resolution: {integrity: sha512-TR6YQA67cLSZzdxbf2SrbADJy2Y8eBW1+9mF15P0VK2MYcpdoUSmQTF1oMkBwa3B9NwqDFA2fq7wYTTutFQqaQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.57.2': + resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.57.2': + resolution: {integrity: sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-grpc-exporter-base@0.57.2': + resolution: {integrity: sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.57.2': + resolution: {integrity: sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/propagator-b3@1.30.1': + resolution: {integrity: sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/propagator-jaeger@1.30.1': + resolution: {integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/resources@1.30.1': + resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.57.2': + resolution: {integrity: sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@1.30.1': + resolution: {integrity: sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@1.30.1': + resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@1.30.1': + resolution: {integrity: sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.28.0': + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@pulumi/pulumi@3.227.0': + resolution: {integrity: sha512-0G7C5gHyx65wIciTfSTw8WcXh3MOWQx/9ZEpWroFCgHrChTg9osUXQPzeKXwcuIiWu76vLWZe9PmmtLTTbOs3Q==} + engines: {node: '>=20'} + peerDependencies: + ts-node: '>= 7.0.1 < 12' + typescript: '>= 3.8.3 < 6' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/core@3.2.0': + resolution: {integrity: sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/protobuf-specs@0.5.0': + resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@4.1.1': + resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/tuf@4.0.2': + resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/verify@3.1.0': + resolution: {integrity: sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@4.1.0': + resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/google-protobuf@3.15.12': + resolution: {integrity: sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==} + + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/node@18.16.0': + resolution: {integrity: sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/shimmer@1.2.0': + resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + + '@types/tmp@0.2.6': + resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} + + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + async-mutex@0.5.0: + resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + bin-links@6.0.0: + resolution: {integrity: sha512-X4CiKlcV2GjnCMwnKAfbVWpHa++65th9TuzAEYtZoATiOE2DQKhSp4CJlyLoTqdhBKlXjpXjCTYPNNFS33Fi6w==} + engines: {node: ^20.17.0 || >=22.9.0} + + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + cacache@20.0.4: + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} + engines: {node: ^20.17.0 || >=22.9.0} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + cmd-shim@8.0.0: + resolution: {integrity: sha512-Jk/BK6NCapZ58BKUxlSI+ouKRbjH1NLZCgJkYoab+vEHUY3f6OzpNBN9u7HFSv9J6TRDGs4PLOHezoKGaFRSCA==} + engines: {node: ^20.17.0 || >=22.9.0} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + common-ancestor-path@2.0.0: + resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} + engines: {node: '>= 18'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + google-protobuf@3.21.4: + resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + engines: {node: ^20.17.0 || >=22.9.0} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + + ignore-walk@8.0.0: + resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} + engines: {node: ^20.17.0 || >=22.9.0} + + import-in-the-middle@1.15.0: + resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + engines: {node: 20 || >=22} + + make-fetch-happen@15.0.5: + resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} + engines: {node: ^20.17.0 || >=22.9.0} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@5.0.2: + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@2.0.0: + resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + node-gyp@12.2.0: + resolution: {integrity: sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-bundled@5.0.0: + resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-package-arg@13.0.2: + resolution: {integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-packlist@10.0.4: + resolution: {integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-registry-fetch@19.1.1: + resolution: {integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + + package-directory@8.2.0: + resolution: {integrity: sha512-qJSu5Mo6tHmRxCy2KCYYKYgcfBdUpy9dwReaZD/xwf608AUk/MoRtIOWzgDtUeGeC7n/55yC3MI1Q+MbSoektw==} + engines: {node: '>=18'} + + pacote@21.5.0: + resolution: {integrity: sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + parse-conflict-json@5.0.1: + resolution: {integrity: sha512-ZHEmNKMq1wyJXNwLxyHnluPfRAFSIliBvbK/UiOceROt4Xh9Pz0fq49NytIaeaCUf5VR86hwQ/34FCcNU5/LKQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + picomatch@3.0.2: + resolution: {integrity: sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw==} + engines: {node: '>=10'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + proggy@4.0.0: + resolution: {integrity: sha512-MbA4R+WQT76ZBm/5JUpV9yqcJt92175+Y0Bodg3HgiXzrmKu7Ggq+bpn6y6wHH+gN9NcyKn3yg1+d47VaKwNAQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} + + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + engines: {node: '>=12.0.0'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + read-cmd-shim@6.0.0: + resolution: {integrity: sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A==} + engines: {node: ^20.17.0 || >=22.9.0} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-in-the-middle@7.5.2: + resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + engines: {node: '>=8.6.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@4.1.0: + resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} + engines: {node: ^20.17.0 || >=22.9.0} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + ssri@13.0.1: + resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + engines: {node: '>=14.14'} + + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tuf-js@4.1.0: + resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@7.0.2: + resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} + engines: {node: ^20.17.0 || >=22.9.0} + + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@7.0.1: + resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==} + engines: {node: ^20.17.0 || >=22.9.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + +snapshots: + + '@gar/promise-retry@1.0.3': {} + + '@grpc/grpc-js@1.14.3': + dependencies: + '@grpc/proto-loader': 0.8.0 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.8.0': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.3.2 + protobufjs: 7.5.4 + yargs: 17.7.2 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + + '@isaacs/string-locale-compare@1.1.0': {} + + '@js-sdsl/ordered-map@4.4.2': {} + + '@logdna/tail-file@2.2.0': {} + + '@npmcli/agent@4.0.0': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 11.2.7 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/arborist@9.4.2': + dependencies: + '@gar/promise-retry': 1.0.3 + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 5.0.0 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/map-workspaces': 5.0.3 + '@npmcli/metavuln-calculator': 9.0.3 + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/query': 5.0.0 + '@npmcli/redact': 4.0.0 + '@npmcli/run-script': 10.0.4 + bin-links: 6.0.0 + cacache: 20.0.4 + common-ancestor-path: 2.0.0 + hosted-git-info: 9.0.2 + json-stringify-nice: 1.1.4 + lru-cache: 11.2.7 + minimatch: 10.2.4 + nopt: 9.0.0 + npm-install-checks: 8.0.0 + npm-package-arg: 13.0.2 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + pacote: 21.5.0 + parse-conflict-json: 5.0.1 + proc-log: 6.1.0 + proggy: 4.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 3.0.2 + semver: 7.7.4 + ssri: 13.0.1 + treeverse: 3.0.0 + walk-up-path: 4.0.0 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@5.0.0': + dependencies: + semver: 7.7.4 + + '@npmcli/git@7.0.2': + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/promise-spawn': 9.0.1 + ini: 6.0.0 + lru-cache: 11.2.7 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + semver: 7.7.4 + which: 6.0.1 + + '@npmcli/installed-package-contents@4.0.0': + dependencies: + npm-bundled: 5.0.0 + npm-normalize-package-bin: 5.0.0 + + '@npmcli/map-workspaces@5.0.3': + dependencies: + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/package-json': 7.0.5 + glob: 13.0.6 + minimatch: 10.2.4 + + '@npmcli/metavuln-calculator@9.0.3': + dependencies: + cacache: 20.0.4 + json-parse-even-better-errors: 5.0.0 + pacote: 21.5.0 + proc-log: 6.1.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + + '@npmcli/name-from-folder@4.0.0': {} + + '@npmcli/node-gyp@5.0.0': {} + + '@npmcli/package-json@7.0.5': + dependencies: + '@npmcli/git': 7.0.2 + glob: 13.0.6 + hosted-git-info: 9.0.2 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.7.4 + spdx-expression-parse: 4.0.0 + + '@npmcli/promise-spawn@9.0.1': + dependencies: + which: 6.0.1 + + '@npmcli/query@5.0.0': + dependencies: + postcss-selector-parser: 7.1.1 + + '@npmcli/redact@4.0.0': {} + + '@npmcli/run-script@10.0.4': + dependencies: + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.1 + node-gyp: 12.2.0 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/api-logs@0.57.2': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/exporter-trace-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.14.3 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-zipkin@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/instrumentation-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.15.0 + require-in-the-middle: 7.5.2 + semver: 7.7.4 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/otlp-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-grpc-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.14.3 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + protobufjs: 7.5.4 + + '@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/sdk-logs@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + semver: 7.7.4 + + '@opentelemetry/semantic-conventions@1.28.0': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@pulumi/pulumi@3.227.0(typescript@5.4.5)': + dependencies: + '@grpc/grpc-js': 1.14.3 + '@logdna/tail-file': 2.2.0 + '@npmcli/arborist': 9.4.2 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/exporter-trace-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-zipkin': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) + '@types/google-protobuf': 3.15.12 + '@types/semver': 7.7.1 + '@types/tmp': 0.2.6 + execa: 5.1.1 + fdir: 6.5.0(picomatch@3.0.2) + google-protobuf: 3.21.4 + got: 11.8.6 + ini: 2.0.0 + js-yaml: 3.14.2 + minimist: 1.2.8 + normalize-package-data: 6.0.2 + package-directory: 8.2.0 + picomatch: 3.0.2 + require-from-string: 2.0.2 + semver: 7.7.4 + source-map-support: 0.5.21 + tmp: 0.2.5 + upath: 1.2.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@sigstore/bundle@4.0.0': + dependencies: + '@sigstore/protobuf-specs': 0.5.0 + + '@sigstore/core@3.2.0': {} + + '@sigstore/protobuf-specs@0.5.0': {} + + '@sigstore/sign@4.1.1': + dependencies: + '@gar/promise-retry': 1.0.3 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.0 + '@sigstore/protobuf-specs': 0.5.0 + make-fetch-happen: 15.0.5 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@4.0.2': + dependencies: + '@sigstore/protobuf-specs': 0.5.0 + tuf-js: 4.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@3.1.0': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.0 + '@sigstore/protobuf-specs': 0.5.0 + + '@sindresorhus/is@4.6.0': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@4.1.0': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 10.2.4 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.2.0 + '@types/keyv': 3.1.4 + '@types/node': 18.16.0 + '@types/responselike': 1.0.3 + + '@types/google-protobuf@3.15.12': {} + + '@types/http-cache-semantics@4.2.0': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 18.16.0 + + '@types/node@18.16.0': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 18.16.0 + + '@types/semver@7.7.1': {} + + '@types/shimmer@1.2.0': {} + + '@types/tmp@0.2.6': {} + + abbrev@4.0.0: {} + + acorn-import-attributes@1.9.5(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + agent-base@7.1.4: {} + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + async-mutex@0.5.0: + dependencies: + tslib: 2.8.1 + + balanced-match@4.0.4: {} + + bin-links@6.0.0: + dependencies: + cmd-shim: 8.0.0 + npm-normalize-package-bin: 5.0.0 + proc-log: 6.1.0 + read-cmd-shim: 6.0.0 + write-file-atomic: 7.0.1 + + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 + + buffer-from@1.1.2: {} + + cacache@20.0.4: + dependencies: + '@npmcli/fs': 5.0.0 + fs-minipass: 3.0.3 + glob: 13.0.6 + lru-cache: 11.2.7 + minipass: 7.1.3 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.4 + ssri: 13.0.1 + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + chownr@3.0.0: {} + + cjs-module-lexer@1.4.3: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + cmd-shim@8.0.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + common-ancestor-path@2.0.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + defer-to-connect@2.0.1: {} + + emoji-regex@8.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + env-paths@2.2.1: {} + + escalade@3.2.0: {} + + esprima@4.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exponential-backoff@3.1.3: {} + + fdir@6.5.0(picomatch@3.0.2): + optionalDependencies: + picomatch: 3.0.2 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + find-up-simple@1.0.1: {} + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.3 + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-stream@5.2.0: + dependencies: + pump: 3.0.4 + + get-stream@6.0.1: {} + + glob@13.0.6: + dependencies: + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 + + google-protobuf@3.21.4: {} + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + hosted-git-info@9.0.2: + dependencies: + lru-cache: 11.2.7 + + http-cache-semantics@4.2.0: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ignore-walk@8.0.0: + dependencies: + minimatch: 10.2.4 + + import-in-the-middle@1.15.0: + dependencies: + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.4 + + ini@2.0.0: {} + + ini@6.0.0: {} + + ip-address@10.1.0: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-fullwidth-code-point@3.0.0: {} + + is-stream@2.0.1: {} + + isexe@2.0.0: {} + + isexe@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@5.0.0: {} + + json-stringify-nice@1.1.4: {} + + jsonparse@1.3.1: {} + + just-diff-apply@5.5.0: {} + + just-diff@6.0.2: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + lodash.camelcase@4.3.0: {} + + long@5.3.2: {} + + lowercase-keys@2.0.0: {} + + lru-cache@10.4.3: {} + + lru-cache@11.2.7: {} + + make-fetch-happen@15.0.5: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/agent': 4.0.0 + '@npmcli/redact': 4.0.0 + cacache: 20.0.4 + http-cache-semantics: 4.2.0 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 1.0.0 + proc-log: 6.1.0 + ssri: 13.0.1 + transitivePeerDependencies: + - supports-color + + merge-stream@2.0.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + minimatch@10.2.4: + dependencies: + brace-expansion: 5.0.4 + + minimist@1.2.8: {} + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.3 + + minipass-fetch@5.0.2: + dependencies: + minipass: 7.1.3 + minipass-sized: 2.0.0 + minizlib: 3.1.0 + optionalDependencies: + iconv-lite: 0.7.2 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@2.0.0: + dependencies: + minipass: 7.1.3 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + + module-details-from-path@1.0.4: {} + + ms@2.1.3: {} + + negotiator@1.0.0: {} + + node-gyp@12.2.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + graceful-fs: 4.2.11 + make-fetch-happen: 15.0.5 + nopt: 9.0.0 + proc-log: 6.1.0 + semver: 7.7.4 + tar: 7.5.13 + tinyglobby: 0.2.15 + which: 6.0.1 + transitivePeerDependencies: + - supports-color + + nopt@9.0.0: + dependencies: + abbrev: 4.0.0 + + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.7.4 + validate-npm-package-license: 3.0.4 + + normalize-url@6.1.0: {} + + npm-bundled@5.0.0: + dependencies: + npm-normalize-package-bin: 5.0.0 + + npm-install-checks@8.0.0: + dependencies: + semver: 7.7.4 + + npm-normalize-package-bin@5.0.0: {} + + npm-package-arg@13.0.2: + dependencies: + hosted-git-info: 9.0.2 + proc-log: 6.1.0 + semver: 7.7.4 + validate-npm-package-name: 7.0.2 + + npm-packlist@10.0.4: + dependencies: + ignore-walk: 8.0.0 + proc-log: 6.1.0 + + npm-pick-manifest@11.0.3: + dependencies: + npm-install-checks: 8.0.0 + npm-normalize-package-bin: 5.0.0 + npm-package-arg: 13.0.2 + semver: 7.7.4 + + npm-registry-fetch@19.1.1: + dependencies: + '@npmcli/redact': 4.0.0 + jsonparse: 1.3.1 + make-fetch-happen: 15.0.5 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minizlib: 3.1.0 + npm-package-arg: 13.0.2 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + p-cancelable@2.1.1: {} + + p-map@7.0.4: {} + + package-directory@8.2.0: + dependencies: + find-up-simple: 1.0.1 + + pacote@21.5.0: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/git': 7.0.2 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.1 + '@npmcli/run-script': 10.0.4 + cacache: 20.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.3 + npm-package-arg: 13.0.2 + npm-packlist: 10.0.4 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + proc-log: 6.1.0 + sigstore: 4.1.0 + ssri: 13.0.1 + tar: 7.5.13 + transitivePeerDependencies: + - supports-color + + parse-conflict-json@5.0.1: + dependencies: + json-parse-even-better-errors: 5.0.0 + just-diff: 6.0.2 + just-diff-apply: 5.5.0 + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.7 + minipass: 7.1.3 + + picomatch@3.0.2: {} + + picomatch@4.0.4: {} + + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + proc-log@6.1.0: {} + + proggy@4.0.0: {} + + promise-all-reject-late@1.0.1: {} + + promise-call-limit@3.0.2: {} + + protobufjs@7.5.4: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.16.0 + long: 5.3.2 + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quick-lru@5.1.1: {} + + read-cmd-shim@6.0.0: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + require-in-the-middle@7.5.2: + dependencies: + debug: 4.4.3 + module-details-from-path: 1.0.4 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + resolve-alpn@1.2.1: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + safer-buffer@2.1.2: + optional: true + + semver@7.7.4: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shimmer@1.2.1: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sigstore@4.1.0: + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.0 + '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/sign': 4.1.1 + '@sigstore/tuf': 4.0.2 + '@sigstore/verify': 3.1.0 + transitivePeerDependencies: + - supports-color + + smart-buffer@4.2.0: {} + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.1.0 + smart-buffer: 4.2.0 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.23 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-license-ids@3.0.23: {} + + sprintf-js@1.0.3: {} + + ssri@13.0.1: + dependencies: + minipass: 7.1.3 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-final-newline@2.0.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + tar@7.5.13: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tmp@0.2.5: {} + + treeverse@3.0.0: {} + + tslib@2.8.1: {} + + tuf-js@4.1.0: + dependencies: + '@tufjs/models': 4.1.0 + debug: 4.4.3 + make-fetch-happen: 15.0.5 + transitivePeerDependencies: + - supports-color + + typescript@5.4.5: {} + + upath@1.2.0: {} + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@7.0.2: {} + + walk-up-path@4.0.0: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@6.0.1: + dependencies: + isexe: 4.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@7.0.1: + dependencies: + signal-exit: 4.1.0 + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yallist@5.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/pulumi-redpanda/provider.ts b/pulumi-redpanda/provider.ts new file mode 100644 index 00000000..c192d4d1 --- /dev/null +++ b/pulumi-redpanda/provider.ts @@ -0,0 +1,189 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * The provider type for the redpanda package. By default, resources use package-wide configuration + * settings, however an explicit `Provider` instance may be created and passed during resource + * construction to achieve fine-grained programmatic control over provider settings. See the + * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. + */ +export class Provider extends pulumi.ProviderResource { + /** @internal */ + public static readonly __pulumiType = 'redpanda'; + + /** + * Returns true if the given object is an instance of Provider. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Provider { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType; + } + + /** + * Redpanda client token. You need either `access_token`, or both `client_id` and `client_secret` to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable. + */ + declare public readonly accessToken: pulumi.Output; + /** + * AWS access key ID for BYOC clusters. Can also be set via AWS_ACCESS_KEY_ID. + */ + declare public readonly awsAccessKeyId: pulumi.Output; + /** + * AWS secret access key for BYOC clusters. Can also be set via AWS_SECRET_ACCESS_KEY. + */ + declare public readonly awsSecretAccessKey: pulumi.Output; + /** + * AWS session token for BYOC clusters (for temporary credentials). Can also be set via AWS_SESSION_TOKEN. + */ + declare public readonly awsSessionToken: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID + */ + declare public readonly azureClientId: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET + */ + declare public readonly azureClientSecret: pulumi.Output; + /** + * The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable. + */ + declare public readonly azureSubscriptionId: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID + */ + declare public readonly azureTenantId: pulumi.Output; + /** + * The ID for the client. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable. + */ + declare public readonly clientId: pulumi.Output; + /** + * Redpanda client secret. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable. + */ + declare public readonly clientSecret: pulumi.Output; + /** + * The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`. + */ + declare public readonly gcpProjectId: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS + */ + declare public readonly googleCredentials: pulumi.Output; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64 + */ + declare public readonly googleCredentialsBase64: pulumi.Output; + + /** + * Create a Provider resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + { + resourceInputs["accessToken"] = args?.accessToken ? pulumi.secret(args.accessToken) : undefined; + resourceInputs["awsAccessKeyId"] = args?.awsAccessKeyId ? pulumi.secret(args.awsAccessKeyId) : undefined; + resourceInputs["awsSecretAccessKey"] = args?.awsSecretAccessKey ? pulumi.secret(args.awsSecretAccessKey) : undefined; + resourceInputs["awsSessionToken"] = args?.awsSessionToken ? pulumi.secret(args.awsSessionToken) : undefined; + resourceInputs["azureClientId"] = args?.azureClientId; + resourceInputs["azureClientSecret"] = args?.azureClientSecret ? pulumi.secret(args.azureClientSecret) : undefined; + resourceInputs["azureSubscriptionId"] = args?.azureSubscriptionId; + resourceInputs["azureTenantId"] = args?.azureTenantId; + resourceInputs["clientId"] = args?.clientId ? pulumi.secret(args.clientId) : undefined; + resourceInputs["clientSecret"] = args?.clientSecret ? pulumi.secret(args.clientSecret) : undefined; + resourceInputs["gcpProjectId"] = args?.gcpProjectId; + resourceInputs["googleCredentials"] = args?.googleCredentials ? pulumi.secret(args.googleCredentials) : undefined; + resourceInputs["googleCredentialsBase64"] = args?.googleCredentialsBase64 ? pulumi.secret(args.googleCredentialsBase64) : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["accessToken", "awsAccessKeyId", "awsSecretAccessKey", "awsSessionToken", "azureClientSecret", "clientId", "clientSecret", "googleCredentials", "googleCredentialsBase64"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Provider.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } + + /** + * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider. + */ + terraformConfig(): pulumi.Output<{[key: string]: any}> { + const result: pulumi.Output = pulumi.runtime.call("pulumi:providers:redpanda/terraformConfig", { + "__self__": this, + }, this, utilities.getPackage()); + return result.result; + } +} + +/** + * The set of arguments for constructing a Provider resource. + */ +export interface ProviderArgs { + /** + * Redpanda client token. You need either `access_token`, or both `client_id` and `client_secret` to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable. + */ + accessToken?: pulumi.Input; + /** + * AWS access key ID for BYOC clusters. Can also be set via AWS_ACCESS_KEY_ID. + */ + awsAccessKeyId?: pulumi.Input; + /** + * AWS secret access key for BYOC clusters. Can also be set via AWS_SECRET_ACCESS_KEY. + */ + awsSecretAccessKey?: pulumi.Input; + /** + * AWS session token for BYOC clusters (for temporary credentials). Can also be set via AWS_SESSION_TOKEN. + */ + awsSessionToken?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID + */ + azureClientId?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET + */ + azureClientSecret?: pulumi.Input; + /** + * The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable. + */ + azureSubscriptionId?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID + */ + azureTenantId?: pulumi.Input; + /** + * The ID for the client. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable. + */ + clientId?: pulumi.Input; + /** + * Redpanda client secret. You need either `client_id` AND `client_secret`, or `access_token`, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable. + */ + clientSecret?: pulumi.Input; + /** + * The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`. + */ + gcpProjectId?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS + */ + googleCredentials?: pulumi.Input; + /** + * Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64 + */ + googleCredentialsBase64?: pulumi.Input; +} + +export namespace Provider { + /** + * The results of the Provider.terraformConfig method. + */ + export interface TerraformConfigResult { + readonly result: {[key: string]: any}; + } + +} diff --git a/pulumi-redpanda/resourceGroup.ts b/pulumi-redpanda/resourceGroup.ts new file mode 100644 index 00000000..3ac2a71a --- /dev/null +++ b/pulumi-redpanda/resourceGroup.ts @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class ResourceGroup extends pulumi.CustomResource { + /** + * Get an existing ResourceGroup 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. + */ + public static get(name: string, id: pulumi.Input, state?: ResourceGroupState, opts?: pulumi.CustomResourceOptions): ResourceGroup { + return new ResourceGroup(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/resourceGroup:ResourceGroup'; + + /** + * Returns true if the given object is an instance of ResourceGroup. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResourceGroup { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceGroup.__pulumiType; + } + + /** + * Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed + */ + declare public readonly name: pulumi.Output; + + /** + * Create a ResourceGroup resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: ResourceGroupArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ResourceGroupArgs | ResourceGroupState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ResourceGroupState | undefined; + resourceInputs["name"] = state?.name; + } else { + const args = argsOrState as ResourceGroupArgs | undefined; + resourceInputs["name"] = args?.name; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceGroup.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering ResourceGroup resources. + */ +export interface ResourceGroupState { + /** + * Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed + */ + name?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ResourceGroup resource. + */ +export interface ResourceGroupArgs { + /** + * Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed + */ + name?: pulumi.Input; +} diff --git a/pulumi-redpanda/role.ts b/pulumi-redpanda/role.ts new file mode 100644 index 00000000..f81e1f0b --- /dev/null +++ b/pulumi-redpanda/role.ts @@ -0,0 +1,126 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class Role extends pulumi.CustomResource { + /** + * Get an existing Role 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. + */ + public static get(name: string, id: pulumi.Input, state?: RoleState, opts?: pulumi.CustomResourceOptions): Role { + return new Role(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/role:Role'; + + /** + * Returns true if the given object is an instance of Role. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Role { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Role.__pulumiType; + } + + /** + * Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + declare public readonly clusterApiUrl: pulumi.Output; + /** + * Whether to delete the ACLs bound to the role when the role is deleted. Defaults to false. + */ + declare public readonly deleteAcls: pulumi.Output; + /** + * Name of the role, must be unique + */ + declare public readonly name: pulumi.Output; + + /** + * Create a Role resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: RoleArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: RoleArgs | RoleState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as RoleState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["deleteAcls"] = state?.deleteAcls; + resourceInputs["name"] = state?.name; + } else { + const args = argsOrState as RoleArgs | undefined; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["deleteAcls"] = args?.deleteAcls; + resourceInputs["name"] = args?.name; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Role.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Role resources. + */ +export interface RoleState { + /** + * Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * Whether to delete the ACLs bound to the role when the role is deleted. Defaults to false. + */ + deleteAcls?: pulumi.Input; + /** + * Name of the role, must be unique + */ + name?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Role resource. + */ +export interface RoleArgs { + /** + * Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * Whether to delete the ACLs bound to the role when the role is deleted. Defaults to false. + */ + deleteAcls?: pulumi.Input; + /** + * Name of the role, must be unique + */ + name?: pulumi.Input; +} diff --git a/pulumi-redpanda/roleAssignment.ts b/pulumi-redpanda/roleAssignment.ts new file mode 100644 index 00000000..072b6972 --- /dev/null +++ b/pulumi-redpanda/roleAssignment.ts @@ -0,0 +1,118 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class RoleAssignment extends pulumi.CustomResource { + /** + * Get an existing RoleAssignment 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. + */ + public static get(name: string, id: pulumi.Input, state?: RoleAssignmentState, opts?: pulumi.CustomResourceOptions): RoleAssignment { + return new RoleAssignment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/roleAssignment:RoleAssignment'; + + /** + * Returns true if the given object is an instance of RoleAssignment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is RoleAssignment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === RoleAssignment.__pulumiType; + } + + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster + */ + declare public readonly clusterApiUrl: pulumi.Output; + /** + * The principal to assign the role to. Specify just the username (e.g., `"john.doe"`) + */ + declare public readonly principal: pulumi.Output; + /** + * The name of the role to assign + */ + declare public readonly roleName: pulumi.Output; + + /** + * Create a RoleAssignment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: RoleAssignmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: RoleAssignmentArgs | RoleAssignmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as RoleAssignmentState | undefined; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["principal"] = state?.principal; + resourceInputs["roleName"] = state?.roleName; + } else { + const args = argsOrState as RoleAssignmentArgs | undefined; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + if (args?.principal === undefined && !opts.urn) { + throw new Error("Missing required property 'principal'"); + } + if (args?.roleName === undefined && !opts.urn) { + throw new Error("Missing required property 'roleName'"); + } + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["principal"] = args?.principal; + resourceInputs["roleName"] = args?.roleName; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(RoleAssignment.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering RoleAssignment resources. + */ +export interface RoleAssignmentState { + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster + */ + clusterApiUrl?: pulumi.Input; + /** + * The principal to assign the role to. Specify just the username (e.g., `"john.doe"`) + */ + principal?: pulumi.Input; + /** + * The name of the role to assign + */ + roleName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a RoleAssignment resource. + */ +export interface RoleAssignmentArgs { + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster + */ + clusterApiUrl: pulumi.Input; + /** + * The principal to assign the role to. Specify just the username (e.g., `"john.doe"`) + */ + principal: pulumi.Input; + /** + * The name of the role to assign + */ + roleName: pulumi.Input; +} diff --git a/pulumi-redpanda/schema.ts b/pulumi-redpanda/schema.ts new file mode 100644 index 00000000..73e15f6d --- /dev/null +++ b/pulumi-redpanda/schema.ts @@ -0,0 +1,263 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class Schema extends pulumi.CustomResource { + /** + * Get an existing Schema 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. + */ + public static get(name: string, id: pulumi.Input, state?: SchemaState, opts?: pulumi.CustomResourceOptions): Schema { + return new Schema(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/schema:Schema'; + + /** + * Returns true if the given object is an instance of Schema. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Schema { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Schema.__pulumiType; + } + + /** + * When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The ID of the cluster where the schema is stored. + */ + declare public readonly clusterId: pulumi.Output; + /** + * The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD. + */ + declare public readonly compatibility: pulumi.Output; + /** + * The SASL password for Schema Registry authentication. Deprecated: use password_wo instead. + * + * @deprecated Deprecated + */ + declare public readonly password: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + declare public readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + declare public readonly passwordWoVersion: pulumi.Output; + /** + * List of schema references. + */ + declare public readonly references: pulumi.Output; + /** + * The schema definition in JSON format. + */ + declare public readonly schema: pulumi.Output; + /** + * The unique identifier for the schema. + */ + declare public /*out*/ readonly schemaId: pulumi.Output; + /** + * The type of schema (AVRO, JSON, PROTOBUF). + */ + declare public readonly schemaType: pulumi.Output; + /** + * The subject name for the schema. + */ + declare public readonly subject: pulumi.Output; + /** + * The SASL username for Schema Registry authentication. + */ + declare public readonly username: pulumi.Output; + /** + * The version of the schema. + */ + declare public /*out*/ readonly version: pulumi.Output; + + /** + * Create a Schema resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SchemaArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SchemaArgs | SchemaState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SchemaState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterId"] = state?.clusterId; + resourceInputs["compatibility"] = state?.compatibility; + resourceInputs["password"] = state?.password; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + resourceInputs["references"] = state?.references; + resourceInputs["schema"] = state?.schema; + resourceInputs["schemaId"] = state?.schemaId; + resourceInputs["schemaType"] = state?.schemaType; + resourceInputs["subject"] = state?.subject; + resourceInputs["username"] = state?.username; + resourceInputs["version"] = state?.version; + } else { + const args = argsOrState as SchemaArgs | undefined; + if (args?.clusterId === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterId'"); + } + if (args?.schema === undefined && !opts.urn) { + throw new Error("Missing required property 'schema'"); + } + if (args?.subject === undefined && !opts.urn) { + throw new Error("Missing required property 'subject'"); + } + if (args?.username === undefined && !opts.urn) { + throw new Error("Missing required property 'username'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterId"] = args?.clusterId; + resourceInputs["compatibility"] = args?.compatibility; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + resourceInputs["references"] = args?.references; + resourceInputs["schema"] = args?.schema; + resourceInputs["schemaType"] = args?.schemaType; + resourceInputs["subject"] = args?.subject; + resourceInputs["username"] = args?.username ? pulumi.secret(args.username) : undefined; + resourceInputs["schemaId"] = undefined /*out*/; + resourceInputs["version"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password", "passwordWo", "username"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(Schema.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Schema resources. + */ +export interface SchemaState { + /** + * When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable. + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the schema is stored. + */ + clusterId?: pulumi.Input; + /** + * The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD. + */ + compatibility?: pulumi.Input; + /** + * The SASL password for Schema Registry authentication. Deprecated: use password_wo instead. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * List of schema references. + */ + references?: pulumi.Input[]>; + /** + * The schema definition in JSON format. + */ + schema?: pulumi.Input; + /** + * The unique identifier for the schema. + */ + schemaId?: pulumi.Input; + /** + * The type of schema (AVRO, JSON, PROTOBUF). + */ + schemaType?: pulumi.Input; + /** + * The subject name for the schema. + */ + subject?: pulumi.Input; + /** + * The SASL username for Schema Registry authentication. + */ + username?: pulumi.Input; + /** + * The version of the schema. + */ + version?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Schema resource. + */ +export interface SchemaArgs { + /** + * When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable. + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the schema is stored. + */ + clusterId: pulumi.Input; + /** + * The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD. + */ + compatibility?: pulumi.Input; + /** + * The SASL password for Schema Registry authentication. Deprecated: use password_wo instead. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * List of schema references. + */ + references?: pulumi.Input[]>; + /** + * The schema definition in JSON format. + */ + schema: pulumi.Input; + /** + * The type of schema (AVRO, JSON, PROTOBUF). + */ + schemaType?: pulumi.Input; + /** + * The subject name for the schema. + */ + subject: pulumi.Input; + /** + * The SASL username for Schema Registry authentication. + */ + username: pulumi.Input; +} diff --git a/pulumi-redpanda/schemaRegistryAcl.ts b/pulumi-redpanda/schemaRegistryAcl.ts new file mode 100644 index 00000000..9a475b06 --- /dev/null +++ b/pulumi-redpanda/schemaRegistryAcl.ts @@ -0,0 +1,281 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class SchemaRegistryAcl extends pulumi.CustomResource { + /** + * Get an existing SchemaRegistryAcl 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. + */ + public static get(name: string, id: pulumi.Input, state?: SchemaRegistryAclState, opts?: pulumi.CustomResourceOptions): SchemaRegistryAcl { + return new SchemaRegistryAcl(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/schemaRegistryAcl:SchemaRegistryAcl'; + + /** + * Returns true if the given object is an instance of SchemaRegistryAcl. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is SchemaRegistryAcl { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === SchemaRegistryAcl.__pulumiType; + } + + /** + * When set to true, allows the resource to be removed from state even if deletion fails due to permission errors + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The ID of the cluster where the Schema Registry ACL will be created + */ + declare public readonly clusterId: pulumi.Output; + /** + * The host address to use for this ACL. Use '*' for wildcard + */ + declare public readonly host: pulumi.Output; + /** + * The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE_CONFIGS, ALTER, ALTER_CONFIGS + */ + declare public readonly operation: pulumi.Output; + /** + * Password for authentication. Deprecated: use password_wo instead. Can be set via REDPANDA_SR_PASSWORD environment variable + * + * @deprecated Deprecated + */ + declare public readonly password: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + declare public readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + declare public readonly passwordWoVersion: pulumi.Output; + /** + * The pattern type of the resource: LITERAL or PREFIXED + */ + declare public readonly patternType: pulumi.Output; + /** + * The permission type: ALLOW or DENY + */ + declare public readonly permission: pulumi.Output; + /** + * The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin) + */ + declare public readonly principal: pulumi.Output; + /** + * The name of the resource this ACL entry will be on. Use '*' for wildcard + */ + declare public readonly resourceName: pulumi.Output; + /** + * The type of the resource: SUBJECT or REGISTRY + */ + declare public readonly resourceType: pulumi.Output; + /** + * Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable + */ + declare public readonly username: pulumi.Output; + + /** + * Create a SchemaRegistryAcl resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: SchemaRegistryAclArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: SchemaRegistryAclArgs | SchemaRegistryAclState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as SchemaRegistryAclState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterId"] = state?.clusterId; + resourceInputs["host"] = state?.host; + resourceInputs["operation"] = state?.operation; + resourceInputs["password"] = state?.password; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + resourceInputs["patternType"] = state?.patternType; + resourceInputs["permission"] = state?.permission; + resourceInputs["principal"] = state?.principal; + resourceInputs["resourceName"] = state?.resourceName; + resourceInputs["resourceType"] = state?.resourceType; + resourceInputs["username"] = state?.username; + } else { + const args = argsOrState as SchemaRegistryAclArgs | undefined; + if (args?.clusterId === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterId'"); + } + if (args?.host === undefined && !opts.urn) { + throw new Error("Missing required property 'host'"); + } + if (args?.operation === undefined && !opts.urn) { + throw new Error("Missing required property 'operation'"); + } + if (args?.patternType === undefined && !opts.urn) { + throw new Error("Missing required property 'patternType'"); + } + if (args?.permission === undefined && !opts.urn) { + throw new Error("Missing required property 'permission'"); + } + if (args?.principal === undefined && !opts.urn) { + throw new Error("Missing required property 'principal'"); + } + if (args?.resourceName === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceName'"); + } + if (args?.resourceType === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterId"] = args?.clusterId; + resourceInputs["host"] = args?.host; + resourceInputs["operation"] = args?.operation; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + resourceInputs["patternType"] = args?.patternType; + resourceInputs["permission"] = args?.permission; + resourceInputs["principal"] = args?.principal; + resourceInputs["resourceName"] = args?.resourceName; + resourceInputs["resourceType"] = args?.resourceType; + resourceInputs["username"] = args?.username ? pulumi.secret(args.username) : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password", "passwordWo", "username"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(SchemaRegistryAcl.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering SchemaRegistryAcl resources. + */ +export interface SchemaRegistryAclState { + /** + * When set to true, allows the resource to be removed from state even if deletion fails due to permission errors + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the Schema Registry ACL will be created + */ + clusterId?: pulumi.Input; + /** + * The host address to use for this ACL. Use '*' for wildcard + */ + host?: pulumi.Input; + /** + * The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE_CONFIGS, ALTER, ALTER_CONFIGS + */ + operation?: pulumi.Input; + /** + * Password for authentication. Deprecated: use password_wo instead. Can be set via REDPANDA_SR_PASSWORD environment variable + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * The pattern type of the resource: LITERAL or PREFIXED + */ + patternType?: pulumi.Input; + /** + * The permission type: ALLOW or DENY + */ + permission?: pulumi.Input; + /** + * The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin) + */ + principal?: pulumi.Input; + /** + * The name of the resource this ACL entry will be on. Use '*' for wildcard + */ + resourceName?: pulumi.Input; + /** + * The type of the resource: SUBJECT or REGISTRY + */ + resourceType?: pulumi.Input; + /** + * Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable + */ + username?: pulumi.Input; +} + +/** + * The set of arguments for constructing a SchemaRegistryAcl resource. + */ +export interface SchemaRegistryAclArgs { + /** + * When set to true, allows the resource to be removed from state even if deletion fails due to permission errors + */ + allowDeletion?: pulumi.Input; + /** + * The ID of the cluster where the Schema Registry ACL will be created + */ + clusterId: pulumi.Input; + /** + * The host address to use for this ACL. Use '*' for wildcard + */ + host: pulumi.Input; + /** + * The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE_CONFIGS, ALTER, ALTER_CONFIGS + */ + operation: pulumi.Input; + /** + * Password for authentication. Deprecated: use password_wo instead. Can be set via REDPANDA_SR_PASSWORD environment variable + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; + /** + * The pattern type of the resource: LITERAL or PREFIXED + */ + patternType: pulumi.Input; + /** + * The permission type: ALLOW or DENY + */ + permission: pulumi.Input; + /** + * The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin) + */ + principal: pulumi.Input; + /** + * The name of the resource this ACL entry will be on. Use '*' for wildcard + */ + resourceName: pulumi.Input; + /** + * The type of the resource: SUBJECT or REGISTRY + */ + resourceType: pulumi.Input; + /** + * Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable + */ + username?: pulumi.Input; +} diff --git a/pulumi-redpanda/serverlessCluster.ts b/pulumi-redpanda/serverlessCluster.ts new file mode 100644 index 00000000..d07fc079 --- /dev/null +++ b/pulumi-redpanda/serverlessCluster.ts @@ -0,0 +1,253 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class ServerlessCluster extends pulumi.CustomResource { + /** + * Get an existing ServerlessCluster 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. + */ + public static get(name: string, id: pulumi.Input, state?: ServerlessClusterState, opts?: pulumi.CustomResourceOptions): ServerlessCluster { + return new ServerlessCluster(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/serverlessCluster:ServerlessCluster'; + + /** + * Returns true if the given object is an instance of ServerlessCluster. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ServerlessCluster { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ServerlessCluster.__pulumiType; + } + + /** + * The URL of the dataplane API for the serverless cluster + * + * @deprecated Deprecated + */ + declare public /*out*/ readonly clusterApiUrl: pulumi.Output; + /** + * Private Console URL for the serverless cluster + */ + declare public /*out*/ readonly consolePrivateUrl: pulumi.Output; + /** + * Public Console URL for the serverless cluster + */ + declare public /*out*/ readonly consoleUrl: pulumi.Output; + /** + * Dataplane API endpoints for the serverless cluster + */ + declare public /*out*/ readonly dataplaneApi: pulumi.Output; + /** + * Kafka API endpoints for the serverless cluster + */ + declare public /*out*/ readonly kafkaApi: pulumi.Output; + /** + * Name of the serverless cluster + */ + declare public readonly name: pulumi.Output; + /** + * Network configuration controlling public/private access to the cluster + */ + declare public readonly networkingConfig: pulumi.Output; + /** + * Planned deletion information for the serverless cluster. + */ + declare public /*out*/ readonly plannedDeletion: pulumi.Output; + /** + * Private link ID for the serverless cluster. Must be set if private networking is enabled. + */ + declare public readonly privateLinkId: pulumi.Output; + /** + * Prometheus metrics endpoints for the serverless cluster + */ + declare public /*out*/ readonly prometheus: pulumi.Output; + /** + * The ID of the Resource Group in which to create the serverless cluster + */ + declare public readonly resourceGroupId: pulumi.Output; + /** + * Schema Registry endpoints for the serverless cluster + */ + declare public /*out*/ readonly schemaRegistry: pulumi.Output; + /** + * Redpanda specific region of the serverless cluster + */ + declare public readonly serverlessRegion: pulumi.Output; + /** + * Current state of the serverless cluster. + */ + declare public /*out*/ readonly state: pulumi.Output; + /** + * Tags placed on cloud resources. + */ + declare public readonly tags: pulumi.Output<{[key: string]: string} | undefined>; + + /** + * Create a ServerlessCluster resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServerlessClusterArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ServerlessClusterArgs | ServerlessClusterState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ServerlessClusterState | undefined; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["consolePrivateUrl"] = state?.consolePrivateUrl; + resourceInputs["consoleUrl"] = state?.consoleUrl; + resourceInputs["dataplaneApi"] = state?.dataplaneApi; + resourceInputs["kafkaApi"] = state?.kafkaApi; + resourceInputs["name"] = state?.name; + resourceInputs["networkingConfig"] = state?.networkingConfig; + resourceInputs["plannedDeletion"] = state?.plannedDeletion; + resourceInputs["privateLinkId"] = state?.privateLinkId; + resourceInputs["prometheus"] = state?.prometheus; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["schemaRegistry"] = state?.schemaRegistry; + resourceInputs["serverlessRegion"] = state?.serverlessRegion; + resourceInputs["state"] = state?.state; + resourceInputs["tags"] = state?.tags; + } else { + const args = argsOrState as ServerlessClusterArgs | undefined; + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + if (args?.serverlessRegion === undefined && !opts.urn) { + throw new Error("Missing required property 'serverlessRegion'"); + } + resourceInputs["name"] = args?.name; + resourceInputs["networkingConfig"] = args?.networkingConfig; + resourceInputs["privateLinkId"] = args?.privateLinkId; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["serverlessRegion"] = args?.serverlessRegion; + resourceInputs["tags"] = args?.tags; + resourceInputs["clusterApiUrl"] = undefined /*out*/; + resourceInputs["consolePrivateUrl"] = undefined /*out*/; + resourceInputs["consoleUrl"] = undefined /*out*/; + resourceInputs["dataplaneApi"] = undefined /*out*/; + resourceInputs["kafkaApi"] = undefined /*out*/; + resourceInputs["plannedDeletion"] = undefined /*out*/; + resourceInputs["prometheus"] = undefined /*out*/; + resourceInputs["schemaRegistry"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServerlessCluster.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering ServerlessCluster resources. + */ +export interface ServerlessClusterState { + /** + * The URL of the dataplane API for the serverless cluster + * + * @deprecated Deprecated + */ + clusterApiUrl?: pulumi.Input; + /** + * Private Console URL for the serverless cluster + */ + consolePrivateUrl?: pulumi.Input; + /** + * Public Console URL for the serverless cluster + */ + consoleUrl?: pulumi.Input; + /** + * Dataplane API endpoints for the serverless cluster + */ + dataplaneApi?: pulumi.Input; + /** + * Kafka API endpoints for the serverless cluster + */ + kafkaApi?: pulumi.Input; + /** + * Name of the serverless cluster + */ + name?: pulumi.Input; + /** + * Network configuration controlling public/private access to the cluster + */ + networkingConfig?: pulumi.Input; + /** + * Planned deletion information for the serverless cluster. + */ + plannedDeletion?: pulumi.Input; + /** + * Private link ID for the serverless cluster. Must be set if private networking is enabled. + */ + privateLinkId?: pulumi.Input; + /** + * Prometheus metrics endpoints for the serverless cluster + */ + prometheus?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless cluster + */ + resourceGroupId?: pulumi.Input; + /** + * Schema Registry endpoints for the serverless cluster + */ + schemaRegistry?: pulumi.Input; + /** + * Redpanda specific region of the serverless cluster + */ + serverlessRegion?: pulumi.Input; + /** + * Current state of the serverless cluster. + */ + state?: pulumi.Input; + /** + * Tags placed on cloud resources. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a ServerlessCluster resource. + */ +export interface ServerlessClusterArgs { + /** + * Name of the serverless cluster + */ + name?: pulumi.Input; + /** + * Network configuration controlling public/private access to the cluster + */ + networkingConfig?: pulumi.Input; + /** + * Private link ID for the serverless cluster. Must be set if private networking is enabled. + */ + privateLinkId?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless cluster + */ + resourceGroupId: pulumi.Input; + /** + * Redpanda specific region of the serverless cluster + */ + serverlessRegion: pulumi.Input; + /** + * Tags placed on cloud resources. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/pulumi-redpanda/serverlessPrivateLink.ts b/pulumi-redpanda/serverlessPrivateLink.ts new file mode 100644 index 00000000..52c00a37 --- /dev/null +++ b/pulumi-redpanda/serverlessPrivateLink.ts @@ -0,0 +1,205 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class ServerlessPrivateLink extends pulumi.CustomResource { + /** + * Get an existing ServerlessPrivateLink 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. + */ + public static get(name: string, id: pulumi.Input, state?: ServerlessPrivateLinkState, opts?: pulumi.CustomResourceOptions): ServerlessPrivateLink { + return new ServerlessPrivateLink(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/serverlessPrivateLink:ServerlessPrivateLink'; + + /** + * Returns true if the given object is an instance of ServerlessPrivateLink. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ServerlessPrivateLink { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ServerlessPrivateLink.__pulumiType; + } + + /** + * Allows deletion of the serverless private link. Defaults to false. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * Cloud provider (aws) + */ + declare public readonly cloudProvider: pulumi.Output; + /** + * Cloud provider specific configuration + */ + declare public readonly cloudProviderConfig: pulumi.Output; + /** + * Timestamp when the serverless private link was created + */ + declare public /*out*/ readonly createdAt: pulumi.Output; + /** + * Name of the serverless private link + */ + declare public readonly name: pulumi.Output; + /** + * The ID of the Resource Group in which to create the serverless private link + */ + declare public readonly resourceGroupId: pulumi.Output; + /** + * Redpanda serverless region + */ + declare public readonly serverlessRegion: pulumi.Output; + /** + * Current state of the serverless private link (STATE_CREATING, STATE_READY, STATE_DELETING, STATE_FAILED, STATE_UPDATING) + */ + declare public /*out*/ readonly state: pulumi.Output; + /** + * Cloud provider specific status information + */ + declare public /*out*/ readonly status: pulumi.Output; + /** + * Timestamp when the serverless private link was last updated. This value changes on every update operation. + */ + declare public /*out*/ readonly updatedAt: pulumi.Output; + + /** + * Create a ServerlessPrivateLink resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServerlessPrivateLinkArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ServerlessPrivateLinkArgs | ServerlessPrivateLinkState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ServerlessPrivateLinkState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["cloudProvider"] = state?.cloudProvider; + resourceInputs["cloudProviderConfig"] = state?.cloudProviderConfig; + resourceInputs["createdAt"] = state?.createdAt; + resourceInputs["name"] = state?.name; + resourceInputs["resourceGroupId"] = state?.resourceGroupId; + resourceInputs["serverlessRegion"] = state?.serverlessRegion; + resourceInputs["state"] = state?.state; + resourceInputs["status"] = state?.status; + resourceInputs["updatedAt"] = state?.updatedAt; + } else { + const args = argsOrState as ServerlessPrivateLinkArgs | undefined; + if (args?.cloudProvider === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProvider'"); + } + if (args?.cloudProviderConfig === undefined && !opts.urn) { + throw new Error("Missing required property 'cloudProviderConfig'"); + } + if (args?.resourceGroupId === undefined && !opts.urn) { + throw new Error("Missing required property 'resourceGroupId'"); + } + if (args?.serverlessRegion === undefined && !opts.urn) { + throw new Error("Missing required property 'serverlessRegion'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["cloudProvider"] = args?.cloudProvider; + resourceInputs["cloudProviderConfig"] = args?.cloudProviderConfig; + resourceInputs["name"] = args?.name; + resourceInputs["resourceGroupId"] = args?.resourceGroupId; + resourceInputs["serverlessRegion"] = args?.serverlessRegion; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ServerlessPrivateLink.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering ServerlessPrivateLink resources. + */ +export interface ServerlessPrivateLinkState { + /** + * Allows deletion of the serverless private link. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * Cloud provider (aws) + */ + cloudProvider?: pulumi.Input; + /** + * Cloud provider specific configuration + */ + cloudProviderConfig?: pulumi.Input; + /** + * Timestamp when the serverless private link was created + */ + createdAt?: pulumi.Input; + /** + * Name of the serverless private link + */ + name?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless private link + */ + resourceGroupId?: pulumi.Input; + /** + * Redpanda serverless region + */ + serverlessRegion?: pulumi.Input; + /** + * Current state of the serverless private link (STATE_CREATING, STATE_READY, STATE_DELETING, STATE_FAILED, STATE_UPDATING) + */ + state?: pulumi.Input; + /** + * Cloud provider specific status information + */ + status?: pulumi.Input; + /** + * Timestamp when the serverless private link was last updated. This value changes on every update operation. + */ + updatedAt?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ServerlessPrivateLink resource. + */ +export interface ServerlessPrivateLinkArgs { + /** + * Allows deletion of the serverless private link. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * Cloud provider (aws) + */ + cloudProvider: pulumi.Input; + /** + * Cloud provider specific configuration + */ + cloudProviderConfig: pulumi.Input; + /** + * Name of the serverless private link + */ + name?: pulumi.Input; + /** + * The ID of the Resource Group in which to create the serverless private link + */ + resourceGroupId: pulumi.Input; + /** + * Redpanda serverless region + */ + serverlessRegion: pulumi.Input; +} diff --git a/pulumi-redpanda/topic.ts b/pulumi-redpanda/topic.ts new file mode 100644 index 00000000..3ae24df6 --- /dev/null +++ b/pulumi-redpanda/topic.ts @@ -0,0 +1,170 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export class Topic extends pulumi.CustomResource { + /** + * Get an existing Topic 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. + */ + public static get(name: string, id: pulumi.Input, state?: TopicState, opts?: pulumi.CustomResourceOptions): Topic { + return new Topic(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/topic:Topic'; + + /** + * Returns true if the given object is an instance of Topic. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Topic { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Topic.__pulumiType; + } + + /** + * Indicates whether the topic can be deleted. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + declare public readonly clusterApiUrl: pulumi.Output; + /** + * A map of string key/value pairs of topic configurations. + */ + declare public readonly configuration: pulumi.Output<{[key: string]: string}>; + /** + * The name of the topic. + */ + declare public readonly name: pulumi.Output; + /** + * The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if allow_deletion is set to true (defaults to false). + */ + declare public readonly partitionCount: pulumi.Output; + /** + * Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both replication_factor and partition_count must be -1. Mutually exclusive with partition_count and replication_factor. + */ + declare public readonly replicaAssignments: pulumi.Output; + /** + * The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance. + */ + declare public readonly replicationFactor: pulumi.Output; + + /** + * Create a Topic resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: TopicArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: TopicArgs | TopicState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as TopicState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["configuration"] = state?.configuration; + resourceInputs["name"] = state?.name; + resourceInputs["partitionCount"] = state?.partitionCount; + resourceInputs["replicaAssignments"] = state?.replicaAssignments; + resourceInputs["replicationFactor"] = state?.replicationFactor; + } else { + const args = argsOrState as TopicArgs | undefined; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["configuration"] = args?.configuration; + resourceInputs["name"] = args?.name; + resourceInputs["partitionCount"] = args?.partitionCount; + resourceInputs["replicaAssignments"] = args?.replicaAssignments; + resourceInputs["replicationFactor"] = args?.replicationFactor; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Topic.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering Topic resources. + */ +export interface TopicState { + /** + * Indicates whether the topic can be deleted. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * A map of string key/value pairs of topic configurations. + */ + configuration?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The name of the topic. + */ + name?: pulumi.Input; + /** + * The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if allow_deletion is set to true (defaults to false). + */ + partitionCount?: pulumi.Input; + /** + * Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both replication_factor and partition_count must be -1. Mutually exclusive with partition_count and replication_factor. + */ + replicaAssignments?: pulumi.Input[]>; + /** + * The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance. + */ + replicationFactor?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Topic resource. + */ +export interface TopicArgs { + /** + * Indicates whether the topic can be deleted. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * A map of string key/value pairs of topic configurations. + */ + configuration?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The name of the topic. + */ + name?: pulumi.Input; + /** + * The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if allow_deletion is set to true (defaults to false). + */ + partitionCount?: pulumi.Input; + /** + * Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both replication_factor and partition_count must be -1. Mutually exclusive with partition_count and replication_factor. + */ + replicaAssignments?: pulumi.Input[]>; + /** + * The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance. + */ + replicationFactor?: pulumi.Input; +} diff --git a/pulumi-redpanda/tsconfig.json b/pulumi-redpanda/tsconfig.json new file mode 100644 index 00000000..ee7da1a9 --- /dev/null +++ b/pulumi-redpanda/tsconfig.json @@ -0,0 +1,48 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "ES2020", + "module": "commonjs", + "moduleResolution": "node", + "declaration": true, + "sourceMap": true, + "stripInternal": true, + "experimentalDecorators": true, + "noFallthroughCasesInSwitch": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + }, + "files": [ + "acl.ts", + "cluster.ts", + "config/index.ts", + "config/vars.ts", + "getCluster.ts", + "getNetwork.ts", + "getRegion.ts", + "getRegions.ts", + "getResourceGroup.ts", + "getSchema.ts", + "getServerlessCluster.ts", + "getServerlessRegions.ts", + "getThroughputTiers.ts", + "index.ts", + "network.ts", + "pipeline.ts", + "provider.ts", + "resourceGroup.ts", + "role.ts", + "roleAssignment.ts", + "schema.ts", + "schemaRegistryAcl.ts", + "serverlessCluster.ts", + "serverlessPrivateLink.ts", + "topic.ts", + "types/index.ts", + "types/input.ts", + "types/output.ts", + "user.ts", + "utilities.ts" + ] +} diff --git a/pulumi-redpanda/types/index.ts b/pulumi-redpanda/types/index.ts new file mode 100644 index 00000000..f0db2744 --- /dev/null +++ b/pulumi-redpanda/types/index.ts @@ -0,0 +1,13 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as utilities from "../utilities"; + +// Export sub-modules: +import * as input from "./input"; +import * as output from "./output"; + +export { + input, + output, +}; diff --git a/pulumi-redpanda/types/input.ts b/pulumi-redpanda/types/input.ts new file mode 100644 index 00000000..148b0fd7 --- /dev/null +++ b/pulumi-redpanda/types/input.ts @@ -0,0 +1,1099 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; + +export interface ClusterAwsPrivateLink { + /** + * The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedPrincipals: pulumi.Input[]>; + /** + * Whether Console is connected via PrivateLink. + */ + connectConsole: pulumi.Input; + /** + * Whether AWS PrivateLink is enabled. + */ + enabled: pulumi.Input; + /** + * Current status of the PrivateLink configuration. + */ + status?: pulumi.Input; + /** + * Supported regions for AWS PrivateLink. + */ + supportedRegions?: pulumi.Input[]>; +} + +export interface ClusterAwsPrivateLinkStatus { + /** + * Port for Redpanda Console. + */ + consolePort?: pulumi.Input; + /** + * When the PrivateLink service was created. + */ + createdAt?: pulumi.Input; + /** + * When the PrivateLink service was deleted. + */ + deletedAt?: pulumi.Input; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort?: pulumi.Input; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort?: pulumi.Input; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort?: pulumi.Input; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort?: pulumi.Input; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort?: pulumi.Input; + /** + * The PrivateLink service ID. + */ + serviceId?: pulumi.Input; + /** + * The PrivateLink service name. + */ + serviceName?: pulumi.Input; + /** + * Current state of the PrivateLink service. + */ + serviceState?: pulumi.Input; + /** + * List of VPC endpoint connections. + */ + vpcEndpointConnections?: pulumi.Input[]>; +} + +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnection { + /** + * The connection ID. + */ + connectionId?: pulumi.Input; + /** + * When the endpoint connection was created. + */ + createdAt?: pulumi.Input; + /** + * DNS entries for the endpoint. + */ + dnsEntries?: pulumi.Input[]>; + /** + * The endpoint connection ID. + */ + id?: pulumi.Input; + /** + * ARNs of associated load balancers. + */ + loadBalancerArns?: pulumi.Input[]>; + /** + * Owner of the endpoint connection. + */ + owner?: pulumi.Input; + /** + * State of the endpoint connection. + */ + state?: pulumi.Input; +} + +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry { + /** + * The DNS name. + */ + dnsName?: pulumi.Input; + /** + * The hosted zone ID. + */ + hostedZoneId?: pulumi.Input; +} + +export interface ClusterAzurePrivateLink { + /** + * The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedSubscriptions: pulumi.Input[]>; + /** + * Whether Console is connected in Redpanda Azure Private Link Service. + */ + connectConsole: pulumi.Input; + /** + * Whether Redpanda Azure Private Link Endpoint Service is enabled. + */ + enabled: pulumi.Input; + /** + * Current status of the Private Link configuration. + */ + status?: pulumi.Input; +} + +export interface ClusterAzurePrivateLinkStatus { + /** + * List of approved Azure subscription IDs. + */ + approvedSubscriptions?: pulumi.Input[]>; + /** + * Port for Redpanda Console. + */ + consolePort?: pulumi.Input; + /** + * When the Private Link service was created. + */ + createdAt?: pulumi.Input; + /** + * When the Private Link service was deleted. + */ + deletedAt?: pulumi.Input; + /** + * DNS A record for the service. + */ + dnsARecord?: pulumi.Input; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort?: pulumi.Input; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort?: pulumi.Input; + /** + * List of private endpoint connections. + */ + privateEndpointConnections?: pulumi.Input[]>; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort?: pulumi.Input; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort?: pulumi.Input; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort?: pulumi.Input; + /** + * The Private Link service ID. + */ + serviceId?: pulumi.Input; + /** + * The Private Link service name. + */ + serviceName?: pulumi.Input; +} + +export interface ClusterAzurePrivateLinkStatusPrivateEndpointConnection { + /** + * ID of the connection. + */ + connectionId?: pulumi.Input; + /** + * Name of the connection. + */ + connectionName?: pulumi.Input; + /** + * When the endpoint connection was created. + */ + createdAt?: pulumi.Input; + /** + * ID of the private endpoint. + */ + privateEndpointId?: pulumi.Input; + /** + * Name of the private endpoint. + */ + privateEndpointName?: pulumi.Input; + /** + * Status of the endpoint connection. + */ + status?: pulumi.Input; +} + +export interface ClusterCloudStorage { + /** + * AWS cloud storage configuration. + */ + aws?: pulumi.Input; + /** + * Azure cloud storage configuration. + */ + azure?: pulumi.Input; + /** + * GCP cloud storage configuration. + */ + gcp?: pulumi.Input; + /** + * If true, cloud storage is not deleted when the cluster is destroyed. + */ + skipDestroy?: pulumi.Input; +} + +export interface ClusterCloudStorageAws { + /** + * ARN of the AWS S3 bucket. + */ + arn?: pulumi.Input; +} + +export interface ClusterCloudStorageAzure { + /** + * Name of the Azure storage container. + */ + containerName?: pulumi.Input; + /** + * Name of the Azure storage account. + */ + storageAccountName?: pulumi.Input; +} + +export interface ClusterCloudStorageGcp { + /** + * Name of the GCP storage bucket. + */ + name?: pulumi.Input; +} + +export interface ClusterClusterConfiguration { + /** + * Custom properties for the cluster in JSON format. + */ + customPropertiesJson?: pulumi.Input; +} + +export interface ClusterCustomerManagedResources { + aws?: pulumi.Input; + gcp?: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAws { + agentInstanceProfile: pulumi.Input; + cloudStorageBucket: pulumi.Input; + clusterSecurityGroup: pulumi.Input; + connectorsNodeGroupInstanceProfile: pulumi.Input; + connectorsSecurityGroup: pulumi.Input; + k8sClusterRole: pulumi.Input; + nodeSecurityGroup: pulumi.Input; + permissionsBoundaryPolicy: pulumi.Input; + redpandaAgentSecurityGroup: pulumi.Input; + redpandaConnectNodeGroupInstanceProfile?: pulumi.Input; + redpandaConnectSecurityGroup?: pulumi.Input; + redpandaNodeGroupInstanceProfile: pulumi.Input; + redpandaNodeGroupSecurityGroup: pulumi.Input; + utilityNodeGroupInstanceProfile: pulumi.Input; + utilitySecurityGroup: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsAgentInstanceProfile { + /** + * ARN for the agent instance profile + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsCloudStorageBucket { + /** + * ARN for the cloud storage bucket + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsClusterSecurityGroup { + /** + * ARN for the cluster security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile { + /** + * ARN for the connectors node group instance profile + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup { + /** + * ARN for the connectors security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsK8sClusterRole { + /** + * ARN for the Kubernetes cluster role + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsNodeSecurityGroup { + /** + * ARN for the node security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy { + /** + * ARN for the permissions boundary policy + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup { + /** + * ARN for the redpanda agent security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile { + /** + * ARN for the Redpanda Connect node group instance profile + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup { + /** + * ARN for the Redpanda Connect security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile { + /** + * ARN for the redpanda node group instance profile + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup { + /** + * ARN for the redpanda node group security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile { + /** + * ARN for the utility node group instance profile + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesAwsUtilitySecurityGroup { + /** + * ARN for the utility security group + */ + arn: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcp { + /** + * GCP service account for the agent. + */ + agentServiceAccount: pulumi.Input; + /** + * GCP service account for managed connectors. + */ + connectorServiceAccount: pulumi.Input; + /** + * GCP service account for Redpanda Console. + */ + consoleServiceAccount: pulumi.Input; + /** + * GCP service account for GCP Kubernetes Engine (GKE). + */ + gkeServiceAccount: pulumi.Input; + /** + * NAT subnet name if GCP Private Service Connect is enabled. + */ + pscNatSubnetName?: pulumi.Input; + /** + * GCP service account for the Redpanda cluster. + */ + redpandaClusterServiceAccount: pulumi.Input; + /** + * GCP subnet where Redpanda cluster is deployed. + */ + subnet: pulumi.Input; + /** + * GCP storage bucket for Tiered storage. + */ + tieredStorageBucket: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpAgentServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpConnectorServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpConsoleServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpGkeServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount { + /** + * GCP service account email. + */ + email: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpSubnet { + /** + * Kubernetes Master IPv4 range, e.g. 10.0.0.0/24. + */ + k8sMasterIpv4Range: pulumi.Input; + /** + * Subnet name. + */ + name: pulumi.Input; + /** + * Secondary IPv4 range for pods. + */ + secondaryIpv4RangePods: pulumi.Input; + /** + * Secondary IPv4 range for services. + */ + secondaryIpv4RangeServices: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods { + /** + * Secondary IPv4 range name for pods. + */ + name: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices { + /** + * Secondary IPv4 range name for services. + */ + name: pulumi.Input; +} + +export interface ClusterCustomerManagedResourcesGcpTieredStorageBucket { + /** + * GCP storage bucket name. + */ + name: pulumi.Input; +} + +export interface ClusterGcpPrivateServiceConnect { + /** + * List of consumers that are allowed to connect to Redpanda GCP PSC (Private Service Connect) service attachment. + */ + consumerAcceptLists: pulumi.Input[]>; + /** + * Whether Redpanda GCP Private Service Connect is enabled. + */ + enabled: pulumi.Input; + /** + * Whether global access is enabled. + */ + globalAccessEnabled: pulumi.Input; + /** + * Current status of the Private Service Connect configuration. + */ + status?: pulumi.Input; +} + +export interface ClusterGcpPrivateServiceConnectConsumerAcceptList { + /** + * Either the GCP project number or its alphanumeric ID. + */ + source: pulumi.Input; +} + +export interface ClusterGcpPrivateServiceConnectStatus { + /** + * List of connected endpoints. + */ + connectedEndpoints?: pulumi.Input[]>; + /** + * When the Private Service Connect service was created. + */ + createdAt?: pulumi.Input; + /** + * When the Private Service Connect service was deleted. + */ + deletedAt?: pulumi.Input; + /** + * DNS A records for the service. + */ + dnsARecords?: pulumi.Input[]>; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort?: pulumi.Input; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort?: pulumi.Input; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort?: pulumi.Input; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort?: pulumi.Input; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort?: pulumi.Input; + /** + * Hostname for the seed brokers. + */ + seedHostname?: pulumi.Input; + /** + * The service attachment identifier. + */ + serviceAttachment?: pulumi.Input; +} + +export interface ClusterGcpPrivateServiceConnectStatusConnectedEndpoint { + /** + * The connection ID. + */ + connectionId?: pulumi.Input; + /** + * The consumer network. + */ + consumerNetwork?: pulumi.Input; + /** + * The endpoint address. + */ + endpoint?: pulumi.Input; + /** + * Status of the endpoint connection. + */ + status?: pulumi.Input; +} + +export interface ClusterHttpProxy { + /** + * All HTTP proxy endpoint variants. + */ + allUrls?: pulumi.Input; + /** + * mTLS configuration. + */ + mtls?: pulumi.Input; + /** + * SASL configuration. + */ + sasl?: pulumi.Input; + /** + * The HTTP Proxy URL. + */ + url?: pulumi.Input; +} + +export interface ClusterHttpProxyAllUrls { + /** + * mTLS endpoint. + */ + mtls?: pulumi.Input; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls?: pulumi.Input; + /** + * Private link SASL endpoint. + */ + privateLinkSasl?: pulumi.Input; + /** + * SASL endpoint. + */ + sasl?: pulumi.Input; +} + +export interface ClusterHttpProxyMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: pulumi.Input[]>; + /** + * Whether mTLS is enabled. + */ + enabled?: pulumi.Input; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: pulumi.Input[]>; +} + +export interface ClusterHttpProxySasl { + /** + * Whether SASL is enabled. + */ + enabled?: pulumi.Input; +} + +export interface ClusterKafkaApi { + /** + * All seed broker endpoint variants. + */ + allSeedBrokers?: pulumi.Input; + /** + * mTLS configuration. + */ + mtls?: pulumi.Input; + /** + * SASL configuration. + */ + sasl?: pulumi.Input; + /** + * List of Kafka broker addresses. + */ + seedBrokers?: pulumi.Input[]>; +} + +export interface ClusterKafkaApiAllSeedBrokers { + /** + * mTLS endpoint. + */ + mtls?: pulumi.Input; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls?: pulumi.Input; + /** + * Private link SASL endpoint. + */ + privateLinkSasl?: pulumi.Input; + /** + * SASL endpoint. + */ + sasl?: pulumi.Input; +} + +export interface ClusterKafkaApiMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: pulumi.Input[]>; + /** + * Whether mTLS is enabled. + */ + enabled?: pulumi.Input; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: pulumi.Input[]>; +} + +export interface ClusterKafkaApiSasl { + /** + * Whether SASL is enabled. + */ + enabled?: pulumi.Input; +} + +export interface ClusterKafkaConnect { + /** + * Whether Kafka Connect is enabled. + */ + enabled?: pulumi.Input; +} + +export interface ClusterMaintenanceWindowConfig { + /** + * If true, maintenance can occur at any time. + */ + anytime?: pulumi.Input; + dayHour?: pulumi.Input; + /** + * If true, maintenance window is unspecified. + */ + unspecified?: pulumi.Input; +} + +export interface ClusterMaintenanceWindowConfigDayHour { + /** + * Day of week. + */ + dayOfWeek?: pulumi.Input; + /** + * Hour of day. + */ + hourOfDay?: pulumi.Input; +} + +export interface ClusterPrometheus { + /** + * The Prometheus metrics endpoint URL. + */ + url?: pulumi.Input; +} + +export interface ClusterRedpandaConsole { + /** + * The Redpanda Console URL. + */ + url?: pulumi.Input; +} + +export interface ClusterSchemaRegistry { + /** + * All schema registry endpoint variants. + */ + allUrls?: pulumi.Input; + /** + * mTLS configuration. + */ + mtls?: pulumi.Input; + /** + * The Schema Registry URL. + */ + url?: pulumi.Input; +} + +export interface ClusterSchemaRegistryAllUrls { + /** + * mTLS endpoint. + */ + mtls?: pulumi.Input; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls?: pulumi.Input; + /** + * Private link SASL endpoint. + */ + privateLinkSasl?: pulumi.Input; + /** + * SASL endpoint. + */ + sasl?: pulumi.Input; +} + +export interface ClusterSchemaRegistryMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: pulumi.Input[]>; + /** + * Whether mTLS is enabled. + */ + enabled?: pulumi.Input; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: pulumi.Input[]>; +} + +export interface ClusterStateDescription { + /** + * Error code if cluster is in error state. + */ + code?: pulumi.Input; + /** + * Detailed error message if cluster is in error state. + */ + message?: pulumi.Input; +} + +export interface ClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; +} + +export interface GetClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + read?: string; +} + +export interface GetClusterTimeoutsArgs { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + read?: pulumi.Input; +} + +export interface NetworkCustomerManagedResources { + aws?: pulumi.Input; + gcp?: pulumi.Input; +} + +export interface NetworkCustomerManagedResourcesAws { + dynamodbTable: pulumi.Input; + managementBucket: pulumi.Input; + privateSubnets: pulumi.Input; + vpc: pulumi.Input; +} + +export interface NetworkCustomerManagedResourcesAwsDynamodbTable { + /** + * AWS DynamoDB table identifier + */ + arn: pulumi.Input; +} + +export interface NetworkCustomerManagedResourcesAwsManagementBucket { + /** + * AWS storage bucket identifier + */ + arn: pulumi.Input; +} + +export interface NetworkCustomerManagedResourcesAwsPrivateSubnets { + /** + * AWS private subnet identifiers + */ + arns: pulumi.Input[]>; +} + +export interface NetworkCustomerManagedResourcesAwsVpc { + /** + * AWS VPC identifier + */ + arn: pulumi.Input; +} + +export interface NetworkCustomerManagedResourcesGcp { + managementBucket: pulumi.Input; + /** + * Name of user-created network where the Redpanda cluster is deployed + */ + networkName: pulumi.Input; + /** + * GCP project ID where the network is created + */ + networkProjectId: pulumi.Input; +} + +export interface NetworkCustomerManagedResourcesGcpManagementBucket { + /** + * GCP storage bucket name for storing the state of Redpanda cluster deployment + */ + name: pulumi.Input; +} + +export interface NetworkTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; +} + +export interface PipelineResources { + /** + * Amount of CPU to allocate for the pipeline. + */ + cpuShares?: pulumi.Input; + /** + * Amount of memory to allocate for the pipeline. + */ + memoryShares?: pulumi.Input; +} + +export interface PipelineServiceAccount { + /** + * The client ID for the service account. + */ + clientId: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + clientSecret: pulumi.Input; + /** + * Version number for client_secret. Increment to trigger a secret update. + */ + secretVersion?: pulumi.Input; +} + +export interface PipelineStatus { + /** + * Error message if the pipeline is in an error state. + */ + error?: pulumi.Input; +} + +export interface PipelineTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; +} + +export interface SchemaReference { + /** + * The name of the referenced schema. + */ + name: pulumi.Input; + /** + * The subject of the referenced schema. + */ + subject: pulumi.Input; + /** + * The version of the referenced schema. + */ + version: pulumi.Input; +} + +export interface ServerlessClusterDataplaneApi { + /** + * Private Dataplane API URL + */ + privateUrl?: pulumi.Input; + /** + * Public Dataplane API URL + */ + url?: pulumi.Input; +} + +export interface ServerlessClusterKafkaApi { + /** + * Private Kafka API seed brokers (bootstrap servers) + */ + privateSeedBrokers?: pulumi.Input[]>; + /** + * Public Kafka API seed brokers (bootstrap servers) + */ + seedBrokers?: pulumi.Input[]>; +} + +export interface ServerlessClusterNetworkingConfig { + /** + * Private network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + private?: pulumi.Input; + /** + * Public network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + public?: pulumi.Input; +} + +export interface ServerlessClusterPlannedDeletion { + /** + * Timestamp after which the cluster will be deleted. + */ + deleteAfter?: pulumi.Input; + /** + * Reason for the planned deletion. + */ + reason?: pulumi.Input; +} + +export interface ServerlessClusterPrometheus { + /** + * Private Prometheus metrics URL + */ + privateUrl?: pulumi.Input; + /** + * Public Prometheus metrics URL + */ + url?: pulumi.Input; +} + +export interface ServerlessClusterSchemaRegistry { + /** + * Private Schema Registry URL + */ + privateUrl?: pulumi.Input; + /** + * Public Schema Registry URL + */ + url?: pulumi.Input; +} + +export interface ServerlessPrivateLinkCloudProviderConfig { + /** + * AWS-specific configuration. Required when cloud_provider is 'aws'. + */ + aws?: pulumi.Input; +} + +export interface ServerlessPrivateLinkCloudProviderConfigAws { + /** + * AWS principals (ARNs) allowed to connect to the private link endpoint + */ + allowedPrincipals: pulumi.Input[]>; +} + +export interface ServerlessPrivateLinkStatus { + /** + * AWS-specific status information + */ + aws?: pulumi.Input; +} + +export interface ServerlessPrivateLinkStatusAws { + /** + * Availability zones where the private link endpoint service is available + */ + availabilityZones?: pulumi.Input[]>; + /** + * VPC endpoint service name for connecting to the private link + */ + vpcEndpointServiceName?: pulumi.Input; +} + +export interface TopicReplicaAssignment { + /** + * A partition to create. + */ + partitionId: pulumi.Input; + /** + * The broker IDs the partition replicas are assigned to. + */ + replicaIds: pulumi.Input[]>; +} diff --git a/pulumi-redpanda/types/output.ts b/pulumi-redpanda/types/output.ts new file mode 100644 index 00000000..e9698709 --- /dev/null +++ b/pulumi-redpanda/types/output.ts @@ -0,0 +1,1994 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; + +export interface ClusterAwsPrivateLink { + /** + * The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedPrincipals: string[]; + /** + * Whether Console is connected via PrivateLink. + */ + connectConsole: boolean; + /** + * Whether AWS PrivateLink is enabled. + */ + enabled: boolean; + /** + * Current status of the PrivateLink configuration. + */ + status: outputs.ClusterAwsPrivateLinkStatus; + /** + * Supported regions for AWS PrivateLink. + */ + supportedRegions: string[]; +} + +export interface ClusterAwsPrivateLinkStatus { + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the PrivateLink service was created. + */ + createdAt: string; + /** + * When the PrivateLink service was deleted. + */ + deletedAt: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The PrivateLink service ID. + */ + serviceId: string; + /** + * The PrivateLink service name. + */ + serviceName: string; + /** + * Current state of the PrivateLink service. + */ + serviceState: string; + /** + * List of VPC endpoint connections. + */ + vpcEndpointConnections: outputs.ClusterAwsPrivateLinkStatusVpcEndpointConnection[]; +} + +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnection { + /** + * The connection ID. + */ + connectionId: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * DNS entries for the endpoint. + */ + dnsEntries: outputs.ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry[]; + /** + * The endpoint connection ID. + */ + id: string; + /** + * ARNs of associated load balancers. + */ + loadBalancerArns: string[]; + /** + * Owner of the endpoint connection. + */ + owner: string; + /** + * State of the endpoint connection. + */ + state: string; +} + +export interface ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry { + /** + * The DNS name. + */ + dnsName: string; + /** + * The hosted zone ID. + */ + hostedZoneId: string; +} + +export interface ClusterAzurePrivateLink { + /** + * The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*). + */ + allowedSubscriptions: string[]; + /** + * Whether Console is connected in Redpanda Azure Private Link Service. + */ + connectConsole: boolean; + /** + * Whether Redpanda Azure Private Link Endpoint Service is enabled. + */ + enabled: boolean; + /** + * Current status of the Private Link configuration. + */ + status: outputs.ClusterAzurePrivateLinkStatus; +} + +export interface ClusterAzurePrivateLinkStatus { + /** + * List of approved Azure subscription IDs. + */ + approvedSubscriptions: string[]; + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the Private Link service was created. + */ + createdAt: string; + /** + * When the Private Link service was deleted. + */ + deletedAt: string; + /** + * DNS A record for the service. + */ + dnsARecord: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * List of private endpoint connections. + */ + privateEndpointConnections: outputs.ClusterAzurePrivateLinkStatusPrivateEndpointConnection[]; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The Private Link service ID. + */ + serviceId: string; + /** + * The Private Link service name. + */ + serviceName: string; +} + +export interface ClusterAzurePrivateLinkStatusPrivateEndpointConnection { + /** + * ID of the connection. + */ + connectionId: string; + /** + * Name of the connection. + */ + connectionName: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * ID of the private endpoint. + */ + privateEndpointId: string; + /** + * Name of the private endpoint. + */ + privateEndpointName: string; + /** + * Status of the endpoint connection. + */ + status: string; +} + +export interface ClusterCloudStorage { + /** + * AWS cloud storage configuration. + */ + aws: outputs.ClusterCloudStorageAws; + /** + * Azure cloud storage configuration. + */ + azure: outputs.ClusterCloudStorageAzure; + /** + * GCP cloud storage configuration. + */ + gcp: outputs.ClusterCloudStorageGcp; + /** + * If true, cloud storage is not deleted when the cluster is destroyed. + */ + skipDestroy?: boolean; +} + +export interface ClusterCloudStorageAws { + /** + * ARN of the AWS S3 bucket. + */ + arn: string; +} + +export interface ClusterCloudStorageAzure { + /** + * Name of the Azure storage container. + */ + containerName: string; + /** + * Name of the Azure storage account. + */ + storageAccountName: string; +} + +export interface ClusterCloudStorageGcp { + /** + * Name of the GCP storage bucket. + */ + name: string; +} + +export interface ClusterClusterConfiguration { + /** + * Custom properties for the cluster in JSON format. + */ + customPropertiesJson?: string; +} + +export interface ClusterCustomerManagedResources { + aws?: outputs.ClusterCustomerManagedResourcesAws; + gcp?: outputs.ClusterCustomerManagedResourcesGcp; +} + +export interface ClusterCustomerManagedResourcesAws { + agentInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsAgentInstanceProfile; + cloudStorageBucket: outputs.ClusterCustomerManagedResourcesAwsCloudStorageBucket; + clusterSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsClusterSecurityGroup; + connectorsNodeGroupInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile; + connectorsSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup; + k8sClusterRole: outputs.ClusterCustomerManagedResourcesAwsK8sClusterRole; + nodeSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsNodeSecurityGroup; + permissionsBoundaryPolicy: outputs.ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy; + redpandaAgentSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup; + redpandaConnectNodeGroupInstanceProfile?: outputs.ClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile; + redpandaConnectSecurityGroup?: outputs.ClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup; + redpandaNodeGroupInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile; + redpandaNodeGroupSecurityGroup: outputs.ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup; + utilityNodeGroupInstanceProfile: outputs.ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile; + utilitySecurityGroup: outputs.ClusterCustomerManagedResourcesAwsUtilitySecurityGroup; +} + +export interface ClusterCustomerManagedResourcesAwsAgentInstanceProfile { + /** + * ARN for the agent instance profile + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsCloudStorageBucket { + /** + * ARN for the cloud storage bucket + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsClusterSecurityGroup { + /** + * ARN for the cluster security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile { + /** + * ARN for the connectors node group instance profile + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup { + /** + * ARN for the connectors security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsK8sClusterRole { + /** + * ARN for the Kubernetes cluster role + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsNodeSecurityGroup { + /** + * ARN for the node security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy { + /** + * ARN for the permissions boundary policy + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup { + /** + * ARN for the redpanda agent security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile { + /** + * ARN for the Redpanda Connect node group instance profile + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup { + /** + * ARN for the Redpanda Connect security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile { + /** + * ARN for the redpanda node group instance profile + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup { + /** + * ARN for the redpanda node group security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile { + /** + * ARN for the utility node group instance profile + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesAwsUtilitySecurityGroup { + /** + * ARN for the utility security group + */ + arn: string; +} + +export interface ClusterCustomerManagedResourcesGcp { + /** + * GCP service account for the agent. + */ + agentServiceAccount: outputs.ClusterCustomerManagedResourcesGcpAgentServiceAccount; + /** + * GCP service account for managed connectors. + */ + connectorServiceAccount: outputs.ClusterCustomerManagedResourcesGcpConnectorServiceAccount; + /** + * GCP service account for Redpanda Console. + */ + consoleServiceAccount: outputs.ClusterCustomerManagedResourcesGcpConsoleServiceAccount; + /** + * GCP service account for GCP Kubernetes Engine (GKE). + */ + gkeServiceAccount: outputs.ClusterCustomerManagedResourcesGcpGkeServiceAccount; + /** + * NAT subnet name if GCP Private Service Connect is enabled. + */ + pscNatSubnetName?: string; + /** + * GCP service account for the Redpanda cluster. + */ + redpandaClusterServiceAccount: outputs.ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount; + /** + * GCP subnet where Redpanda cluster is deployed. + */ + subnet: outputs.ClusterCustomerManagedResourcesGcpSubnet; + /** + * GCP storage bucket for Tiered storage. + */ + tieredStorageBucket: outputs.ClusterCustomerManagedResourcesGcpTieredStorageBucket; +} + +export interface ClusterCustomerManagedResourcesGcpAgentServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface ClusterCustomerManagedResourcesGcpConnectorServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface ClusterCustomerManagedResourcesGcpConsoleServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface ClusterCustomerManagedResourcesGcpGkeServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface ClusterCustomerManagedResourcesGcpSubnet { + /** + * Kubernetes Master IPv4 range, e.g. 10.0.0.0/24. + */ + k8sMasterIpv4Range: string; + /** + * Subnet name. + */ + name: string; + /** + * Secondary IPv4 range for pods. + */ + secondaryIpv4RangePods: outputs.ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods; + /** + * Secondary IPv4 range for services. + */ + secondaryIpv4RangeServices: outputs.ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices; +} + +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods { + /** + * Secondary IPv4 range name for pods. + */ + name: string; +} + +export interface ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices { + /** + * Secondary IPv4 range name for services. + */ + name: string; +} + +export interface ClusterCustomerManagedResourcesGcpTieredStorageBucket { + /** + * GCP storage bucket name. + */ + name: string; +} + +export interface ClusterGcpPrivateServiceConnect { + /** + * List of consumers that are allowed to connect to Redpanda GCP PSC (Private Service Connect) service attachment. + */ + consumerAcceptLists: outputs.ClusterGcpPrivateServiceConnectConsumerAcceptList[]; + /** + * Whether Redpanda GCP Private Service Connect is enabled. + */ + enabled: boolean; + /** + * Whether global access is enabled. + */ + globalAccessEnabled: boolean; + /** + * Current status of the Private Service Connect configuration. + */ + status: outputs.ClusterGcpPrivateServiceConnectStatus; +} + +export interface ClusterGcpPrivateServiceConnectConsumerAcceptList { + /** + * Either the GCP project number or its alphanumeric ID. + */ + source: string; +} + +export interface ClusterGcpPrivateServiceConnectStatus { + /** + * List of connected endpoints. + */ + connectedEndpoints: outputs.ClusterGcpPrivateServiceConnectStatusConnectedEndpoint[]; + /** + * When the Private Service Connect service was created. + */ + createdAt: string; + /** + * When the Private Service Connect service was deleted. + */ + deletedAt: string; + /** + * DNS A records for the service. + */ + dnsARecords: string[]; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * Hostname for the seed brokers. + */ + seedHostname: string; + /** + * The service attachment identifier. + */ + serviceAttachment: string; +} + +export interface ClusterGcpPrivateServiceConnectStatusConnectedEndpoint { + /** + * The connection ID. + */ + connectionId: string; + /** + * The consumer network. + */ + consumerNetwork: string; + /** + * The endpoint address. + */ + endpoint: string; + /** + * Status of the endpoint connection. + */ + status: string; +} + +export interface ClusterHttpProxy { + /** + * All HTTP proxy endpoint variants. + */ + allUrls: outputs.ClusterHttpProxyAllUrls; + /** + * mTLS configuration. + */ + mtls: outputs.ClusterHttpProxyMtls; + /** + * SASL configuration. + */ + sasl: outputs.ClusterHttpProxySasl; + /** + * The HTTP Proxy URL. + */ + url: string; +} + +export interface ClusterHttpProxyAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} + +export interface ClusterHttpProxyMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: string[]; +} + +export interface ClusterHttpProxySasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} + +export interface ClusterKafkaApi { + /** + * All seed broker endpoint variants. + */ + allSeedBrokers: outputs.ClusterKafkaApiAllSeedBrokers; + /** + * mTLS configuration. + */ + mtls: outputs.ClusterKafkaApiMtls; + /** + * SASL configuration. + */ + sasl: outputs.ClusterKafkaApiSasl; + /** + * List of Kafka broker addresses. + */ + seedBrokers: string[]; +} + +export interface ClusterKafkaApiAllSeedBrokers { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} + +export interface ClusterKafkaApiMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: string[]; +} + +export interface ClusterKafkaApiSasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} + +export interface ClusterKafkaConnect { + /** + * Whether Kafka Connect is enabled. + */ + enabled: boolean; +} + +export interface ClusterMaintenanceWindowConfig { + /** + * If true, maintenance can occur at any time. + */ + anytime?: boolean; + dayHour?: outputs.ClusterMaintenanceWindowConfigDayHour; + /** + * If true, maintenance window is unspecified. + */ + unspecified: boolean; +} + +export interface ClusterMaintenanceWindowConfigDayHour { + /** + * Day of week. + */ + dayOfWeek?: string; + /** + * Hour of day. + */ + hourOfDay?: number; +} + +export interface ClusterPrometheus { + /** + * The Prometheus metrics endpoint URL. + */ + url: string; +} + +export interface ClusterRedpandaConsole { + /** + * The Redpanda Console URL. + */ + url: string; +} + +export interface ClusterSchemaRegistry { + /** + * All schema registry endpoint variants. + */ + allUrls: outputs.ClusterSchemaRegistryAllUrls; + /** + * mTLS configuration. + */ + mtls?: outputs.ClusterSchemaRegistryMtls; + /** + * The Schema Registry URL. + */ + url: string; +} + +export interface ClusterSchemaRegistryAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} + +export interface ClusterSchemaRegistryMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems?: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication. + */ + principalMappingRules?: string[]; +} + +export interface ClusterStateDescription { + /** + * Error code if cluster is in error state. + */ + code: number; + /** + * Detailed error message if cluster is in error state. + */ + message: string; +} + +export interface ClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; +} + +export interface GetClusterAwsPrivateLink { + /** + * The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. + */ + allowedPrincipals: string[]; + /** + * Whether Console is connected via PrivateLink. + */ + connectConsole: boolean; + /** + * Whether AWS PrivateLink is enabled. + */ + enabled: boolean; + /** + * Current status of the PrivateLink configuration. + */ + status: outputs.GetClusterAwsPrivateLinkStatus; + /** + * Supported regions for AWS PrivateLink. + */ + supportedRegions: string[]; +} + +export interface GetClusterAwsPrivateLinkStatus { + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the PrivateLink service was created. + */ + createdAt: string; + /** + * When the PrivateLink service was deleted. + */ + deletedAt: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The PrivateLink service ID. + */ + serviceId: string; + /** + * The PrivateLink service name. + */ + serviceName: string; + /** + * Current state of the PrivateLink service. + */ + serviceState: string; + /** + * List of VPC endpoint connections. + */ + vpcEndpointConnections: outputs.GetClusterAwsPrivateLinkStatusVpcEndpointConnection[]; +} + +export interface GetClusterAwsPrivateLinkStatusVpcEndpointConnection { + /** + * The connection ID. + */ + connectionId: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * DNS entries for the endpoint. + */ + dnsEntries: outputs.GetClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry[]; + /** + * The endpoint connection ID. + */ + id: string; + /** + * ARNs of associated load balancers. + */ + loadBalancerArns: string[]; + /** + * Owner of the endpoint connection. + */ + owner: string; + /** + * State of the endpoint connection. + */ + state: string; +} + +export interface GetClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry { + /** + * The DNS name. + */ + dnsName: string; + /** + * The hosted zone ID. + */ + hostedZoneId: string; +} + +export interface GetClusterAzurePrivateLink { + /** + * The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. + */ + allowedSubscriptions: string[]; + /** + * Whether Console is connected in Redpanda Azure Private Link Service. + */ + connectConsole: boolean; + /** + * Whether Redpanda Azure Private Link Endpoint Service is enabled. + */ + enabled: boolean; + /** + * Current status of the Private Link configuration. + */ + status: outputs.GetClusterAzurePrivateLinkStatus; +} + +export interface GetClusterAzurePrivateLinkStatus { + /** + * List of approved Azure subscription IDs. + */ + approvedSubscriptions: string[]; + /** + * Port for Redpanda Console. + */ + consolePort: number; + /** + * When the Private Link service was created. + */ + createdAt: string; + /** + * When the Private Link service was deleted. + */ + deletedAt: string; + /** + * DNS A record for the service. + */ + dnsARecord: string; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * List of private endpoint connections. + */ + privateEndpointConnections: outputs.GetClusterAzurePrivateLinkStatusPrivateEndpointConnection[]; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * The Private Link service ID. + */ + serviceId: string; + /** + * The Private Link service name. + */ + serviceName: string; +} + +export interface GetClusterAzurePrivateLinkStatusPrivateEndpointConnection { + /** + * ID of the connection. + */ + connectionId: string; + /** + * Name of the connection. + */ + connectionName: string; + /** + * When the endpoint connection was created. + */ + createdAt: string; + /** + * ID of the private endpoint. + */ + privateEndpointId: string; + /** + * Name of the private endpoint. + */ + privateEndpointName: string; + /** + * Status of the endpoint connection. + */ + status: string; +} + +export interface GetClusterClusterConfiguration { + /** + * Custom properties for the cluster in JSON format. + */ + customPropertiesJson: string; +} + +export interface GetClusterCustomerManagedResources { + aws: outputs.GetClusterCustomerManagedResourcesAws; + gcp: outputs.GetClusterCustomerManagedResourcesGcp; +} + +export interface GetClusterCustomerManagedResourcesAws { + agentInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsAgentInstanceProfile; + cloudStorageBucket: outputs.GetClusterCustomerManagedResourcesAwsCloudStorageBucket; + clusterSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsClusterSecurityGroup; + connectorsNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile; + connectorsSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsConnectorsSecurityGroup; + k8sClusterRole: outputs.GetClusterCustomerManagedResourcesAwsK8sClusterRole; + nodeSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsNodeSecurityGroup; + permissionsBoundaryPolicy: outputs.GetClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy; + redpandaAgentSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup; + redpandaConnectNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile; + redpandaConnectSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup; + redpandaNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile; + redpandaNodeGroupSecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup; + utilityNodeGroupInstanceProfile: outputs.GetClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile; + utilitySecurityGroup: outputs.GetClusterCustomerManagedResourcesAwsUtilitySecurityGroup; +} + +export interface GetClusterCustomerManagedResourcesAwsAgentInstanceProfile { + /** + * ARN for the agent instance profile + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsCloudStorageBucket { + /** + * ARN for the cloud storage bucket + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsClusterSecurityGroup { + /** + * ARN for the cluster security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile { + /** + * ARN for the connectors node group instance profile + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsConnectorsSecurityGroup { + /** + * ARN for the connectors security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsK8sClusterRole { + /** + * ARN for the Kubernetes cluster role + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsNodeSecurityGroup { + /** + * ARN for the node security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy { + /** + * ARN for the permissions boundary policy + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup { + /** + * ARN for the redpanda agent security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsRedpandaConnectNodeGroupInstanceProfile { + /** + * ARN for the Redpanda Connect node group instance profile + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsRedpandaConnectSecurityGroup { + /** + * ARN for the Redpanda Connect security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile { + /** + * ARN for the redpanda node group instance profile + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup { + /** + * ARN for the redpanda node group security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile { + /** + * ARN for the utility node group instance profile + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesAwsUtilitySecurityGroup { + /** + * ARN for the utility security group + */ + arn: string; +} + +export interface GetClusterCustomerManagedResourcesGcp { + /** + * GCP service account for the agent. + */ + agentServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpAgentServiceAccount; + /** + * GCP service account for managed connectors. + */ + connectorServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpConnectorServiceAccount; + /** + * GCP service account for Redpanda Console. + */ + consoleServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpConsoleServiceAccount; + /** + * GCP service account for GCP Kubernetes Engine (GKE). + */ + gkeServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpGkeServiceAccount; + /** + * NAT subnet name if GCP Private Service Connect is enabled. + */ + pscNatSubnetName: string; + /** + * GCP service account for the Redpanda cluster. + */ + redpandaClusterServiceAccount: outputs.GetClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount; + /** + * GCP subnet where Redpanda cluster is deployed. + */ + subnet: outputs.GetClusterCustomerManagedResourcesGcpSubnet; + /** + * GCP storage bucket for Tiered storage. + */ + tieredStorageBucket: outputs.GetClusterCustomerManagedResourcesGcpTieredStorageBucket; +} + +export interface GetClusterCustomerManagedResourcesGcpAgentServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface GetClusterCustomerManagedResourcesGcpConnectorServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface GetClusterCustomerManagedResourcesGcpConsoleServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface GetClusterCustomerManagedResourcesGcpGkeServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface GetClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount { + /** + * GCP service account email. + */ + email: string; +} + +export interface GetClusterCustomerManagedResourcesGcpSubnet { + /** + * Kubernetes Master IPv4 range, e.g. 10.0.0.0/24. + */ + k8sMasterIpv4Range: string; + /** + * Subnet name. + */ + name: string; + /** + * Secondary IPv4 range for pods. + */ + secondaryIpv4RangePods: outputs.GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods; + /** + * Secondary IPv4 range for services. + */ + secondaryIpv4RangeServices: outputs.GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices; +} + +export interface GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods { + /** + * Secondary IPv4 range name for pods. + */ + name: string; +} + +export interface GetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices { + /** + * Secondary IPv4 range name for services. + */ + name: string; +} + +export interface GetClusterCustomerManagedResourcesGcpTieredStorageBucket { + /** + * GCP storage bucket name. + */ + name: string; +} + +export interface GetClusterGcpPrivateServiceConnect { + /** + * List of consumers that are allowed to connect to Redpanda GCP PSC service attachment. + */ + consumerAcceptLists: outputs.GetClusterGcpPrivateServiceConnectConsumerAcceptList[]; + /** + * Whether Redpanda GCP Private Service Connect is enabled. + */ + enabled: boolean; + /** + * Whether global access is enabled. + */ + globalAccessEnabled: boolean; + /** + * Current status of the Private Service Connect configuration. + */ + status: outputs.GetClusterGcpPrivateServiceConnectStatus; +} + +export interface GetClusterGcpPrivateServiceConnectConsumerAcceptList { + /** + * Either the GCP project number or its alphanumeric ID. + */ + source: string; +} + +export interface GetClusterGcpPrivateServiceConnectStatus { + /** + * List of connected endpoints. + */ + connectedEndpoints: outputs.GetClusterGcpPrivateServiceConnectStatusConnectedEndpoint[]; + /** + * When the Private Service Connect service was created. + */ + createdAt: string; + /** + * When the Private Service Connect service was deleted. + */ + deletedAt: string; + /** + * DNS A records for the service. + */ + dnsARecords: string[]; + /** + * Base port for Kafka API nodes. + */ + kafkaApiNodeBasePort: number; + /** + * Port for Kafka API seed brokers. + */ + kafkaApiSeedPort: number; + /** + * Base port for HTTP proxy nodes. + */ + redpandaProxyNodeBasePort: number; + /** + * Port for HTTP proxy. + */ + redpandaProxySeedPort: number; + /** + * Port for Schema Registry. + */ + schemaRegistrySeedPort: number; + /** + * Hostname for the seed brokers. + */ + seedHostname: string; + /** + * The service attachment identifier. + */ + serviceAttachment: string; +} + +export interface GetClusterGcpPrivateServiceConnectStatusConnectedEndpoint { + /** + * The connection ID. + */ + connectionId: string; + /** + * The consumer network. + */ + consumerNetwork: string; + /** + * The endpoint address. + */ + endpoint: string; + /** + * Status of the endpoint connection. + */ + status: string; +} + +export interface GetClusterHttpProxy { + /** + * All HTTP proxy endpoint variants. + */ + allUrls: outputs.GetClusterHttpProxyAllUrls; + /** + * mTLS configuration. + */ + mtls: outputs.GetClusterHttpProxyMtls; + /** + * SASL configuration. + */ + sasl: outputs.GetClusterHttpProxySasl; + /** + * The HTTP Proxy URL. + */ + url: string; +} + +export interface GetClusterHttpProxyAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} + +export interface GetClusterHttpProxyMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. + */ + principalMappingRules: string[]; +} + +export interface GetClusterHttpProxySasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} + +export interface GetClusterKafkaApi { + /** + * All seed broker endpoint variants. + */ + allSeedBrokers: outputs.GetClusterKafkaApiAllSeedBrokers; + /** + * mTLS configuration. + */ + mtls: outputs.GetClusterKafkaApiMtls; + /** + * SASL configuration. + */ + sasl: outputs.GetClusterKafkaApiSasl; + /** + * List of Kafka broker addresses. + */ + seedBrokers: string[]; +} + +export interface GetClusterKafkaApiAllSeedBrokers { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} + +export interface GetClusterKafkaApiMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. + */ + principalMappingRules: string[]; +} + +export interface GetClusterKafkaApiSasl { + /** + * Whether SASL is enabled. + */ + enabled: boolean; +} + +export interface GetClusterKafkaConnect { + /** + * Whether Kafka Connect is enabled. + */ + enabled: boolean; +} + +export interface GetClusterMaintenanceWindowConfig { + /** + * If true, maintenance can occur at any time. + */ + anytime: boolean; + dayHour: outputs.GetClusterMaintenanceWindowConfigDayHour; + /** + * If true, maintenance window is unspecified. + */ + unspecified: boolean; +} + +export interface GetClusterMaintenanceWindowConfigDayHour { + /** + * Day of week. + */ + dayOfWeek: string; + /** + * Hour of day. + */ + hourOfDay: number; +} + +export interface GetClusterPrometheus { + /** + * The Prometheus metrics endpoint URL. + */ + url: string; +} + +export interface GetClusterRedpandaConsole { + /** + * The Redpanda Console URL. + */ + url: string; +} + +export interface GetClusterSchemaRegistry { + /** + * All schema registry endpoint variants. + */ + allUrls: outputs.GetClusterSchemaRegistryAllUrls; + /** + * mTLS configuration. + */ + mtls: outputs.GetClusterSchemaRegistryMtls; + /** + * The Schema Registry URL. + */ + url: string; +} + +export interface GetClusterSchemaRegistryAllUrls { + /** + * mTLS endpoint. + */ + mtls: string; + /** + * Private link mTLS endpoint. + */ + privateLinkMtls: string; + /** + * Private link SASL endpoint. + */ + privateLinkSasl: string; + /** + * SASL endpoint. + */ + sasl: string; +} + +export interface GetClusterSchemaRegistryMtls { + /** + * CA certificate in PEM format. + */ + caCertificatesPems: string[]; + /** + * Whether mTLS is enabled. + */ + enabled: boolean; + /** + * Principal mapping rules for mTLS authentication. + */ + principalMappingRules: string[]; +} + +export interface GetClusterStateDescription { + /** + * Error code if cluster is in error state. + */ + code: number; + /** + * Detailed error message if cluster is in error state. + */ + message: string; +} + +export interface GetClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + read?: string; +} + +export interface GetNetworkCustomerManagedResources { + aws: outputs.GetNetworkCustomerManagedResourcesAws; + gcp: outputs.GetNetworkCustomerManagedResourcesGcp; +} + +export interface GetNetworkCustomerManagedResourcesAws { + dynamodbTable: outputs.GetNetworkCustomerManagedResourcesAwsDynamodbTable; + managementBucket: outputs.GetNetworkCustomerManagedResourcesAwsManagementBucket; + privateSubnets: outputs.GetNetworkCustomerManagedResourcesAwsPrivateSubnets; + vpc: outputs.GetNetworkCustomerManagedResourcesAwsVpc; +} + +export interface GetNetworkCustomerManagedResourcesAwsDynamodbTable { + /** + * AWS DynamoDB table identifier + */ + arn: string; +} + +export interface GetNetworkCustomerManagedResourcesAwsManagementBucket { + /** + * AWS storage bucket identifier + */ + arn: string; +} + +export interface GetNetworkCustomerManagedResourcesAwsPrivateSubnets { + /** + * AWS private subnet identifiers + */ + arns: string[]; +} + +export interface GetNetworkCustomerManagedResourcesAwsVpc { + /** + * AWS VPC identifier + */ + arn: string; +} + +export interface GetNetworkCustomerManagedResourcesGcp { + managementBucket: outputs.GetNetworkCustomerManagedResourcesGcpManagementBucket; + /** + * Name of user-created network where the Redpanda cluster is deployed + */ + networkName: string; + /** + * GCP project ID where the network is created + */ + networkProjectId: string; +} + +export interface GetNetworkCustomerManagedResourcesGcpManagementBucket { + /** + * GCP storage bucket name for storing the state of Redpanda cluster deployment + */ + name: string; +} + +export interface GetRegionsRegion { + /** + * Name of the region + */ + name: string; + /** + * Zones available in the region + */ + zones: string[]; +} + +export interface GetSchemaReference { + /** + * The name of the referenced schema. + */ + name: string; + /** + * The subject of the referenced schema. + */ + subject: string; + /** + * The version of the referenced schema. + */ + version: number; +} + +export interface GetServerlessRegionsServerlessRegion { + /** + * Cloud provider where the serverless regions exist + */ + cloudProvider: string; + /** + * Name of the serverless region + */ + name: string; + placement: outputs.GetServerlessRegionsServerlessRegionPlacement; + /** + * Time zone of the serverless region + */ + timeZone: string; +} + +export interface GetServerlessRegionsServerlessRegionPlacement { + /** + * Region available + */ + enabled: boolean; +} + +export interface GetThroughputTiersThroughputTier { + /** + * Cloud provider where the Throughput Tier is available + */ + cloudProvider: string; + /** + * Display name of the Throughput Tier + */ + displayName: string; + /** + * Unique name of the Throughput Tier + */ + name: string; +} + +export interface NetworkCustomerManagedResources { + aws?: outputs.NetworkCustomerManagedResourcesAws; + gcp?: outputs.NetworkCustomerManagedResourcesGcp; +} + +export interface NetworkCustomerManagedResourcesAws { + dynamodbTable: outputs.NetworkCustomerManagedResourcesAwsDynamodbTable; + managementBucket: outputs.NetworkCustomerManagedResourcesAwsManagementBucket; + privateSubnets: outputs.NetworkCustomerManagedResourcesAwsPrivateSubnets; + vpc: outputs.NetworkCustomerManagedResourcesAwsVpc; +} + +export interface NetworkCustomerManagedResourcesAwsDynamodbTable { + /** + * AWS DynamoDB table identifier + */ + arn: string; +} + +export interface NetworkCustomerManagedResourcesAwsManagementBucket { + /** + * AWS storage bucket identifier + */ + arn: string; +} + +export interface NetworkCustomerManagedResourcesAwsPrivateSubnets { + /** + * AWS private subnet identifiers + */ + arns: string[]; +} + +export interface NetworkCustomerManagedResourcesAwsVpc { + /** + * AWS VPC identifier + */ + arn: string; +} + +export interface NetworkCustomerManagedResourcesGcp { + managementBucket: outputs.NetworkCustomerManagedResourcesGcpManagementBucket; + /** + * Name of user-created network where the Redpanda cluster is deployed + */ + networkName: string; + /** + * GCP project ID where the network is created + */ + networkProjectId: string; +} + +export interface NetworkCustomerManagedResourcesGcpManagementBucket { + /** + * GCP storage bucket name for storing the state of Redpanda cluster deployment + */ + name: string; +} + +export interface NetworkTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; +} + +export interface PipelineResources { + /** + * Amount of CPU to allocate for the pipeline. + */ + cpuShares?: string; + /** + * Amount of memory to allocate for the pipeline. + */ + memoryShares?: string; +} + +export interface PipelineServiceAccount { + /** + * The client ID for the service account. + */ + clientId: string; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + clientSecret: string; + /** + * Version number for client_secret. Increment to trigger a secret update. + */ + secretVersion?: number; +} + +export interface PipelineStatus { + /** + * Error message if the pipeline is in an error state. + */ + error: string; +} + +export interface PipelineTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; +} + +export interface SchemaReference { + /** + * The name of the referenced schema. + */ + name: string; + /** + * The subject of the referenced schema. + */ + subject: string; + /** + * The version of the referenced schema. + */ + version: number; +} + +export interface ServerlessClusterDataplaneApi { + /** + * Private Dataplane API URL + */ + privateUrl: string; + /** + * Public Dataplane API URL + */ + url: string; +} + +export interface ServerlessClusterKafkaApi { + /** + * Private Kafka API seed brokers (bootstrap servers) + */ + privateSeedBrokers: string[]; + /** + * Public Kafka API seed brokers (bootstrap servers) + */ + seedBrokers: string[]; +} + +export interface ServerlessClusterNetworkingConfig { + /** + * Private network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + private: string; + /** + * Public network state. Valid values: STATE_UNSPECIFIED, STATE_DISABLED, STATE_ENABLED + */ + public: string; +} + +export interface ServerlessClusterPlannedDeletion { + /** + * Timestamp after which the cluster will be deleted. + */ + deleteAfter: string; + /** + * Reason for the planned deletion. + */ + reason: string; +} + +export interface ServerlessClusterPrometheus { + /** + * Private Prometheus metrics URL + */ + privateUrl: string; + /** + * Public Prometheus metrics URL + */ + url: string; +} + +export interface ServerlessClusterSchemaRegistry { + /** + * Private Schema Registry URL + */ + privateUrl: string; + /** + * Public Schema Registry URL + */ + url: string; +} + +export interface ServerlessPrivateLinkCloudProviderConfig { + /** + * AWS-specific configuration. Required when cloud_provider is 'aws'. + */ + aws?: outputs.ServerlessPrivateLinkCloudProviderConfigAws; +} + +export interface ServerlessPrivateLinkCloudProviderConfigAws { + /** + * AWS principals (ARNs) allowed to connect to the private link endpoint + */ + allowedPrincipals: string[]; +} + +export interface ServerlessPrivateLinkStatus { + /** + * AWS-specific status information + */ + aws: outputs.ServerlessPrivateLinkStatusAws; +} + +export interface ServerlessPrivateLinkStatusAws { + /** + * Availability zones where the private link endpoint service is available + */ + availabilityZones: string[]; + /** + * VPC endpoint service name for connecting to the private link + */ + vpcEndpointServiceName: string; +} + +export interface TopicReplicaAssignment { + /** + * A partition to create. + */ + partitionId: number; + /** + * The broker IDs the partition replicas are assigned to. + */ + replicaIds: number[]; +} + diff --git a/pulumi-redpanda/user.ts b/pulumi-redpanda/user.ts new file mode 100644 index 00000000..64b5ec87 --- /dev/null +++ b/pulumi-redpanda/user.ts @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class User extends pulumi.CustomResource { + /** + * Get an existing User 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. + */ + public static get(name: string, id: pulumi.Input, state?: UserState, opts?: pulumi.CustomResourceOptions): User { + return new User(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'redpanda:index/user:User'; + + /** + * Returns true if the given object is an instance of User. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is User { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === User.__pulumiType; + } + + /** + * Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + declare public readonly allowDeletion: pulumi.Output; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + declare public readonly clusterApiUrl: pulumi.Output; + /** + * Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information + */ + declare public readonly mechanism: pulumi.Output; + /** + * Name of the user, must be unique + */ + declare public readonly name: pulumi.Output; + /** + * Password of the user. Deprecated: use password_wo instead to avoid storing password in state. + * + * @deprecated Deprecated + */ + declare public readonly password: pulumi.Output; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + declare public readonly passwordWo: pulumi.Output; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + declare public readonly passwordWoVersion: pulumi.Output; + + /** + * Create a User resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: UserArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: UserArgs | UserState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as UserState | undefined; + resourceInputs["allowDeletion"] = state?.allowDeletion; + resourceInputs["clusterApiUrl"] = state?.clusterApiUrl; + resourceInputs["mechanism"] = state?.mechanism; + resourceInputs["name"] = state?.name; + resourceInputs["password"] = state?.password; + resourceInputs["passwordWo"] = state?.passwordWo; + resourceInputs["passwordWoVersion"] = state?.passwordWoVersion; + } else { + const args = argsOrState as UserArgs | undefined; + if (args?.clusterApiUrl === undefined && !opts.urn) { + throw new Error("Missing required property 'clusterApiUrl'"); + } + resourceInputs["allowDeletion"] = args?.allowDeletion; + resourceInputs["clusterApiUrl"] = args?.clusterApiUrl; + resourceInputs["mechanism"] = args?.mechanism; + resourceInputs["name"] = args?.name; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["passwordWo"] = args?.passwordWo ? pulumi.secret(args.passwordWo) : undefined; + resourceInputs["passwordWoVersion"] = args?.passwordWoVersion; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password", "passwordWo"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(User.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage()); + } +} + +/** + * Input properties used for looking up and filtering User resources. + */ +export interface UserState { + /** + * Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl?: pulumi.Input; + /** + * Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information + */ + mechanism?: pulumi.Input; + /** + * Name of the user, must be unique + */ + name?: pulumi.Input; + /** + * Password of the user. Deprecated: use password_wo instead to avoid storing password in state. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; +} + +/** + * The set of arguments for constructing a User resource. + */ +export interface UserArgs { + /** + * Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false. + */ + allowDeletion?: pulumi.Input; + /** + * The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports + */ + clusterApiUrl: pulumi.Input; + /** + * Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information + */ + mechanism?: pulumi.Input; + /** + * Name of the user, must be unique + */ + name?: pulumi.Input; + /** + * Password of the user. Deprecated: use password_wo instead to avoid storing password in state. + * + * @deprecated Deprecated + */ + password?: pulumi.Input; + /** + * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. + */ + passwordWo?: pulumi.Input; + /** + * Version number for password_wo. Increment this value to trigger a password update when using password_wo. + */ + passwordWoVersion?: pulumi.Input; +} diff --git a/pulumi-redpanda/utilities.ts b/pulumi-redpanda/utilities.ts new file mode 100644 index 00000000..0a44d330 --- /dev/null +++ b/pulumi-redpanda/utilities.ts @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as resproto from "@pulumi/pulumi/proto/resource_pb"; +import * as mutex from "async-mutex"; + +import * as runtime from "@pulumi/pulumi/runtime"; +import * as pulumi from "@pulumi/pulumi"; + +export function getEnv(...vars: string[]): string | undefined { + for (const v of vars) { + const value = process.env[v]; + if (value) { + return value; + } + } + return undefined; +} + +export function getEnvBoolean(...vars: string[]): boolean | undefined { + const s = getEnv(...vars); + if (s !== undefined) { + // NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what + // Terraform uses internally when parsing boolean values. + if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) { + return true; + } + if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) { + return false; + } + } + return undefined; +} + +export function getEnvNumber(...vars: string[]): number | undefined { + const s = getEnv(...vars); + if (s !== undefined) { + const f = parseFloat(s); + if (!isNaN(f)) { + return f; + } + } + return undefined; +} + +export function getVersion(): string { + let version = require('./package.json').version; + // Node allows for the version to be prefixed by a "v", while semver doesn't. + // If there is a v, strip it off. + if (version.indexOf('v') === 0) { + version = version.slice(1); + } + return version; +} + +/** @internal */ +export function resourceOptsDefaults(): any { + return { version: getVersion() }; +} + +/** @internal */ +export function lazyLoad(exports: any, props: string[], loadModule: any) { + for (let property of props) { + Object.defineProperty(exports, property, { + enumerable: true, + get: function() { + return loadModule()[property]; + }, + }); + } +} + +/** @internal */ +export async function callAsync( + tok: string, + props: pulumi.Inputs, + res?: pulumi.Resource, + opts?: {property?: string}, +): Promise { + const o: any = runtime.call(tok, props, res); + const value = await o.promise(true /*withUnknowns*/); + const isKnown = await o.isKnown; + const isSecret = await o.isSecret; + const problem: string|undefined = + !isKnown ? "an unknown value" + : isSecret ? "a secret value" + : undefined; + // Ingoring o.resources silently. They are typically non-empty, r.f() calls include r as a dependency. + if (problem) { + throw new Error(`Plain resource method "${tok}" incorrectly returned ${problem}. ` + + "This is an error in the provider, please report this to the provider developer."); + } + // Extract a single property if requested. + if (opts && opts.property) { + return value[opts.property]; + } + return value; +} + +const _packageLock = new mutex.Mutex(); +var _packageRef : undefined | string = undefined; +export async function getPackage() : Promise { + if (_packageRef === undefined) { + if (!runtime.supportsParameterization()) { + throw new Error("The Pulumi CLI does not support parameterization. Please update the Pulumi CLI"); + } + + await _packageLock.acquire(); + if (_packageRef === undefined) { + const monitor = runtime.getMonitor(); + const params = new resproto.Parameterization(); + params.setName("redpanda"); + params.setVersion("1.7.3"); + params.setValue(Uint8Array.from(atob("eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL3JlZHBhbmRhLWRhdGEvcmVkcGFuZGEiLCJ2ZXJzaW9uIjoiMS43LjMifX0="), c => c.charCodeAt(0))); + + const req = new resproto.RegisterPackageRequest(); + req.setName("terraform-provider"); + req.setVersion("1.1.0"); + req.setDownloadUrl(""); + req.setParameterization(params); + const resp : any = await new Promise((resolve, reject) => { + monitor!.registerPackage(req, (err: any, resp: any) => { + if (err) { + reject(err); + } else { + resolve(resp); + } + }); + }); + _packageRef = resp.getRef(); + } + _packageLock.release(); + } + return _packageRef as string; +}