@pulumi/confluentcloud 2.58.0 → 2.59.0-alpha.1770934913
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accessPoint.d.ts +3 -3
- package/accessPoint.js +3 -3
- package/apiKey.d.ts +12 -4
- package/apiKey.js +12 -4
- package/apiKey.js.map +1 -1
- package/businessMetadata.d.ts +1 -4
- package/businessMetadata.js +1 -4
- package/businessMetadata.js.map +1 -1
- package/businessMetadataBinding.d.ts +22 -7
- package/businessMetadataBinding.js +1 -4
- package/businessMetadataBinding.js.map +1 -1
- package/byokKey.d.ts +3 -3
- package/byokKey.js +3 -3
- package/catalogEntityAttributes.d.ts +36 -7
- package/catalogEntityAttributes.js +9 -4
- package/catalogEntityAttributes.js.map +1 -1
- package/catalogIntegration.d.ts +5 -3
- package/catalogIntegration.js +5 -3
- package/catalogIntegration.js.map +1 -1
- package/certificateAuthority.d.ts +3 -3
- package/certificateAuthority.js +3 -3
- package/certificatePool.d.ts +3 -3
- package/certificatePool.js +3 -3
- package/clusterLink.d.ts +10 -21
- package/clusterLink.js +10 -21
- package/clusterLink.js.map +1 -1
- package/connectArtifact.d.ts +11 -3
- package/connectArtifact.js +11 -3
- package/connectArtifact.js.map +1 -1
- package/connector.d.ts +11 -3
- package/connector.js +11 -3
- package/connector.js.map +1 -1
- package/customConnectorPlugin.d.ts +13 -3
- package/customConnectorPlugin.js +13 -3
- package/customConnectorPlugin.js.map +1 -1
- package/customConnectorPluginVersion.d.ts +13 -3
- package/customConnectorPluginVersion.js +13 -3
- package/customConnectorPluginVersion.js.map +1 -1
- package/dnsForwarder.d.ts +3 -3
- package/dnsForwarder.js +3 -3
- package/dnsRecord.d.ts +3 -3
- package/dnsRecord.js +3 -3
- package/environment.d.ts +9 -3
- package/environment.js +9 -3
- package/environment.js.map +1 -1
- package/flinkArtifact.d.ts +11 -3
- package/flinkArtifact.js +11 -3
- package/flinkArtifact.js.map +1 -1
- package/flinkComputePool.d.ts +9 -3
- package/flinkComputePool.js +9 -3
- package/flinkComputePool.js.map +1 -1
- package/flinkConnection.d.ts +97 -11
- package/flinkConnection.js +97 -11
- package/flinkConnection.js.map +1 -1
- package/flinkStatement.d.ts +32 -11
- package/flinkStatement.js +5 -8
- package/flinkStatement.js.map +1 -1
- package/gateway.d.ts +3 -3
- package/gateway.js +3 -3
- package/getNetwork.d.ts +32 -0
- package/getNetwork.js +32 -0
- package/getNetwork.js.map +1 -1
- package/getProviderIntegrationAuthorization.d.ts +260 -0
- package/getProviderIntegrationAuthorization.js +260 -0
- package/getProviderIntegrationAuthorization.js.map +1 -1
- package/groupMapping.d.ts +3 -3
- package/groupMapping.js +3 -3
- package/identityPool.d.ts +3 -3
- package/identityPool.js +3 -3
- package/identityProvider.d.ts +3 -3
- package/identityProvider.js +3 -3
- package/invitation.d.ts +12 -3
- package/invitation.js +3 -3
- package/invitation.js.map +1 -1
- package/ipFilter.d.ts +3 -3
- package/ipFilter.js +3 -3
- package/ipGroup.d.ts +3 -3
- package/ipGroup.js +3 -3
- package/kafkaAcl.d.ts +30 -11
- package/kafkaAcl.js +3 -8
- package/kafkaAcl.js.map +1 -1
- package/kafkaClientQuota.d.ts +11 -3
- package/kafkaClientQuota.js +11 -3
- package/kafkaClientQuota.js.map +1 -1
- package/kafkaCluster.d.ts +9 -3
- package/kafkaCluster.js +9 -3
- package/kafkaCluster.js.map +1 -1
- package/kafkaClusterConfig.d.ts +1 -4
- package/kafkaClusterConfig.js +1 -4
- package/kafkaClusterConfig.js.map +1 -1
- package/kafkaMirrorTopic.d.ts +54 -4
- package/kafkaMirrorTopic.js +9 -4
- package/kafkaMirrorTopic.js.map +1 -1
- package/kafkaTopic.d.ts +11 -33
- package/kafkaTopic.js +11 -33
- package/kafkaTopic.js.map +1 -1
- package/ksqlCluster.d.ts +3 -3
- package/ksqlCluster.js +3 -3
- package/network.d.ts +9 -3
- package/network.js +9 -3
- package/network.js.map +1 -1
- package/networkLinkEndpoint.d.ts +9 -3
- package/networkLinkEndpoint.js +9 -3
- package/networkLinkEndpoint.js.map +1 -1
- package/networkLinkService.d.ts +9 -3
- package/networkLinkService.js +9 -3
- package/networkLinkService.js.map +1 -1
- package/package.json +2 -2
- package/peering.d.ts +9 -3
- package/peering.js +9 -3
- package/peering.js.map +1 -1
- package/plugin.d.ts +9 -3
- package/plugin.js +9 -3
- package/plugin.js.map +1 -1
- package/privateLinkAccess.d.ts +9 -3
- package/privateLinkAccess.js +9 -3
- package/privateLinkAccess.js.map +1 -1
- package/privateLinkAttachment.d.ts +3 -3
- package/privateLinkAttachment.js +3 -3
- package/privateLinkAttachmentConnection.d.ts +3 -3
- package/privateLinkAttachmentConnection.js +3 -3
- package/providerIntegration.d.ts +9 -3
- package/providerIntegration.js +9 -3
- package/providerIntegration.js.map +1 -1
- package/providerIntegrationAuthorization.d.ts +161 -3
- package/providerIntegrationAuthorization.js +161 -3
- package/providerIntegrationAuthorization.js.map +1 -1
- package/providerIntegrationSetup.d.ts +11 -3
- package/providerIntegrationSetup.js +11 -3
- package/providerIntegrationSetup.js.map +1 -1
- package/roleBinding.d.ts +36 -3
- package/roleBinding.js +3 -3
- package/roleBinding.js.map +1 -1
- package/schema.d.ts +22 -11
- package/schema.js +13 -11
- package/schema.js.map +1 -1
- package/schemaExporter.d.ts +3 -5
- package/schemaExporter.js +3 -5
- package/schemaExporter.js.map +1 -1
- package/schemaRegistryClusterConfig.d.ts +7 -4
- package/schemaRegistryClusterConfig.js +7 -4
- package/schemaRegistryClusterConfig.js.map +1 -1
- package/schemaRegistryClusterMode.d.ts +7 -4
- package/schemaRegistryClusterMode.js +7 -4
- package/schemaRegistryClusterMode.js.map +1 -1
- package/schemaRegistryDek.d.ts +22 -7
- package/schemaRegistryDek.js +1 -4
- package/schemaRegistryDek.js.map +1 -1
- package/schemaRegistryKek.d.ts +22 -7
- package/schemaRegistryKek.js +1 -4
- package/schemaRegistryKek.js.map +1 -1
- package/serviceAccount.d.ts +3 -3
- package/serviceAccount.js +3 -3
- package/subjectConfig.d.ts +7 -4
- package/subjectConfig.js +7 -4
- package/subjectConfig.js.map +1 -1
- package/subjectMode.d.ts +7 -4
- package/subjectMode.js +7 -4
- package/subjectMode.js.map +1 -1
- package/tableflowTopic.d.ts +7 -3
- package/tableflowTopic.js +7 -3
- package/tableflowTopic.js.map +1 -1
- package/tag.d.ts +22 -7
- package/tag.js +1 -4
- package/tag.js.map +1 -1
- package/tagBinding.d.ts +28 -4
- package/tagBinding.js +1 -4
- package/tagBinding.js.map +1 -1
- package/tfImporter.d.ts +6 -0
- package/tfImporter.js +6 -0
- package/tfImporter.js.map +1 -1
- package/transitGatewayAttachment.d.ts +9 -3
- package/transitGatewayAttachment.js +9 -3
- package/transitGatewayAttachment.js.map +1 -1
- package/types/input.d.ts +98 -16
- package/types/output.d.ts +78 -12
package/gateway.d.ts
CHANGED
|
@@ -32,13 +32,13 @@ import * as outputs from "./types/output";
|
|
|
32
32
|
*
|
|
33
33
|
* ## Import
|
|
34
34
|
*
|
|
35
|
+
* > **Note:** `CONFLUENT_CLOUD_API_KEY` and `CONFLUENT_CLOUD_API_SECRET` environment variables must be set before importing a Gateway.
|
|
36
|
+
*
|
|
35
37
|
* You can import a Gateway by using Environment ID and Gateway ID, in the format `<Environment ID>/<Gateway ID>`. The following example shows how to import a Gateway:
|
|
36
38
|
*
|
|
39
|
+
* ```sh
|
|
37
40
|
* $ export CONFLUENT_CLOUD_API_KEY="<cloud_api_key>"
|
|
38
|
-
*
|
|
39
41
|
* $ export CONFLUENT_CLOUD_API_SECRET="<cloud_api_secret>"
|
|
40
|
-
*
|
|
41
|
-
* ```sh
|
|
42
42
|
* $ pulumi import confluentcloud:index/gateway:Gateway main env-abc123/gw-abc123
|
|
43
43
|
* ```
|
|
44
44
|
*
|
package/gateway.js
CHANGED
|
@@ -36,13 +36,13 @@ const utilities = require("./utilities");
|
|
|
36
36
|
*
|
|
37
37
|
* ## Import
|
|
38
38
|
*
|
|
39
|
+
* > **Note:** `CONFLUENT_CLOUD_API_KEY` and `CONFLUENT_CLOUD_API_SECRET` environment variables must be set before importing a Gateway.
|
|
40
|
+
*
|
|
39
41
|
* You can import a Gateway by using Environment ID and Gateway ID, in the format `<Environment ID>/<Gateway ID>`. The following example shows how to import a Gateway:
|
|
40
42
|
*
|
|
43
|
+
* ```sh
|
|
41
44
|
* $ export CONFLUENT_CLOUD_API_KEY="<cloud_api_key>"
|
|
42
|
-
*
|
|
43
45
|
* $ export CONFLUENT_CLOUD_API_SECRET="<cloud_api_secret>"
|
|
44
|
-
*
|
|
45
|
-
* ```sh
|
|
46
46
|
* $ pulumi import confluentcloud:index/gateway:Gateway main env-abc123/gw-abc123
|
|
47
47
|
* ```
|
|
48
48
|
*
|
package/getNetwork.d.ts
CHANGED
|
@@ -2,6 +2,22 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
2
2
|
import * as inputs from "./types/input";
|
|
3
3
|
import * as outputs from "./types/output";
|
|
4
4
|
/**
|
|
5
|
+
* ##
|
|
6
|
+
*
|
|
7
|
+
* ***
|
|
8
|
+
* # generated by https://github.com/hashicorp/terraform-plugin-docs
|
|
9
|
+
* page_title: "confluentcloud.Network " pulumi-lang-dotnet="Data Source - terraform-provider-confluent"
|
|
10
|
+
* subcategory: ""
|
|
11
|
+
* description: |-
|
|
12
|
+
*
|
|
13
|
+
* ***
|
|
14
|
+
*
|
|
15
|
+
* # confluentcloud.Network Data Source
|
|
16
|
+
*
|
|
17
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
18
|
+
*
|
|
19
|
+
* `confluentcloud.Network` describes a Network data source.
|
|
20
|
+
*
|
|
5
21
|
* ## Example Usage
|
|
6
22
|
*
|
|
7
23
|
* ```typescript
|
|
@@ -142,6 +158,22 @@ export interface GetNetworkResult {
|
|
|
142
158
|
readonly zones: string[];
|
|
143
159
|
}
|
|
144
160
|
/**
|
|
161
|
+
* ##
|
|
162
|
+
*
|
|
163
|
+
* ***
|
|
164
|
+
* # generated by https://github.com/hashicorp/terraform-plugin-docs
|
|
165
|
+
* page_title: "confluentcloud.Network " pulumi-lang-dotnet="Data Source - terraform-provider-confluent"
|
|
166
|
+
* subcategory: ""
|
|
167
|
+
* description: |-
|
|
168
|
+
*
|
|
169
|
+
* ***
|
|
170
|
+
*
|
|
171
|
+
* # confluentcloud.Network Data Source
|
|
172
|
+
*
|
|
173
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
174
|
+
*
|
|
175
|
+
* `confluentcloud.Network` describes a Network data source.
|
|
176
|
+
*
|
|
145
177
|
* ## Example Usage
|
|
146
178
|
*
|
|
147
179
|
* ```typescript
|
package/getNetwork.js
CHANGED
|
@@ -6,6 +6,22 @@ exports.getNetworkOutput = exports.getNetwork = void 0;
|
|
|
6
6
|
const pulumi = require("@pulumi/pulumi");
|
|
7
7
|
const utilities = require("./utilities");
|
|
8
8
|
/**
|
|
9
|
+
* ##
|
|
10
|
+
*
|
|
11
|
+
* ***
|
|
12
|
+
* # generated by https://github.com/hashicorp/terraform-plugin-docs
|
|
13
|
+
* page_title: "confluentcloud.Network " pulumi-lang-dotnet="Data Source - terraform-provider-confluent"
|
|
14
|
+
* subcategory: ""
|
|
15
|
+
* description: |-
|
|
16
|
+
*
|
|
17
|
+
* ***
|
|
18
|
+
*
|
|
19
|
+
* # confluentcloud.Network Data Source
|
|
20
|
+
*
|
|
21
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
22
|
+
*
|
|
23
|
+
* `confluentcloud.Network` describes a Network data source.
|
|
24
|
+
*
|
|
9
25
|
* ## Example Usage
|
|
10
26
|
*
|
|
11
27
|
* ```typescript
|
|
@@ -49,6 +65,22 @@ function getNetwork(args, opts) {
|
|
|
49
65
|
}
|
|
50
66
|
exports.getNetwork = getNetwork;
|
|
51
67
|
/**
|
|
68
|
+
* ##
|
|
69
|
+
*
|
|
70
|
+
* ***
|
|
71
|
+
* # generated by https://github.com/hashicorp/terraform-plugin-docs
|
|
72
|
+
* page_title: "confluentcloud.Network " pulumi-lang-dotnet="Data Source - terraform-provider-confluent"
|
|
73
|
+
* subcategory: ""
|
|
74
|
+
* description: |-
|
|
75
|
+
*
|
|
76
|
+
* ***
|
|
77
|
+
*
|
|
78
|
+
* # confluentcloud.Network Data Source
|
|
79
|
+
*
|
|
80
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
81
|
+
*
|
|
82
|
+
* `confluentcloud.Network` describes a Network data source.
|
|
83
|
+
*
|
|
52
84
|
* ## Example Usage
|
|
53
85
|
*
|
|
54
86
|
* ```typescript
|
package/getNetwork.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNetwork.js","sourceRoot":"","sources":["../getNetwork.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"getNetwork.js","sourceRoot":"","sources":["../getNetwork.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,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,4CAA4C,EAAE;QACvE,KAAK,EAAE,IAAI,CAAC,GAAG;QACf,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,YAAY,EAAE,IAAI,CAAC,UAAU;QAC7B,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,IAAI,EAAE,IAAI,CAAC,EAAE;KAChB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAXD,gCAWC;AA8GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,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,4CAA4C,EAAE;QAC7E,KAAK,EAAE,IAAI,CAAC,GAAG;QACf,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,YAAY,EAAE,IAAI,CAAC,UAAU;QAC7B,aAAa,EAAE,IAAI,CAAC,WAAW;QAC/B,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,IAAI,EAAE,IAAI,CAAC,EAAE;KAChB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAXD,4CAWC"}
|
|
@@ -1,6 +1,136 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi";
|
|
2
2
|
import * as inputs from "./types/input";
|
|
3
3
|
import * as outputs from "./types/output";
|
|
4
|
+
/**
|
|
5
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
6
|
+
*
|
|
7
|
+
* `confluentcloud.ProviderIntegrationAuthorization` describes the authorization configuration for a Cloud Service Provider (CSP) integration, including cloud-specific setup information like Azure multi-tenant app IDs or GCP service accounts.
|
|
8
|
+
*
|
|
9
|
+
* ## Example Usage
|
|
10
|
+
*
|
|
11
|
+
* ### Azure Provider Integration Authorization
|
|
12
|
+
*
|
|
13
|
+
* You can use the authorization data source with either approach:
|
|
14
|
+
*
|
|
15
|
+
* ### Option 1: With Azure Terraform Provider
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
19
|
+
* import * as azuread from "@pulumi/azuread";
|
|
20
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
21
|
+
*
|
|
22
|
+
* // Get the authorization data
|
|
23
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
24
|
+
* id: "cspi-abc123",
|
|
25
|
+
* environment: {
|
|
26
|
+
* id: "env-xyz456",
|
|
27
|
+
* },
|
|
28
|
+
* });
|
|
29
|
+
* // Create the service principal using Azure Terraform Provider
|
|
30
|
+
* const confluent = new azuread.index.ServicePrincipal("confluent", {clientId: azure.azures?.[0]?.confluentMultiTenantAppId});
|
|
31
|
+
* export const azureAppId = azure.then(azure => azure.azures?.[0]?.confluentMultiTenantAppId);
|
|
32
|
+
* export const servicePrincipalObjectId = confluent.objectId;
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* ### Option 2: With CLI Commands
|
|
36
|
+
*
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
39
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
40
|
+
*
|
|
41
|
+
* // Get the authorization data
|
|
42
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
43
|
+
* id: "cspi-abc123",
|
|
44
|
+
* environment: {
|
|
45
|
+
* id: "env-xyz456",
|
|
46
|
+
* },
|
|
47
|
+
* });
|
|
48
|
+
* export const azureSetupCommand = azure.then(azure => `az ad sp create --id ${azure.azures?.[0]?.confluentMultiTenantAppId}`);
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ### GCP Provider Integration Authorization
|
|
52
|
+
*
|
|
53
|
+
* You can use the authorization data source with either approach:
|
|
54
|
+
*
|
|
55
|
+
* ### Option 1: With Google Terraform Provider
|
|
56
|
+
*
|
|
57
|
+
* ```typescript
|
|
58
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
59
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
60
|
+
* import * as google from "@pulumi/google";
|
|
61
|
+
*
|
|
62
|
+
* // Get the authorization data
|
|
63
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
64
|
+
* id: "cspi-def456",
|
|
65
|
+
* environment: {
|
|
66
|
+
* id: "env-xyz456",
|
|
67
|
+
* },
|
|
68
|
+
* });
|
|
69
|
+
* // Grant IAM permissions using Google Terraform Provider
|
|
70
|
+
* const confluentTokenCreator = new google.index.ProjectIamMember("confluent_token_creator", {
|
|
71
|
+
* project: gcpProjectId,
|
|
72
|
+
* role: "roles/iam.serviceAccountTokenCreator",
|
|
73
|
+
* member: `serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}`,
|
|
74
|
+
* condition: [{
|
|
75
|
+
* title: "Confluent Cloud Access",
|
|
76
|
+
* description: "Allow Confluent Cloud to impersonate the customer service account",
|
|
77
|
+
* expression: `request.auth.claims.sub == '${gcp.gcps?.[0]?.googleServiceAccount}'`,
|
|
78
|
+
* }],
|
|
79
|
+
* });
|
|
80
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
81
|
+
* export const customerServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.customerGoogleServiceAccount);
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* ### Option 2: With gcloud CLI Commands
|
|
85
|
+
*
|
|
86
|
+
* ```typescript
|
|
87
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
88
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
89
|
+
*
|
|
90
|
+
* // Get the authorization data
|
|
91
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
92
|
+
* id: "cspi-def456",
|
|
93
|
+
* environment: {
|
|
94
|
+
* id: "env-xyz456",
|
|
95
|
+
* },
|
|
96
|
+
* });
|
|
97
|
+
* export const gcpIamCommand = Promise.all([gcp, gcp]).then(([gcp, gcp1]) => `gcloud projects add-iam-policy-binding YOUR_PROJECT_ID --member="serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}" --role="roles/iam.serviceAccountTokenCreator" --condition="expression=request.auth.claims.sub=='${gcp1.gcps?.[0]?.googleServiceAccount}'"`);
|
|
98
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* ### Using with Integration Data Source
|
|
102
|
+
*
|
|
103
|
+
* ```typescript
|
|
104
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
105
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
106
|
+
*
|
|
107
|
+
* const main = confluentcloud.getProviderIntegrationSetup({
|
|
108
|
+
* displayName: "my-integration",
|
|
109
|
+
* environment: {
|
|
110
|
+
* id: "env-xyz456",
|
|
111
|
+
* },
|
|
112
|
+
* });
|
|
113
|
+
* const mainGetProviderIntegrationAuthorization = main.then(main => confluentcloud.getProviderIntegrationAuthorization({
|
|
114
|
+
* id: main.id,
|
|
115
|
+
* environment: {
|
|
116
|
+
* id: "env-xyz456",
|
|
117
|
+
* },
|
|
118
|
+
* }));
|
|
119
|
+
* export const setupInfo = Promise.all([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization]).then(([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization1, mainGetProviderIntegrationAuthorization2, mainGetProviderIntegrationAuthorization3]) => main.cloud == "AZURE" ? {
|
|
120
|
+
* appId: mainGetProviderIntegrationAuthorization.azures?.[0]?.confluentMultiTenantAppId,
|
|
121
|
+
* command: `az ad sp create --id ${mainGetProviderIntegrationAuthorization1.azures?.[0]?.confluentMultiTenantAppId}`,
|
|
122
|
+
* } : {
|
|
123
|
+
* confluentSa: mainGetProviderIntegrationAuthorization2.gcps?.[0]?.googleServiceAccount,
|
|
124
|
+
* customerSa: mainGetProviderIntegrationAuthorization3.gcps?.[0]?.customerGoogleServiceAccount,
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* ## Getting Started
|
|
129
|
+
*
|
|
130
|
+
* The following end-to-end examples might help to get started with `confluentcloud.ProviderIntegrationAuthorization` data source:
|
|
131
|
+
* * provider-integration-azure: Complete Azure Provider Integration setup
|
|
132
|
+
* * provider-integration-gcp: Complete GCP Provider Integration setup
|
|
133
|
+
*/
|
|
4
134
|
export declare function getProviderIntegrationAuthorization(args: GetProviderIntegrationAuthorizationArgs, opts?: pulumi.InvokeOptions): Promise<GetProviderIntegrationAuthorizationResult>;
|
|
5
135
|
/**
|
|
6
136
|
* A collection of arguments for invoking getProviderIntegrationAuthorization.
|
|
@@ -40,6 +170,136 @@ export interface GetProviderIntegrationAuthorizationResult {
|
|
|
40
170
|
*/
|
|
41
171
|
readonly providerIntegrationId: string;
|
|
42
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
175
|
+
*
|
|
176
|
+
* `confluentcloud.ProviderIntegrationAuthorization` describes the authorization configuration for a Cloud Service Provider (CSP) integration, including cloud-specific setup information like Azure multi-tenant app IDs or GCP service accounts.
|
|
177
|
+
*
|
|
178
|
+
* ## Example Usage
|
|
179
|
+
*
|
|
180
|
+
* ### Azure Provider Integration Authorization
|
|
181
|
+
*
|
|
182
|
+
* You can use the authorization data source with either approach:
|
|
183
|
+
*
|
|
184
|
+
* ### Option 1: With Azure Terraform Provider
|
|
185
|
+
*
|
|
186
|
+
* ```typescript
|
|
187
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
188
|
+
* import * as azuread from "@pulumi/azuread";
|
|
189
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
190
|
+
*
|
|
191
|
+
* // Get the authorization data
|
|
192
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
193
|
+
* id: "cspi-abc123",
|
|
194
|
+
* environment: {
|
|
195
|
+
* id: "env-xyz456",
|
|
196
|
+
* },
|
|
197
|
+
* });
|
|
198
|
+
* // Create the service principal using Azure Terraform Provider
|
|
199
|
+
* const confluent = new azuread.index.ServicePrincipal("confluent", {clientId: azure.azures?.[0]?.confluentMultiTenantAppId});
|
|
200
|
+
* export const azureAppId = azure.then(azure => azure.azures?.[0]?.confluentMultiTenantAppId);
|
|
201
|
+
* export const servicePrincipalObjectId = confluent.objectId;
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* ### Option 2: With CLI Commands
|
|
205
|
+
*
|
|
206
|
+
* ```typescript
|
|
207
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
208
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
209
|
+
*
|
|
210
|
+
* // Get the authorization data
|
|
211
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
212
|
+
* id: "cspi-abc123",
|
|
213
|
+
* environment: {
|
|
214
|
+
* id: "env-xyz456",
|
|
215
|
+
* },
|
|
216
|
+
* });
|
|
217
|
+
* export const azureSetupCommand = azure.then(azure => `az ad sp create --id ${azure.azures?.[0]?.confluentMultiTenantAppId}`);
|
|
218
|
+
* ```
|
|
219
|
+
*
|
|
220
|
+
* ### GCP Provider Integration Authorization
|
|
221
|
+
*
|
|
222
|
+
* You can use the authorization data source with either approach:
|
|
223
|
+
*
|
|
224
|
+
* ### Option 1: With Google Terraform Provider
|
|
225
|
+
*
|
|
226
|
+
* ```typescript
|
|
227
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
228
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
229
|
+
* import * as google from "@pulumi/google";
|
|
230
|
+
*
|
|
231
|
+
* // Get the authorization data
|
|
232
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
233
|
+
* id: "cspi-def456",
|
|
234
|
+
* environment: {
|
|
235
|
+
* id: "env-xyz456",
|
|
236
|
+
* },
|
|
237
|
+
* });
|
|
238
|
+
* // Grant IAM permissions using Google Terraform Provider
|
|
239
|
+
* const confluentTokenCreator = new google.index.ProjectIamMember("confluent_token_creator", {
|
|
240
|
+
* project: gcpProjectId,
|
|
241
|
+
* role: "roles/iam.serviceAccountTokenCreator",
|
|
242
|
+
* member: `serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}`,
|
|
243
|
+
* condition: [{
|
|
244
|
+
* title: "Confluent Cloud Access",
|
|
245
|
+
* description: "Allow Confluent Cloud to impersonate the customer service account",
|
|
246
|
+
* expression: `request.auth.claims.sub == '${gcp.gcps?.[0]?.googleServiceAccount}'`,
|
|
247
|
+
* }],
|
|
248
|
+
* });
|
|
249
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
250
|
+
* export const customerServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.customerGoogleServiceAccount);
|
|
251
|
+
* ```
|
|
252
|
+
*
|
|
253
|
+
* ### Option 2: With gcloud CLI Commands
|
|
254
|
+
*
|
|
255
|
+
* ```typescript
|
|
256
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
257
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
258
|
+
*
|
|
259
|
+
* // Get the authorization data
|
|
260
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
261
|
+
* id: "cspi-def456",
|
|
262
|
+
* environment: {
|
|
263
|
+
* id: "env-xyz456",
|
|
264
|
+
* },
|
|
265
|
+
* });
|
|
266
|
+
* export const gcpIamCommand = Promise.all([gcp, gcp]).then(([gcp, gcp1]) => `gcloud projects add-iam-policy-binding YOUR_PROJECT_ID --member="serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}" --role="roles/iam.serviceAccountTokenCreator" --condition="expression=request.auth.claims.sub=='${gcp1.gcps?.[0]?.googleServiceAccount}'"`);
|
|
267
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
268
|
+
* ```
|
|
269
|
+
*
|
|
270
|
+
* ### Using with Integration Data Source
|
|
271
|
+
*
|
|
272
|
+
* ```typescript
|
|
273
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
274
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
275
|
+
*
|
|
276
|
+
* const main = confluentcloud.getProviderIntegrationSetup({
|
|
277
|
+
* displayName: "my-integration",
|
|
278
|
+
* environment: {
|
|
279
|
+
* id: "env-xyz456",
|
|
280
|
+
* },
|
|
281
|
+
* });
|
|
282
|
+
* const mainGetProviderIntegrationAuthorization = main.then(main => confluentcloud.getProviderIntegrationAuthorization({
|
|
283
|
+
* id: main.id,
|
|
284
|
+
* environment: {
|
|
285
|
+
* id: "env-xyz456",
|
|
286
|
+
* },
|
|
287
|
+
* }));
|
|
288
|
+
* export const setupInfo = Promise.all([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization]).then(([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization1, mainGetProviderIntegrationAuthorization2, mainGetProviderIntegrationAuthorization3]) => main.cloud == "AZURE" ? {
|
|
289
|
+
* appId: mainGetProviderIntegrationAuthorization.azures?.[0]?.confluentMultiTenantAppId,
|
|
290
|
+
* command: `az ad sp create --id ${mainGetProviderIntegrationAuthorization1.azures?.[0]?.confluentMultiTenantAppId}`,
|
|
291
|
+
* } : {
|
|
292
|
+
* confluentSa: mainGetProviderIntegrationAuthorization2.gcps?.[0]?.googleServiceAccount,
|
|
293
|
+
* customerSa: mainGetProviderIntegrationAuthorization3.gcps?.[0]?.customerGoogleServiceAccount,
|
|
294
|
+
* });
|
|
295
|
+
* ```
|
|
296
|
+
*
|
|
297
|
+
* ## Getting Started
|
|
298
|
+
*
|
|
299
|
+
* The following end-to-end examples might help to get started with `confluentcloud.ProviderIntegrationAuthorization` data source:
|
|
300
|
+
* * provider-integration-azure: Complete Azure Provider Integration setup
|
|
301
|
+
* * provider-integration-gcp: Complete GCP Provider Integration setup
|
|
302
|
+
*/
|
|
43
303
|
export declare function getProviderIntegrationAuthorizationOutput(args: GetProviderIntegrationAuthorizationOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetProviderIntegrationAuthorizationResult>;
|
|
44
304
|
/**
|
|
45
305
|
* A collection of arguments for invoking getProviderIntegrationAuthorization.
|
|
@@ -5,6 +5,136 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
exports.getProviderIntegrationAuthorizationOutput = exports.getProviderIntegrationAuthorization = void 0;
|
|
6
6
|
const pulumi = require("@pulumi/pulumi");
|
|
7
7
|
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
10
|
+
*
|
|
11
|
+
* `confluentcloud.ProviderIntegrationAuthorization` describes the authorization configuration for a Cloud Service Provider (CSP) integration, including cloud-specific setup information like Azure multi-tenant app IDs or GCP service accounts.
|
|
12
|
+
*
|
|
13
|
+
* ## Example Usage
|
|
14
|
+
*
|
|
15
|
+
* ### Azure Provider Integration Authorization
|
|
16
|
+
*
|
|
17
|
+
* You can use the authorization data source with either approach:
|
|
18
|
+
*
|
|
19
|
+
* ### Option 1: With Azure Terraform Provider
|
|
20
|
+
*
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
23
|
+
* import * as azuread from "@pulumi/azuread";
|
|
24
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
25
|
+
*
|
|
26
|
+
* // Get the authorization data
|
|
27
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
28
|
+
* id: "cspi-abc123",
|
|
29
|
+
* environment: {
|
|
30
|
+
* id: "env-xyz456",
|
|
31
|
+
* },
|
|
32
|
+
* });
|
|
33
|
+
* // Create the service principal using Azure Terraform Provider
|
|
34
|
+
* const confluent = new azuread.index.ServicePrincipal("confluent", {clientId: azure.azures?.[0]?.confluentMultiTenantAppId});
|
|
35
|
+
* export const azureAppId = azure.then(azure => azure.azures?.[0]?.confluentMultiTenantAppId);
|
|
36
|
+
* export const servicePrincipalObjectId = confluent.objectId;
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### Option 2: With CLI Commands
|
|
40
|
+
*
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
43
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
44
|
+
*
|
|
45
|
+
* // Get the authorization data
|
|
46
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
47
|
+
* id: "cspi-abc123",
|
|
48
|
+
* environment: {
|
|
49
|
+
* id: "env-xyz456",
|
|
50
|
+
* },
|
|
51
|
+
* });
|
|
52
|
+
* export const azureSetupCommand = azure.then(azure => `az ad sp create --id ${azure.azures?.[0]?.confluentMultiTenantAppId}`);
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ### GCP Provider Integration Authorization
|
|
56
|
+
*
|
|
57
|
+
* You can use the authorization data source with either approach:
|
|
58
|
+
*
|
|
59
|
+
* ### Option 1: With Google Terraform Provider
|
|
60
|
+
*
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
63
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
64
|
+
* import * as google from "@pulumi/google";
|
|
65
|
+
*
|
|
66
|
+
* // Get the authorization data
|
|
67
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
68
|
+
* id: "cspi-def456",
|
|
69
|
+
* environment: {
|
|
70
|
+
* id: "env-xyz456",
|
|
71
|
+
* },
|
|
72
|
+
* });
|
|
73
|
+
* // Grant IAM permissions using Google Terraform Provider
|
|
74
|
+
* const confluentTokenCreator = new google.index.ProjectIamMember("confluent_token_creator", {
|
|
75
|
+
* project: gcpProjectId,
|
|
76
|
+
* role: "roles/iam.serviceAccountTokenCreator",
|
|
77
|
+
* member: `serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}`,
|
|
78
|
+
* condition: [{
|
|
79
|
+
* title: "Confluent Cloud Access",
|
|
80
|
+
* description: "Allow Confluent Cloud to impersonate the customer service account",
|
|
81
|
+
* expression: `request.auth.claims.sub == '${gcp.gcps?.[0]?.googleServiceAccount}'`,
|
|
82
|
+
* }],
|
|
83
|
+
* });
|
|
84
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
85
|
+
* export const customerServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.customerGoogleServiceAccount);
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* ### Option 2: With gcloud CLI Commands
|
|
89
|
+
*
|
|
90
|
+
* ```typescript
|
|
91
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
92
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
93
|
+
*
|
|
94
|
+
* // Get the authorization data
|
|
95
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
96
|
+
* id: "cspi-def456",
|
|
97
|
+
* environment: {
|
|
98
|
+
* id: "env-xyz456",
|
|
99
|
+
* },
|
|
100
|
+
* });
|
|
101
|
+
* export const gcpIamCommand = Promise.all([gcp, gcp]).then(([gcp, gcp1]) => `gcloud projects add-iam-policy-binding YOUR_PROJECT_ID --member="serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}" --role="roles/iam.serviceAccountTokenCreator" --condition="expression=request.auth.claims.sub=='${gcp1.gcps?.[0]?.googleServiceAccount}'"`);
|
|
102
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* ### Using with Integration Data Source
|
|
106
|
+
*
|
|
107
|
+
* ```typescript
|
|
108
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
109
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
110
|
+
*
|
|
111
|
+
* const main = confluentcloud.getProviderIntegrationSetup({
|
|
112
|
+
* displayName: "my-integration",
|
|
113
|
+
* environment: {
|
|
114
|
+
* id: "env-xyz456",
|
|
115
|
+
* },
|
|
116
|
+
* });
|
|
117
|
+
* const mainGetProviderIntegrationAuthorization = main.then(main => confluentcloud.getProviderIntegrationAuthorization({
|
|
118
|
+
* id: main.id,
|
|
119
|
+
* environment: {
|
|
120
|
+
* id: "env-xyz456",
|
|
121
|
+
* },
|
|
122
|
+
* }));
|
|
123
|
+
* export const setupInfo = Promise.all([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization]).then(([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization1, mainGetProviderIntegrationAuthorization2, mainGetProviderIntegrationAuthorization3]) => main.cloud == "AZURE" ? {
|
|
124
|
+
* appId: mainGetProviderIntegrationAuthorization.azures?.[0]?.confluentMultiTenantAppId,
|
|
125
|
+
* command: `az ad sp create --id ${mainGetProviderIntegrationAuthorization1.azures?.[0]?.confluentMultiTenantAppId}`,
|
|
126
|
+
* } : {
|
|
127
|
+
* confluentSa: mainGetProviderIntegrationAuthorization2.gcps?.[0]?.googleServiceAccount,
|
|
128
|
+
* customerSa: mainGetProviderIntegrationAuthorization3.gcps?.[0]?.customerGoogleServiceAccount,
|
|
129
|
+
* });
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* ## Getting Started
|
|
133
|
+
*
|
|
134
|
+
* The following end-to-end examples might help to get started with `confluentcloud.ProviderIntegrationAuthorization` data source:
|
|
135
|
+
* * provider-integration-azure: Complete Azure Provider Integration setup
|
|
136
|
+
* * provider-integration-gcp: Complete GCP Provider Integration setup
|
|
137
|
+
*/
|
|
8
138
|
function getProviderIntegrationAuthorization(args, opts) {
|
|
9
139
|
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
|
|
10
140
|
return pulumi.runtime.invoke("confluentcloud:index/getProviderIntegrationAuthorization:getProviderIntegrationAuthorization", {
|
|
@@ -13,6 +143,136 @@ function getProviderIntegrationAuthorization(args, opts) {
|
|
|
13
143
|
}, opts);
|
|
14
144
|
}
|
|
15
145
|
exports.getProviderIntegrationAuthorization = getProviderIntegrationAuthorization;
|
|
146
|
+
/**
|
|
147
|
+
* [](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)
|
|
148
|
+
*
|
|
149
|
+
* `confluentcloud.ProviderIntegrationAuthorization` describes the authorization configuration for a Cloud Service Provider (CSP) integration, including cloud-specific setup information like Azure multi-tenant app IDs or GCP service accounts.
|
|
150
|
+
*
|
|
151
|
+
* ## Example Usage
|
|
152
|
+
*
|
|
153
|
+
* ### Azure Provider Integration Authorization
|
|
154
|
+
*
|
|
155
|
+
* You can use the authorization data source with either approach:
|
|
156
|
+
*
|
|
157
|
+
* ### Option 1: With Azure Terraform Provider
|
|
158
|
+
*
|
|
159
|
+
* ```typescript
|
|
160
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
161
|
+
* import * as azuread from "@pulumi/azuread";
|
|
162
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
163
|
+
*
|
|
164
|
+
* // Get the authorization data
|
|
165
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
166
|
+
* id: "cspi-abc123",
|
|
167
|
+
* environment: {
|
|
168
|
+
* id: "env-xyz456",
|
|
169
|
+
* },
|
|
170
|
+
* });
|
|
171
|
+
* // Create the service principal using Azure Terraform Provider
|
|
172
|
+
* const confluent = new azuread.index.ServicePrincipal("confluent", {clientId: azure.azures?.[0]?.confluentMultiTenantAppId});
|
|
173
|
+
* export const azureAppId = azure.then(azure => azure.azures?.[0]?.confluentMultiTenantAppId);
|
|
174
|
+
* export const servicePrincipalObjectId = confluent.objectId;
|
|
175
|
+
* ```
|
|
176
|
+
*
|
|
177
|
+
* ### Option 2: With CLI Commands
|
|
178
|
+
*
|
|
179
|
+
* ```typescript
|
|
180
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
181
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
182
|
+
*
|
|
183
|
+
* // Get the authorization data
|
|
184
|
+
* const azure = confluentcloud.getProviderIntegrationAuthorization({
|
|
185
|
+
* id: "cspi-abc123",
|
|
186
|
+
* environment: {
|
|
187
|
+
* id: "env-xyz456",
|
|
188
|
+
* },
|
|
189
|
+
* });
|
|
190
|
+
* export const azureSetupCommand = azure.then(azure => `az ad sp create --id ${azure.azures?.[0]?.confluentMultiTenantAppId}`);
|
|
191
|
+
* ```
|
|
192
|
+
*
|
|
193
|
+
* ### GCP Provider Integration Authorization
|
|
194
|
+
*
|
|
195
|
+
* You can use the authorization data source with either approach:
|
|
196
|
+
*
|
|
197
|
+
* ### Option 1: With Google Terraform Provider
|
|
198
|
+
*
|
|
199
|
+
* ```typescript
|
|
200
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
201
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
202
|
+
* import * as google from "@pulumi/google";
|
|
203
|
+
*
|
|
204
|
+
* // Get the authorization data
|
|
205
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
206
|
+
* id: "cspi-def456",
|
|
207
|
+
* environment: {
|
|
208
|
+
* id: "env-xyz456",
|
|
209
|
+
* },
|
|
210
|
+
* });
|
|
211
|
+
* // Grant IAM permissions using Google Terraform Provider
|
|
212
|
+
* const confluentTokenCreator = new google.index.ProjectIamMember("confluent_token_creator", {
|
|
213
|
+
* project: gcpProjectId,
|
|
214
|
+
* role: "roles/iam.serviceAccountTokenCreator",
|
|
215
|
+
* member: `serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}`,
|
|
216
|
+
* condition: [{
|
|
217
|
+
* title: "Confluent Cloud Access",
|
|
218
|
+
* description: "Allow Confluent Cloud to impersonate the customer service account",
|
|
219
|
+
* expression: `request.auth.claims.sub == '${gcp.gcps?.[0]?.googleServiceAccount}'`,
|
|
220
|
+
* }],
|
|
221
|
+
* });
|
|
222
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
223
|
+
* export const customerServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.customerGoogleServiceAccount);
|
|
224
|
+
* ```
|
|
225
|
+
*
|
|
226
|
+
* ### Option 2: With gcloud CLI Commands
|
|
227
|
+
*
|
|
228
|
+
* ```typescript
|
|
229
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
230
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
231
|
+
*
|
|
232
|
+
* // Get the authorization data
|
|
233
|
+
* const gcp = confluentcloud.getProviderIntegrationAuthorization({
|
|
234
|
+
* id: "cspi-def456",
|
|
235
|
+
* environment: {
|
|
236
|
+
* id: "env-xyz456",
|
|
237
|
+
* },
|
|
238
|
+
* });
|
|
239
|
+
* export const gcpIamCommand = Promise.all([gcp, gcp]).then(([gcp, gcp1]) => `gcloud projects add-iam-policy-binding YOUR_PROJECT_ID --member="serviceAccount:${gcp.gcps?.[0]?.googleServiceAccount}" --role="roles/iam.serviceAccountTokenCreator" --condition="expression=request.auth.claims.sub=='${gcp1.gcps?.[0]?.googleServiceAccount}'"`);
|
|
240
|
+
* export const confluentServiceAccount = gcp.then(gcp => gcp.gcps?.[0]?.googleServiceAccount);
|
|
241
|
+
* ```
|
|
242
|
+
*
|
|
243
|
+
* ### Using with Integration Data Source
|
|
244
|
+
*
|
|
245
|
+
* ```typescript
|
|
246
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
247
|
+
* import * as confluentcloud from "@pulumi/confluentcloud";
|
|
248
|
+
*
|
|
249
|
+
* const main = confluentcloud.getProviderIntegrationSetup({
|
|
250
|
+
* displayName: "my-integration",
|
|
251
|
+
* environment: {
|
|
252
|
+
* id: "env-xyz456",
|
|
253
|
+
* },
|
|
254
|
+
* });
|
|
255
|
+
* const mainGetProviderIntegrationAuthorization = main.then(main => confluentcloud.getProviderIntegrationAuthorization({
|
|
256
|
+
* id: main.id,
|
|
257
|
+
* environment: {
|
|
258
|
+
* id: "env-xyz456",
|
|
259
|
+
* },
|
|
260
|
+
* }));
|
|
261
|
+
* export const setupInfo = Promise.all([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization]).then(([main, mainGetProviderIntegrationAuthorization, mainGetProviderIntegrationAuthorization1, mainGetProviderIntegrationAuthorization2, mainGetProviderIntegrationAuthorization3]) => main.cloud == "AZURE" ? {
|
|
262
|
+
* appId: mainGetProviderIntegrationAuthorization.azures?.[0]?.confluentMultiTenantAppId,
|
|
263
|
+
* command: `az ad sp create --id ${mainGetProviderIntegrationAuthorization1.azures?.[0]?.confluentMultiTenantAppId}`,
|
|
264
|
+
* } : {
|
|
265
|
+
* confluentSa: mainGetProviderIntegrationAuthorization2.gcps?.[0]?.googleServiceAccount,
|
|
266
|
+
* customerSa: mainGetProviderIntegrationAuthorization3.gcps?.[0]?.customerGoogleServiceAccount,
|
|
267
|
+
* });
|
|
268
|
+
* ```
|
|
269
|
+
*
|
|
270
|
+
* ## Getting Started
|
|
271
|
+
*
|
|
272
|
+
* The following end-to-end examples might help to get started with `confluentcloud.ProviderIntegrationAuthorization` data source:
|
|
273
|
+
* * provider-integration-azure: Complete Azure Provider Integration setup
|
|
274
|
+
* * provider-integration-gcp: Complete GCP Provider Integration setup
|
|
275
|
+
*/
|
|
16
276
|
function getProviderIntegrationAuthorizationOutput(args, opts) {
|
|
17
277
|
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
|
|
18
278
|
return pulumi.runtime.invokeOutput("confluentcloud:index/getProviderIntegrationAuthorization:getProviderIntegrationAuthorization", {
|