diff --git a/examples/go.mod b/examples/go.mod index 0b15354c20..85e3386629 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -5,8 +5,8 @@ go 1.21 require ( github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.0 github.com/pulumi/pulumi-gcp/sdk/v7 v7.0.0-alpha.0 - github.com/pulumi/pulumi/pkg/v3 v3.96.2 - github.com/pulumi/pulumi/sdk/v3 v3.96.2 + github.com/pulumi/pulumi/pkg/v3 v3.98.0 + github.com/pulumi/pulumi/sdk/v3 v3.98.0 github.com/stretchr/testify v1.8.4 ) @@ -148,7 +148,7 @@ require ( github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect - github.com/pulumi/esc v0.6.1-0.20231111193429-44b746a5b3b5 // indirect + github.com/pulumi/esc v0.6.1 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect diff --git a/examples/go.sum b/examples/go.sum index a1193f18ba..951811c9a4 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1447,14 +1447,14 @@ github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGO github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= -github.com/pulumi/esc v0.6.1-0.20231111193429-44b746a5b3b5 h1:1DJMji9F7XPea46bSuhy4/85n8J4/Mfz8PWLZtjKKiI= -github.com/pulumi/esc v0.6.1-0.20231111193429-44b746a5b3b5/go.mod h1:Y6W21yUukvxS2NnS5ae1beMSPhMvj0xNAYcDqDHVj/g= +github.com/pulumi/esc v0.6.1 h1:X6gRcw1cH/oNkZG8MuD4rUhetO7fUTGKZXPzQWAPX40= +github.com/pulumi/esc v0.6.1/go.mod h1:1+tlMNX29iqfyElwo0tc2eRx9MWjWHRjrPLyLvTQMqM= github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.0 h1:toKDTQrGp11iU3FQsxqFN+1fgxx4GQFvsmLbUe9++B8= github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.0/go.mod h1:0H6CtMuOB754n2Yzu6XqHqeU99fmH/fsBUKLsMic2OY= -github.com/pulumi/pulumi/pkg/v3 v3.96.2 h1:d+zDsh4K1j90q/upDRkhgxHkspP20Xxd3g6OaMbw574= -github.com/pulumi/pulumi/pkg/v3 v3.96.2/go.mod h1:lR+q06XrnEqRzJXZ6IeHb4nu+U5fswFcc51Q0MRBTio= -github.com/pulumi/pulumi/sdk/v3 v3.96.2 h1:q5ZKdf+e9JR+a6Eiueg0Ohy6jCQGk9pO2V7xI/qGP3I= -github.com/pulumi/pulumi/sdk/v3 v3.96.2/go.mod h1:yvD23IIRiqIXuo4kaZNe5zK/uT0nhO99wr6BVEqoi7A= +github.com/pulumi/pulumi/pkg/v3 v3.98.0 h1:lQyjy31az5bMfTmsyqeeAEQMKjrLyx8IL+C27D6b+x4= +github.com/pulumi/pulumi/pkg/v3 v3.98.0/go.mod h1:aeQmrCMwvMOIz1s6qOk+vg1oCWff5hmeRrg1vYv8eRU= +github.com/pulumi/pulumi/sdk/v3 v3.98.0 h1:H18eCWKiv7oXy7n/dni3JxFfwvY3UEjAzjeqtaaZT+I= +github.com/pulumi/pulumi/sdk/v3 v3.98.0/go.mod h1:/bHwzPhsCJCjzY0STmvZ7DzV5gZN6iDSXQ/gitEAyws= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= diff --git a/provider/cmd/pulumi-resource-gcp/bridge-metadata.json b/provider/cmd/pulumi-resource-gcp/bridge-metadata.json index a8ce0fa122..b8e93ba8ac 100644 --- a/provider/cmd/pulumi-resource-gcp/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-gcp/bridge-metadata.json @@ -4222,90 +4222,6 @@ "current": "gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy", "majorVersion": 7 }, - "google_cloudiot_device": { - "current": "gcp:iot/device:Device", - "majorVersion": 6, - "fields": { - "config": { - "maxItemsOne": false - }, - "credentials": { - "maxItemsOne": false, - "elem": { - "fields": { - "public_key": { - "maxItemsOne": true - } - } - } - }, - "gateway_config": { - "maxItemsOne": true - }, - "last_error_status": { - "maxItemsOne": false, - "elem": { - "fields": { - "details": { - "maxItemsOne": false - } - } - } - }, - "state": { - "maxItemsOne": false - } - } - }, - "google_cloudiot_registry": { - "current": "gcp:iot/registry:Registry", - "majorVersion": 6, - "fields": { - "credentials": { - "maxItemsOne": false - }, - "event_notification_configs": { - "maxItemsOne": false - } - } - }, - "google_cloudiot_registry_iam_binding": { - "current": "gcp:iot/registryIamBinding:RegistryIamBinding", - "majorVersion": 6, - "fields": { - "condition": { - "maxItemsOne": true - }, - "members": { - "maxItemsOne": false - } - } - }, - "google_cloudiot_registry_iam_member": { - "current": "gcp:iot/registryIamMember:RegistryIamMember", - "majorVersion": 6, - "fields": { - "condition": { - "maxItemsOne": true - } - } - }, - "google_cloudiot_registry_iam_policy": { - "current": "gcp:iot/registryIamPolicy:RegistryIamPolicy", - "majorVersion": 6 - }, - "google_cloudiot_registry_legacy": { - "current": "gcp:kms/registry:Registry", - "majorVersion": 6, - "fields": { - "credentials": { - "maxItemsOne": false - }, - "event_notification_configs": { - "maxItemsOne": false - } - } - }, "google_composer_environment": { "current": "gcp:composer/environment:Environment", "majorVersion": 7, @@ -14920,10 +14836,6 @@ "current": "gcp:firebase/project:Project", "majorVersion": 7 }, - "google_firebase_project_location": { - "current": "gcp:firebase/projectLocation:ProjectLocation", - "majorVersion": 6 - }, "google_firebase_storage_bucket": { "current": "gcp:firebase/storageBucket:StorageBucket", "majorVersion": 7 @@ -15111,75 +15023,6 @@ } } }, - "google_game_services_game_server_cluster": { - "current": "gcp:gameservices/gameServerCluster:GameServerCluster", - "majorVersion": 6, - "fields": { - "connection_info": { - "maxItemsOne": true, - "elem": { - "fields": { - "gke_cluster_reference": { - "maxItemsOne": true - } - } - } - } - } - }, - "google_game_services_game_server_config": { - "current": "gcp:gameservices/gameServerConfig:GameServerConfig", - "majorVersion": 6, - "fields": { - "fleet_configs": { - "maxItemsOne": false - }, - "scaling_configs": { - "maxItemsOne": false, - "elem": { - "fields": { - "schedules": { - "maxItemsOne": false - }, - "selectors": { - "maxItemsOne": false - } - } - } - } - } - }, - "google_game_services_game_server_deployment": { - "current": "gcp:gameservices/gameServerDeployment:GameServerDeployment", - "majorVersion": 6 - }, - "google_game_services_game_server_deployment_rollout": { - "current": "gcp:gameservices/gameServerDeploymentRollout:GameServerDeploymentRollout", - "majorVersion": 6, - "fields": { - "game_server_config_overrides": { - "maxItemsOne": false, - "elem": { - "fields": { - "realms_selector": { - "maxItemsOne": true, - "elem": { - "fields": { - "realms": { - "maxItemsOne": false - } - } - } - } - } - } - } - } - }, - "google_game_services_realm": { - "current": "gcp:gameservices/realm:Realm", - "majorVersion": 6 - }, "google_gke_backup_backup_plan": { "current": "gcp:gkebackup/backupPlan:BackupPlan", "majorVersion": 7, @@ -23959,10 +23802,6 @@ "current": "gcp:cloudfunctions/getFunctionIamPolicy:getFunctionIamPolicy", "majorVersion": 7 }, - "google_cloudiot_registry_iam_policy": { - "current": "gcp:iot/getRegistryIamPolicy:getRegistryIamPolicy", - "majorVersion": 6 - }, "google_composer_environment": { "current": "gcp:composer/getEnvironment:getEnvironment", "majorVersion": 7, @@ -25926,11 +25765,9 @@ "key_signing_keys": { "maxItemsOne": false, "elem": { - "elem": { - "fields": { - "digests": { - "maxItemsOne": false - } + "fields": { + "digests": { + "maxItemsOne": false } } } @@ -25938,11 +25775,9 @@ "zone_signing_keys": { "maxItemsOne": false, "elem": { - "elem": { - "fields": { - "digests": { - "maxItemsOne": false - } + "fields": { + "digests": { + "maxItemsOne": false } } } @@ -26076,29 +25911,6 @@ } } }, - "google_game_services_game_server_deployment_rollout": { - "current": "gcp:gameservices/getGameServerDeploymentRollout:getGameServerDeploymentRollout", - "majorVersion": 6, - "fields": { - "game_server_config_overrides": { - "maxItemsOne": false, - "elem": { - "fields": { - "realms_selector": { - "maxItemsOne": false, - "elem": { - "fields": { - "realms": { - "maxItemsOne": false - } - } - } - } - } - } - } - } - }, "google_gke_backup_backup_plan_iam_policy": { "current": "gcp:gkebackup/getBackupPlanIamPolicy:getBackupPlanIamPolicy", "majorVersion": 7 @@ -26410,9 +26222,6 @@ "current": "gcp:organizations/getOrganization:getOrganization", "majorVersion": 7 }, - "google_organization_iam_policy": { - "current": "gcp:organizations/getIamPolicy:getIamPolicy" - }, "google_privateca_ca_pool_iam_policy": { "current": "gcp:certificateauthority/getCaPoolIamPolicy:getCaPoolIamPolicy", "majorVersion": 7 @@ -27537,6 +27346,45 @@ } } }, + "auto-settings": { + "resources": { + "google_compute_autoscaler": { + "renames": [ + "gcp:compute/autoscalar:Autoscalar" + ] + }, + "google_gkeonprem_vmware_cluster": { + "maxItemsOneOverrides": { + "vcenter": false + } + }, + "google_service_account": { + "renames": [ + "gcp:serviceAccount/account:Account" + ] + }, + "google_service_account_iam_binding": { + "renames": [ + "gcp:serviceAccount/iAMBinding:IAMBinding" + ] + }, + "google_service_account_iam_member": { + "renames": [ + "gcp:serviceAccount/iAMMember:IAMMember" + ] + }, + "google_service_account_iam_policy": { + "renames": [ + "gcp:serviceAccount/iAMPolicy:IAMPolicy" + ] + }, + "google_service_account_key": { + "renames": [ + "gcp:serviceAccount/key:Key" + ] + } + } + }, "mux": { "resources": { "gcp:accesscontextmanager/accessLevel:AccessLevel": 0, @@ -49436,4 +49284,4 @@ "workstationsCustomEndpoint": "workstations_custom_endpoint" } } -} +} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-gcp/schema.json b/provider/cmd/pulumi-resource-gcp/schema.json index 7a9662e05c..aa3a3dcc08 100644 --- a/provider/cmd/pulumi-resource-gcp/schema.json +++ b/provider/cmd/pulumi-resource-gcp/schema.json @@ -6630,18 +6630,15 @@ "properties": { "datasetId": { "type": "string", - "description": "The ID of the dataset containing this table.\n", - "willReplaceOnChanges": true + "description": "The ID of the dataset containing this table.\n" }, "projectId": { "type": "string", - "description": "The ID of the project containing this table.\n", - "willReplaceOnChanges": true + "description": "The ID of the project containing this table.\n" }, "routineId": { "type": "string", - "description": "The ID of the routine. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 256 characters.\n", - "willReplaceOnChanges": true + "description": "The ID of the routine. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 256 characters.\n" } }, "type": "object", @@ -6655,18 +6652,15 @@ "properties": { "datasetId": { "type": "string", - "description": "The ID of the dataset containing this table.\n", - "willReplaceOnChanges": true + "description": "The ID of the dataset containing this table.\n" }, "projectId": { "type": "string", - "description": "The ID of the project containing this table.\n", - "willReplaceOnChanges": true + "description": "The ID of the project containing this table.\n" }, "tableId": { "type": "string", - "description": "The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.\n", - "willReplaceOnChanges": true + "description": "The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.\n" } }, "type": "object", @@ -96906,7 +96900,7 @@ } }, "gcp:apigateway/apiConfig:ApiConfig": { - "description": "An API Configuration is an association of an API Controller Config and a Gateway Config\n\nTo get more information about ApiConfig, see:\n\n* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis.configs)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/api-gateway/docs/creating-api-config)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Apigateway Api Config Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst apiCfgApi = new gcp.apigateway.Api(\"apiCfgApi\", {apiId: \"my-api\"}, {\n provider: google_beta,\n});\nconst apiCfgApiConfig = new gcp.apigateway.ApiConfig(\"apiCfgApiConfig\", {\n api: apiCfgApi.apiId,\n apiConfigId: \"my-config\",\n openapiDocuments: [{\n document: {\n path: \"spec.yaml\",\n contents: Buffer.from(fs.readFileSync(\"test-fixtures/openapi.yaml\"), 'binary').toString('base64'),\n },\n }],\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\napi_cfg_api = gcp.apigateway.Api(\"apiCfgApi\", api_id=\"my-api\",\nopts=pulumi.ResourceOptions(provider=google_beta))\napi_cfg_api_config = gcp.apigateway.ApiConfig(\"apiCfgApiConfig\",\n api=api_cfg_api.api_id,\n api_config_id=\"my-config\",\n openapi_documents=[gcp.apigateway.ApiConfigOpenapiDocumentArgs(\n document=gcp.apigateway.ApiConfigOpenapiDocumentDocumentArgs(\n path=\"spec.yaml\",\n contents=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"test-fixtures/openapi.yaml\"),\n ),\n )],\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apiCfgApi = new Gcp.ApiGateway.Api(\"apiCfgApi\", new()\n {\n ApiId = \"my-api\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var apiCfgApiConfig = new Gcp.ApiGateway.ApiConfig(\"apiCfgApiConfig\", new()\n {\n Api = apiCfgApi.ApiId,\n ApiConfigId = \"my-config\",\n OpenapiDocuments = new[]\n {\n new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentArgs\n {\n Document = new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentDocumentArgs\n {\n Path = \"spec.yaml\",\n Contents = ReadFileBase64(\"test-fixtures/openapi.yaml\"),\n },\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapiCfgApi, err := apigateway.NewApi(ctx, \"apiCfgApi\", \u0026apigateway.ApiArgs{\n\t\t\tApiId: pulumi.String(\"my-api\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewApiConfig(ctx, \"apiCfgApiConfig\", \u0026apigateway.ApiConfigArgs{\n\t\t\tApi: apiCfgApi.ApiId,\n\t\t\tApiConfigId: pulumi.String(\"my-config\"),\n\t\t\tOpenapiDocuments: apigateway.ApiConfigOpenapiDocumentArray{\n\t\t\t\t\u0026apigateway.ApiConfigOpenapiDocumentArgs{\n\t\t\t\t\tDocument: \u0026apigateway.ApiConfigOpenapiDocumentDocumentArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"spec.yaml\"),\n\t\t\t\t\t\tContents: filebase64OrPanic(\"test-fixtures/openapi.yaml\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apigateway.Api;\nimport com.pulumi.gcp.apigateway.ApiArgs;\nimport com.pulumi.gcp.apigateway.ApiConfig;\nimport com.pulumi.gcp.apigateway.ApiConfigArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentDocumentArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var apiCfgApi = new Api(\"apiCfgApi\", ApiArgs.builder() \n .apiId(\"my-api\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var apiCfgApiConfig = new ApiConfig(\"apiCfgApiConfig\", ApiConfigArgs.builder() \n .api(apiCfgApi.apiId())\n .apiConfigId(\"my-config\")\n .openapiDocuments(ApiConfigOpenapiDocumentArgs.builder()\n .document(ApiConfigOpenapiDocumentDocumentArgs.builder()\n .path(\"spec.yaml\")\n .contents(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"test-fixtures/openapi.yaml\"))))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApiConfig can be imported using any of these accepted formats* `projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}` * `{{project}}/{{api}}/{{api_config_id}}` * `{{api}}/{{api_config_id}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import ApiConfig using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}\"\n\n to = google_api_gateway_api_config.default }\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), ApiConfig can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig default projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig default {{project}}/{{api}}/{{api_config_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig default {{api}}/{{api_config_id}}\n```\n\n ", + "description": "An API Configuration is an association of an API Controller Config and a Gateway Config\n\nTo get more information about ApiConfig, see:\n\n* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis.configs)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/api-gateway/docs/creating-api-config)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Apigateway Api Config Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst apiCfgApi = new gcp.apigateway.Api(\"apiCfgApi\", {apiId: \"my-api\"}, {\n provider: google_beta,\n});\nconst apiCfgApiConfig = new gcp.apigateway.ApiConfig(\"apiCfgApiConfig\", {\n api: apiCfgApi.apiId,\n apiConfigId: \"my-config\",\n openapiDocuments: [{\n document: {\n path: \"spec.yaml\",\n contents: Buffer.from(fs.readFileSync(\"test-fixtures/openapi.yaml\", 'binary')).toString('base64'),\n },\n }],\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\napi_cfg_api = gcp.apigateway.Api(\"apiCfgApi\", api_id=\"my-api\",\nopts=pulumi.ResourceOptions(provider=google_beta))\napi_cfg_api_config = gcp.apigateway.ApiConfig(\"apiCfgApiConfig\",\n api=api_cfg_api.api_id,\n api_config_id=\"my-config\",\n openapi_documents=[gcp.apigateway.ApiConfigOpenapiDocumentArgs(\n document=gcp.apigateway.ApiConfigOpenapiDocumentDocumentArgs(\n path=\"spec.yaml\",\n contents=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"test-fixtures/openapi.yaml\"),\n ),\n )],\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\t\nstring ReadFileBase64(string path) \n{\n return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apiCfgApi = new Gcp.ApiGateway.Api(\"apiCfgApi\", new()\n {\n ApiId = \"my-api\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var apiCfgApiConfig = new Gcp.ApiGateway.ApiConfig(\"apiCfgApiConfig\", new()\n {\n Api = apiCfgApi.ApiId,\n ApiConfigId = \"my-config\",\n OpenapiDocuments = new[]\n {\n new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentArgs\n {\n Document = new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentDocumentArgs\n {\n Path = \"spec.yaml\",\n Contents = ReadFileBase64(\"test-fixtures/openapi.yaml\"),\n },\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn base64.StdEncoding.EncodeToString(fileData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapiCfgApi, err := apigateway.NewApi(ctx, \"apiCfgApi\", \u0026apigateway.ApiArgs{\n\t\t\tApiId: pulumi.String(\"my-api\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewApiConfig(ctx, \"apiCfgApiConfig\", \u0026apigateway.ApiConfigArgs{\n\t\t\tApi: apiCfgApi.ApiId,\n\t\t\tApiConfigId: pulumi.String(\"my-config\"),\n\t\t\tOpenapiDocuments: apigateway.ApiConfigOpenapiDocumentArray{\n\t\t\t\t\u0026apigateway.ApiConfigOpenapiDocumentArgs{\n\t\t\t\t\tDocument: \u0026apigateway.ApiConfigOpenapiDocumentDocumentArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"spec.yaml\"),\n\t\t\t\t\t\tContents: filebase64OrPanic(\"test-fixtures/openapi.yaml\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apigateway.Api;\nimport com.pulumi.gcp.apigateway.ApiArgs;\nimport com.pulumi.gcp.apigateway.ApiConfig;\nimport com.pulumi.gcp.apigateway.ApiConfigArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentDocumentArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var apiCfgApi = new Api(\"apiCfgApi\", ApiArgs.builder() \n .apiId(\"my-api\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var apiCfgApiConfig = new ApiConfig(\"apiCfgApiConfig\", ApiConfigArgs.builder() \n .api(apiCfgApi.apiId())\n .apiConfigId(\"my-config\")\n .openapiDocuments(ApiConfigOpenapiDocumentArgs.builder()\n .document(ApiConfigOpenapiDocumentDocumentArgs.builder()\n .path(\"spec.yaml\")\n .contents(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"test-fixtures/openapi.yaml\"))))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApiConfig can be imported using any of these accepted formats* `projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}` * `{{project}}/{{api}}/{{api_config_id}}` * `{{api}}/{{api_config_id}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import ApiConfig using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}\"\n\n to = google_api_gateway_api_config.default }\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), ApiConfig can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig default projects/{{project}}/locations/global/apis/{{api}}/configs/{{api_config_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig default {{project}}/{{api}}/{{api_config_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/apiConfig:ApiConfig default {{api}}/{{api_config_id}}\n```\n\n ", "properties": { "api": { "type": "string", @@ -97721,7 +97715,7 @@ } }, "gcp:apigateway/gateway:Gateway": { - "description": "A consumable API that can be used by multiple Gateways.\n\nTo get more information about Gateway, see:\n\n* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/api-gateway/docs/quickstart)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Apigateway Gateway Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst apiGwApi = new gcp.apigateway.Api(\"apiGwApi\", {apiId: \"my-api\"}, {\n provider: google_beta,\n});\nconst apiGwApiConfig = new gcp.apigateway.ApiConfig(\"apiGwApiConfig\", {\n api: apiGwApi.apiId,\n apiConfigId: \"my-config\",\n openapiDocuments: [{\n document: {\n path: \"spec.yaml\",\n contents: Buffer.from(fs.readFileSync(\"test-fixtures/openapi.yaml\"), 'binary').toString('base64'),\n },\n }],\n}, {\n provider: google_beta,\n});\nconst apiGwGateway = new gcp.apigateway.Gateway(\"apiGwGateway\", {\n apiConfig: apiGwApiConfig.id,\n gatewayId: \"my-gateway\",\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\napi_gw_api = gcp.apigateway.Api(\"apiGwApi\", api_id=\"my-api\",\nopts=pulumi.ResourceOptions(provider=google_beta))\napi_gw_api_config = gcp.apigateway.ApiConfig(\"apiGwApiConfig\",\n api=api_gw_api.api_id,\n api_config_id=\"my-config\",\n openapi_documents=[gcp.apigateway.ApiConfigOpenapiDocumentArgs(\n document=gcp.apigateway.ApiConfigOpenapiDocumentDocumentArgs(\n path=\"spec.yaml\",\n contents=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"test-fixtures/openapi.yaml\"),\n ),\n )],\n opts=pulumi.ResourceOptions(provider=google_beta))\napi_gw_gateway = gcp.apigateway.Gateway(\"apiGwGateway\",\n api_config=api_gw_api_config.id,\n gateway_id=\"my-gateway\",\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apiGwApi = new Gcp.ApiGateway.Api(\"apiGwApi\", new()\n {\n ApiId = \"my-api\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var apiGwApiConfig = new Gcp.ApiGateway.ApiConfig(\"apiGwApiConfig\", new()\n {\n Api = apiGwApi.ApiId,\n ApiConfigId = \"my-config\",\n OpenapiDocuments = new[]\n {\n new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentArgs\n {\n Document = new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentDocumentArgs\n {\n Path = \"spec.yaml\",\n Contents = ReadFileBase64(\"test-fixtures/openapi.yaml\"),\n },\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var apiGwGateway = new Gcp.ApiGateway.Gateway(\"apiGwGateway\", new()\n {\n ApiConfig = apiGwApiConfig.Id,\n GatewayId = \"my-gateway\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapiGwApi, err := apigateway.NewApi(ctx, \"apiGwApi\", \u0026apigateway.ApiArgs{\n\t\t\tApiId: pulumi.String(\"my-api\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapiGwApiConfig, err := apigateway.NewApiConfig(ctx, \"apiGwApiConfig\", \u0026apigateway.ApiConfigArgs{\n\t\t\tApi: apiGwApi.ApiId,\n\t\t\tApiConfigId: pulumi.String(\"my-config\"),\n\t\t\tOpenapiDocuments: apigateway.ApiConfigOpenapiDocumentArray{\n\t\t\t\t\u0026apigateway.ApiConfigOpenapiDocumentArgs{\n\t\t\t\t\tDocument: \u0026apigateway.ApiConfigOpenapiDocumentDocumentArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"spec.yaml\"),\n\t\t\t\t\t\tContents: filebase64OrPanic(\"test-fixtures/openapi.yaml\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewGateway(ctx, \"apiGwGateway\", \u0026apigateway.GatewayArgs{\n\t\t\tApiConfig: apiGwApiConfig.ID(),\n\t\t\tGatewayId: pulumi.String(\"my-gateway\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apigateway.Api;\nimport com.pulumi.gcp.apigateway.ApiArgs;\nimport com.pulumi.gcp.apigateway.ApiConfig;\nimport com.pulumi.gcp.apigateway.ApiConfigArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentDocumentArgs;\nimport com.pulumi.gcp.apigateway.Gateway;\nimport com.pulumi.gcp.apigateway.GatewayArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var apiGwApi = new Api(\"apiGwApi\", ApiArgs.builder() \n .apiId(\"my-api\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var apiGwApiConfig = new ApiConfig(\"apiGwApiConfig\", ApiConfigArgs.builder() \n .api(apiGwApi.apiId())\n .apiConfigId(\"my-config\")\n .openapiDocuments(ApiConfigOpenapiDocumentArgs.builder()\n .document(ApiConfigOpenapiDocumentDocumentArgs.builder()\n .path(\"spec.yaml\")\n .contents(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"test-fixtures/openapi.yaml\"))))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var apiGwGateway = new Gateway(\"apiGwGateway\", GatewayArgs.builder() \n .apiConfig(apiGwApiConfig.id())\n .gatewayId(\"my-gateway\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGateway can be imported using any of these accepted formats* `projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}` * `{{project}}/{{region}}/{{gateway_id}}` * `{{region}}/{{gateway_id}}` * `{{gateway_id}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Gateway using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}\"\n\n to = google_api_gateway_gateway.default }\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Gateway can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default {{project}}/{{region}}/{{gateway_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default {{region}}/{{gateway_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default {{gateway_id}}\n```\n\n ", + "description": "A consumable API that can be used by multiple Gateways.\n\nTo get more information about Gateway, see:\n\n* [API documentation](https://cloud.google.com/api-gateway/docs/reference/rest/v1beta/projects.locations.apis)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/api-gateway/docs/quickstart)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Apigateway Gateway Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst apiGwApi = new gcp.apigateway.Api(\"apiGwApi\", {apiId: \"my-api\"}, {\n provider: google_beta,\n});\nconst apiGwApiConfig = new gcp.apigateway.ApiConfig(\"apiGwApiConfig\", {\n api: apiGwApi.apiId,\n apiConfigId: \"my-config\",\n openapiDocuments: [{\n document: {\n path: \"spec.yaml\",\n contents: Buffer.from(fs.readFileSync(\"test-fixtures/openapi.yaml\", 'binary')).toString('base64'),\n },\n }],\n}, {\n provider: google_beta,\n});\nconst apiGwGateway = new gcp.apigateway.Gateway(\"apiGwGateway\", {\n apiConfig: apiGwApiConfig.id,\n gatewayId: \"my-gateway\",\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\napi_gw_api = gcp.apigateway.Api(\"apiGwApi\", api_id=\"my-api\",\nopts=pulumi.ResourceOptions(provider=google_beta))\napi_gw_api_config = gcp.apigateway.ApiConfig(\"apiGwApiConfig\",\n api=api_gw_api.api_id,\n api_config_id=\"my-config\",\n openapi_documents=[gcp.apigateway.ApiConfigOpenapiDocumentArgs(\n document=gcp.apigateway.ApiConfigOpenapiDocumentDocumentArgs(\n path=\"spec.yaml\",\n contents=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"test-fixtures/openapi.yaml\"),\n ),\n )],\n opts=pulumi.ResourceOptions(provider=google_beta))\napi_gw_gateway = gcp.apigateway.Gateway(\"apiGwGateway\",\n api_config=api_gw_api_config.id,\n gateway_id=\"my-gateway\",\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\t\nstring ReadFileBase64(string path) \n{\n return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apiGwApi = new Gcp.ApiGateway.Api(\"apiGwApi\", new()\n {\n ApiId = \"my-api\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var apiGwApiConfig = new Gcp.ApiGateway.ApiConfig(\"apiGwApiConfig\", new()\n {\n Api = apiGwApi.ApiId,\n ApiConfigId = \"my-config\",\n OpenapiDocuments = new[]\n {\n new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentArgs\n {\n Document = new Gcp.ApiGateway.Inputs.ApiConfigOpenapiDocumentDocumentArgs\n {\n Path = \"spec.yaml\",\n Contents = ReadFileBase64(\"test-fixtures/openapi.yaml\"),\n },\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var apiGwGateway = new Gcp.ApiGateway.Gateway(\"apiGwGateway\", new()\n {\n ApiConfig = apiGwApiConfig.Id,\n GatewayId = \"my-gateway\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn base64.StdEncoding.EncodeToString(fileData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapiGwApi, err := apigateway.NewApi(ctx, \"apiGwApi\", \u0026apigateway.ApiArgs{\n\t\t\tApiId: pulumi.String(\"my-api\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapiGwApiConfig, err := apigateway.NewApiConfig(ctx, \"apiGwApiConfig\", \u0026apigateway.ApiConfigArgs{\n\t\t\tApi: apiGwApi.ApiId,\n\t\t\tApiConfigId: pulumi.String(\"my-config\"),\n\t\t\tOpenapiDocuments: apigateway.ApiConfigOpenapiDocumentArray{\n\t\t\t\t\u0026apigateway.ApiConfigOpenapiDocumentArgs{\n\t\t\t\t\tDocument: \u0026apigateway.ApiConfigOpenapiDocumentDocumentArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"spec.yaml\"),\n\t\t\t\t\t\tContents: filebase64OrPanic(\"test-fixtures/openapi.yaml\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewGateway(ctx, \"apiGwGateway\", \u0026apigateway.GatewayArgs{\n\t\t\tApiConfig: apiGwApiConfig.ID(),\n\t\t\tGatewayId: pulumi.String(\"my-gateway\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apigateway.Api;\nimport com.pulumi.gcp.apigateway.ApiArgs;\nimport com.pulumi.gcp.apigateway.ApiConfig;\nimport com.pulumi.gcp.apigateway.ApiConfigArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentArgs;\nimport com.pulumi.gcp.apigateway.inputs.ApiConfigOpenapiDocumentDocumentArgs;\nimport com.pulumi.gcp.apigateway.Gateway;\nimport com.pulumi.gcp.apigateway.GatewayArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var apiGwApi = new Api(\"apiGwApi\", ApiArgs.builder() \n .apiId(\"my-api\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var apiGwApiConfig = new ApiConfig(\"apiGwApiConfig\", ApiConfigArgs.builder() \n .api(apiGwApi.apiId())\n .apiConfigId(\"my-config\")\n .openapiDocuments(ApiConfigOpenapiDocumentArgs.builder()\n .document(ApiConfigOpenapiDocumentDocumentArgs.builder()\n .path(\"spec.yaml\")\n .contents(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"test-fixtures/openapi.yaml\"))))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var apiGwGateway = new Gateway(\"apiGwGateway\", GatewayArgs.builder() \n .apiConfig(apiGwApiConfig.id())\n .gatewayId(\"my-gateway\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGateway can be imported using any of these accepted formats* `projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}` * `{{project}}/{{region}}/{{gateway_id}}` * `{{region}}/{{gateway_id}}` * `{{gateway_id}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Gateway using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}\"\n\n to = google_api_gateway_gateway.default }\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Gateway can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default projects/{{project}}/locations/{{region}}/gateways/{{gateway_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default {{project}}/{{region}}/{{gateway_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default {{region}}/{{gateway_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigateway/gateway:Gateway default {{gateway_id}}\n```\n\n ", "properties": { "apiConfig": { "type": "string", @@ -111395,7 +111389,7 @@ } }, "gcp:certificateauthority/certificate:Certificate": { - "description": "A Certificate corresponds to a signed X.509 certificate issued by a Certificate.\n\n\n\u003e **Note:** The Certificate Authority that is referenced by this resource **must** be\n`tier = \"ENTERPRISE\"`\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Privateca Certificate With Template\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultCaPool = new gcp.certificateauthority.CaPool(\"defaultCaPool\", {\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n});\nconst defaultCertificateTemplate = new gcp.certificateauthority.CertificateTemplate(\"defaultCertificateTemplate\", {\n location: \"us-central1\",\n description: \"An updated sample certificate template\",\n identityConstraints: {\n allowSubjectAltNamesPassthrough: true,\n allowSubjectPassthrough: true,\n celExpression: {\n description: \"Always true\",\n expression: \"true\",\n location: \"any.file.anywhere\",\n title: \"Sample expression\",\n },\n },\n passthroughExtensions: {\n additionalExtensions: [{\n objectIdPaths: [\n 1,\n 6,\n ],\n }],\n knownExtensions: [\"EXTENDED_KEY_USAGE\"],\n },\n predefinedValues: {\n additionalExtensions: [{\n objectId: {\n objectIdPaths: [\n 1,\n 6,\n ],\n },\n value: \"c3RyaW5nCg==\",\n critical: true,\n }],\n aiaOcspServers: [\"string\"],\n caOptions: {\n isCa: false,\n maxIssuerPathLength: 6,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: false,\n contentCommitment: true,\n crlSign: false,\n dataEncipherment: true,\n decipherOnly: true,\n digitalSignature: true,\n encipherOnly: true,\n keyAgreement: true,\n keyEncipherment: true,\n },\n extendedKeyUsage: {\n clientAuth: true,\n codeSigning: true,\n emailProtection: true,\n ocspSigning: true,\n serverAuth: true,\n timeStamping: true,\n },\n unknownExtendedKeyUsages: [{\n objectIdPaths: [\n 1,\n 6,\n ],\n }],\n },\n policyIds: [{\n objectIdPaths: [\n 1,\n 6,\n ],\n }],\n },\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"defaultAuthority\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthorityId: \"my-authority\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst defaultCertificate = new gcp.certificateauthority.Certificate(\"defaultCertificate\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthority: defaultAuthority.certificateAuthorityId,\n lifetime: \"860s\",\n pemCsr: fs.readFileSync(\"test-fixtures/rsa_csr.pem\", \"utf8\"),\n certificateTemplate: defaultCertificateTemplate.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_ca_pool = gcp.certificateauthority.CaPool(\"defaultCaPool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\")\ndefault_certificate_template = gcp.certificateauthority.CertificateTemplate(\"defaultCertificateTemplate\",\n location=\"us-central1\",\n description=\"An updated sample certificate template\",\n identity_constraints=gcp.certificateauthority.CertificateTemplateIdentityConstraintsArgs(\n allow_subject_alt_names_passthrough=True,\n allow_subject_passthrough=True,\n cel_expression=gcp.certificateauthority.CertificateTemplateIdentityConstraintsCelExpressionArgs(\n description=\"Always true\",\n expression=\"true\",\n location=\"any.file.anywhere\",\n title=\"Sample expression\",\n ),\n ),\n passthrough_extensions=gcp.certificateauthority.CertificateTemplatePassthroughExtensionsArgs(\n additional_extensions=[gcp.certificateauthority.CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n )],\n known_extensions=[\"EXTENDED_KEY_USAGE\"],\n ),\n predefined_values=gcp.certificateauthority.CertificateTemplatePredefinedValuesArgs(\n additional_extensions=[gcp.certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionArgs(\n object_id=gcp.certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n ),\n value=\"c3RyaW5nCg==\",\n critical=True,\n )],\n aia_ocsp_servers=[\"string\"],\n ca_options=gcp.certificateauthority.CertificateTemplatePredefinedValuesCaOptionsArgs(\n is_ca=False,\n max_issuer_path_length=6,\n ),\n key_usage=gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs(\n cert_sign=False,\n content_commitment=True,\n crl_sign=False,\n data_encipherment=True,\n decipher_only=True,\n digital_signature=True,\n encipher_only=True,\n key_agreement=True,\n key_encipherment=True,\n ),\n extended_key_usage=gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs(\n client_auth=True,\n code_signing=True,\n email_protection=True,\n ocsp_signing=True,\n server_auth=True,\n time_stamping=True,\n ),\n unknown_extended_key_usages=[gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n )],\n ),\n policy_ids=[gcp.certificateauthority.CertificateTemplatePredefinedValuesPolicyIdArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n )],\n ))\ndefault_authority = gcp.certificateauthority.Authority(\"defaultAuthority\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority_id=\"my-authority\",\n config=gcp.certificateauthority.AuthorityConfigArgs(\n subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(\n organization=\"HashiCorp\",\n common_name=\"my-certificate-authority\",\n ),\n subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(\n dns_names=[\"hashicorp.com\"],\n ),\n ),\n x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(\n is_ca=True,\n ),\n key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n cert_sign=True,\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=False,\n ),\n ),\n ),\n ),\n key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(\n algorithm=\"RSA_PKCS1_4096_SHA256\",\n ),\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault_certificate = gcp.certificateauthority.Certificate(\"defaultCertificate\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority=default_authority.certificate_authority_id,\n lifetime=\"860s\",\n pem_csr=(lambda path: open(path).read())(\"test-fixtures/rsa_csr.pem\"),\n certificate_template=default_certificate_template.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultCaPool = new Gcp.CertificateAuthority.CaPool(\"defaultCaPool\", new()\n {\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n });\n\n var defaultCertificateTemplate = new Gcp.CertificateAuthority.CertificateTemplate(\"defaultCertificateTemplate\", new()\n {\n Location = \"us-central1\",\n Description = \"An updated sample certificate template\",\n IdentityConstraints = new Gcp.CertificateAuthority.Inputs.CertificateTemplateIdentityConstraintsArgs\n {\n AllowSubjectAltNamesPassthrough = true,\n AllowSubjectPassthrough = true,\n CelExpression = new Gcp.CertificateAuthority.Inputs.CertificateTemplateIdentityConstraintsCelExpressionArgs\n {\n Description = \"Always true\",\n Expression = \"true\",\n Location = \"any.file.anywhere\",\n Title = \"Sample expression\",\n },\n },\n PassthroughExtensions = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePassthroughExtensionsArgs\n {\n AdditionalExtensions = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n },\n KnownExtensions = new[]\n {\n \"EXTENDED_KEY_USAGE\",\n },\n },\n PredefinedValues = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesArgs\n {\n AdditionalExtensions = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesAdditionalExtensionArgs\n {\n ObjectId = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n Value = \"c3RyaW5nCg==\",\n Critical = true,\n },\n },\n AiaOcspServers = new[]\n {\n \"string\",\n },\n CaOptions = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesCaOptionsArgs\n {\n IsCa = false,\n MaxIssuerPathLength = 6,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs\n {\n CertSign = false,\n ContentCommitment = true,\n CrlSign = false,\n DataEncipherment = true,\n DecipherOnly = true,\n DigitalSignature = true,\n EncipherOnly = true,\n KeyAgreement = true,\n KeyEncipherment = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs\n {\n ClientAuth = true,\n CodeSigning = true,\n EmailProtection = true,\n OcspSigning = true,\n ServerAuth = true,\n TimeStamping = true,\n },\n UnknownExtendedKeyUsages = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n },\n },\n PolicyIds = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesPolicyIdArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n },\n },\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"defaultAuthority\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthorityId = \"my-authority\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var defaultCertificate = new Gcp.CertificateAuthority.Certificate(\"defaultCertificate\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthority = defaultAuthority.CertificateAuthorityId,\n Lifetime = \"860s\",\n PemCsr = File.ReadAllText(\"test-fixtures/rsa_csr.pem\"),\n CertificateTemplate = defaultCertificateTemplate.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultCaPool, err := certificateauthority.NewCaPool(ctx, \"defaultCaPool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCertificateTemplate, err := certificateauthority.NewCertificateTemplate(ctx, \"defaultCertificateTemplate\", \u0026certificateauthority.CertificateTemplateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"An updated sample certificate template\"),\n\t\t\tIdentityConstraints: \u0026certificateauthority.CertificateTemplateIdentityConstraintsArgs{\n\t\t\t\tAllowSubjectAltNamesPassthrough: pulumi.Bool(true),\n\t\t\t\tAllowSubjectPassthrough: pulumi.Bool(true),\n\t\t\t\tCelExpression: \u0026certificateauthority.CertificateTemplateIdentityConstraintsCelExpressionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"Always true\"),\n\t\t\t\t\tExpression: pulumi.String(\"true\"),\n\t\t\t\t\tLocation: pulumi.String(\"any.file.anywhere\"),\n\t\t\t\t\tTitle: pulumi.String(\"Sample expression\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPassthroughExtensions: \u0026certificateauthority.CertificateTemplatePassthroughExtensionsArgs{\n\t\t\t\tAdditionalExtensions: certificateauthority.CertificateTemplatePassthroughExtensionsAdditionalExtensionArray{\n\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs{\n\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tKnownExtensions: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"EXTENDED_KEY_USAGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPredefinedValues: \u0026certificateauthority.CertificateTemplatePredefinedValuesArgs{\n\t\t\t\tAdditionalExtensions: certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionArray{\n\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionArgs{\n\t\t\t\t\t\tObjectId: \u0026certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs{\n\t\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tValue: pulumi.String(\"c3RyaW5nCg==\"),\n\t\t\t\t\t\tCritical: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tAiaOcspServers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"string\"),\n\t\t\t\t},\n\t\t\t\tCaOptions: \u0026certificateauthority.CertificateTemplatePredefinedValuesCaOptionsArgs{\n\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(6),\n\t\t\t\t},\n\t\t\t\tKeyUsage: \u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageArgs{\n\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\tCertSign: pulumi.Bool(false),\n\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\tCrlSign: pulumi.Bool(false),\n\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\tEncipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\tClientAuth: pulumi.Bool(true),\n\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\tOcspSigning: pulumi.Bool(true),\n\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tUnknownExtendedKeyUsages: certificateauthority.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArray{\n\t\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPolicyIds: certificateauthority.CertificateTemplatePredefinedValuesPolicyIdArray{\n\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePredefinedValuesPolicyIdArgs{\n\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"defaultAuthority\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-authority\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewCertificate(ctx, \"defaultCertificate\", \u0026certificateauthority.CertificateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthority: defaultAuthority.CertificateAuthorityId,\n\t\t\tLifetime: pulumi.String(\"860s\"),\n\t\t\tPemCsr: readFileOrPanic(\"test-fixtures/rsa_csr.pem\"),\n\t\t\tCertificateTemplate: defaultCertificateTemplate.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.CertificateTemplate;\nimport com.pulumi.gcp.certificateauthority.CertificateTemplateArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplateIdentityConstraintsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplateIdentityConstraintsCelExpressionArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePassthroughExtensionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.Certificate;\nimport com.pulumi.gcp.certificateauthority.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultCaPool = new CaPool(\"defaultCaPool\", CaPoolArgs.builder() \n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .build());\n\n var defaultCertificateTemplate = new CertificateTemplate(\"defaultCertificateTemplate\", CertificateTemplateArgs.builder() \n .location(\"us-central1\")\n .description(\"An updated sample certificate template\")\n .identityConstraints(CertificateTemplateIdentityConstraintsArgs.builder()\n .allowSubjectAltNamesPassthrough(true)\n .allowSubjectPassthrough(true)\n .celExpression(CertificateTemplateIdentityConstraintsCelExpressionArgs.builder()\n .description(\"Always true\")\n .expression(\"true\")\n .location(\"any.file.anywhere\")\n .title(\"Sample expression\")\n .build())\n .build())\n .passthroughExtensions(CertificateTemplatePassthroughExtensionsArgs.builder()\n .additionalExtensions(CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .knownExtensions(\"EXTENDED_KEY_USAGE\")\n .build())\n .predefinedValues(CertificateTemplatePredefinedValuesArgs.builder()\n .additionalExtensions(CertificateTemplatePredefinedValuesAdditionalExtensionArgs.builder()\n .objectId(CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .value(\"c3RyaW5nCg==\")\n .critical(true)\n .build())\n .aiaOcspServers(\"string\")\n .caOptions(CertificateTemplatePredefinedValuesCaOptionsArgs.builder()\n .isCa(false)\n .maxIssuerPathLength(6)\n .build())\n .keyUsage(CertificateTemplatePredefinedValuesKeyUsageArgs.builder()\n .baseKeyUsage(CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs.builder()\n .certSign(false)\n .contentCommitment(true)\n .crlSign(false)\n .dataEncipherment(true)\n .decipherOnly(true)\n .digitalSignature(true)\n .encipherOnly(true)\n .keyAgreement(true)\n .keyEncipherment(true)\n .build())\n .extendedKeyUsage(CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs.builder()\n .clientAuth(true)\n .codeSigning(true)\n .emailProtection(true)\n .ocspSigning(true)\n .serverAuth(true)\n .timeStamping(true)\n .build())\n .unknownExtendedKeyUsages(CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .build())\n .policyIds(CertificateTemplatePredefinedValuesPolicyIdArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .build())\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthorityId(\"my-authority\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthority(defaultAuthority.certificateAuthorityId())\n .lifetime(\"860s\")\n .pemCsr(Files.readString(Paths.get(\"test-fixtures/rsa_csr.pem\")))\n .certificateTemplate(defaultCertificateTemplate.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultCaPool:\n type: gcp:certificateauthority:CaPool\n properties:\n location: us-central1\n tier: ENTERPRISE\n defaultCertificateTemplate:\n type: gcp:certificateauthority:CertificateTemplate\n properties:\n location: us-central1\n description: An updated sample certificate template\n identityConstraints:\n allowSubjectAltNamesPassthrough: true\n allowSubjectPassthrough: true\n celExpression:\n description: Always true\n expression: 'true'\n location: any.file.anywhere\n title: Sample expression\n passthroughExtensions:\n additionalExtensions:\n - objectIdPaths:\n - 1\n - 6\n knownExtensions:\n - EXTENDED_KEY_USAGE\n predefinedValues:\n additionalExtensions:\n - objectId:\n objectIdPaths:\n - 1\n - 6\n value: c3RyaW5nCg==\n critical: true\n aiaOcspServers:\n - string\n caOptions:\n isCa: false\n maxIssuerPathLength: 6\n keyUsage:\n baseKeyUsage:\n certSign: false\n contentCommitment: true\n crlSign: false\n dataEncipherment: true\n decipherOnly: true\n digitalSignature: true\n encipherOnly: true\n keyAgreement: true\n keyEncipherment: true\n extendedKeyUsage:\n clientAuth: true\n codeSigning: true\n emailProtection: true\n ocspSigning: true\n serverAuth: true\n timeStamping: true\n unknownExtendedKeyUsages:\n - objectIdPaths:\n - 1\n - 6\n policyIds:\n - objectIdPaths:\n - 1\n - 6\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthorityId: my-authority\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n # Disable CA deletion related safe checks for easier cleanup.\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n defaultCertificate:\n type: gcp:certificateauthority:Certificate\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthority: ${defaultAuthority.certificateAuthorityId}\n lifetime: 860s\n pemCsr:\n fn::readFile: test-fixtures/rsa_csr.pem\n certificateTemplate: ${defaultCertificateTemplate.id}\n```\n{{% /example %}}\n{{% example %}}\n### Privateca Certificate Csr\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultCaPool = new gcp.certificateauthority.CaPool(\"defaultCaPool\", {\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"defaultAuthority\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthorityId: \"my-authority\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst defaultCertificate = new gcp.certificateauthority.Certificate(\"defaultCertificate\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthority: defaultAuthority.certificateAuthorityId,\n lifetime: \"860s\",\n pemCsr: fs.readFileSync(\"test-fixtures/rsa_csr.pem\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_ca_pool = gcp.certificateauthority.CaPool(\"defaultCaPool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\")\ndefault_authority = gcp.certificateauthority.Authority(\"defaultAuthority\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority_id=\"my-authority\",\n config=gcp.certificateauthority.AuthorityConfigArgs(\n subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(\n organization=\"HashiCorp\",\n common_name=\"my-certificate-authority\",\n ),\n subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(\n dns_names=[\"hashicorp.com\"],\n ),\n ),\n x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(\n is_ca=True,\n ),\n key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n cert_sign=True,\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=False,\n ),\n ),\n ),\n ),\n key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(\n algorithm=\"RSA_PKCS1_4096_SHA256\",\n ),\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault_certificate = gcp.certificateauthority.Certificate(\"defaultCertificate\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority=default_authority.certificate_authority_id,\n lifetime=\"860s\",\n pem_csr=(lambda path: open(path).read())(\"test-fixtures/rsa_csr.pem\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultCaPool = new Gcp.CertificateAuthority.CaPool(\"defaultCaPool\", new()\n {\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"defaultAuthority\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthorityId = \"my-authority\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var defaultCertificate = new Gcp.CertificateAuthority.Certificate(\"defaultCertificate\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthority = defaultAuthority.CertificateAuthorityId,\n Lifetime = \"860s\",\n PemCsr = File.ReadAllText(\"test-fixtures/rsa_csr.pem\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultCaPool, err := certificateauthority.NewCaPool(ctx, \"defaultCaPool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"defaultAuthority\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-authority\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewCertificate(ctx, \"defaultCertificate\", \u0026certificateauthority.CertificateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthority: defaultAuthority.CertificateAuthorityId,\n\t\t\tLifetime: pulumi.String(\"860s\"),\n\t\t\tPemCsr: readFileOrPanic(\"test-fixtures/rsa_csr.pem\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.Certificate;\nimport com.pulumi.gcp.certificateauthority.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultCaPool = new CaPool(\"defaultCaPool\", CaPoolArgs.builder() \n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthorityId(\"my-authority\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthority(defaultAuthority.certificateAuthorityId())\n .lifetime(\"860s\")\n .pemCsr(Files.readString(Paths.get(\"test-fixtures/rsa_csr.pem\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultCaPool:\n type: gcp:certificateauthority:CaPool\n properties:\n location: us-central1\n tier: ENTERPRISE\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthorityId: my-authority\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n # Disable CA deletion related safe checks for easier cleanup.\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n defaultCertificate:\n type: gcp:certificateauthority:Certificate\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthority: ${defaultAuthority.certificateAuthorityId}\n lifetime: 860s\n pemCsr:\n fn::readFile: test-fixtures/rsa_csr.pem\n```\n{{% /example %}}\n{{% example %}}\n### Privateca Certificate No Authority\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultCaPool = new gcp.certificateauthority.CaPool(\"defaultCaPool\", {\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"defaultAuthority\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthorityId: \"my-authority\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst defaultCertificate = new gcp.certificateauthority.Certificate(\"defaultCertificate\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n lifetime: \"860s\",\n config: {\n subjectConfig: {\n subject: {\n commonName: \"san1.example.com\",\n countryCode: \"us\",\n organization: \"google\",\n organizationalUnit: \"enterprise\",\n locality: \"mountain view\",\n province: \"california\",\n streetAddress: \"1600 amphitheatre parkway\",\n postalCode: \"94109\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: false,\n },\n keyUsage: {\n baseKeyUsage: {\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n publicKey: {\n format: \"PEM\",\n key: Buffer.from(fs.readFileSync(\"test-fixtures/rsa_public.pem\"), 'binary').toString('base64'),\n },\n },\n}, {\n dependsOn: [defaultAuthority],\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\ndefault_ca_pool = gcp.certificateauthority.CaPool(\"defaultCaPool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\")\ndefault_authority = gcp.certificateauthority.Authority(\"defaultAuthority\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority_id=\"my-authority\",\n config=gcp.certificateauthority.AuthorityConfigArgs(\n subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(\n organization=\"HashiCorp\",\n common_name=\"my-certificate-authority\",\n ),\n subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(\n dns_names=[\"hashicorp.com\"],\n ),\n ),\n x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(\n is_ca=True,\n ),\n key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n digital_signature=True,\n cert_sign=True,\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=True,\n ),\n ),\n ),\n ),\n lifetime=\"86400s\",\n key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(\n algorithm=\"RSA_PKCS1_4096_SHA256\",\n ),\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault_certificate = gcp.certificateauthority.Certificate(\"defaultCertificate\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n lifetime=\"860s\",\n config=gcp.certificateauthority.CertificateConfigArgs(\n subject_config=gcp.certificateauthority.CertificateConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.CertificateConfigSubjectConfigSubjectArgs(\n common_name=\"san1.example.com\",\n country_code=\"us\",\n organization=\"google\",\n organizational_unit=\"enterprise\",\n locality=\"mountain view\",\n province=\"california\",\n street_address=\"1600 amphitheatre parkway\",\n postal_code=\"94109\",\n ),\n ),\n x509_config=gcp.certificateauthority.CertificateConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.CertificateConfigX509ConfigCaOptionsArgs(\n is_ca=False,\n ),\n key_usage=gcp.certificateauthority.CertificateConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=True,\n ),\n ),\n ),\n public_key=gcp.certificateauthority.CertificateConfigPublicKeyArgs(\n format=\"PEM\",\n key=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"test-fixtures/rsa_public.pem\"),\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[default_authority]))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultCaPool = new Gcp.CertificateAuthority.CaPool(\"defaultCaPool\", new()\n {\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"defaultAuthority\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthorityId = \"my-authority\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var defaultCertificate = new Gcp.CertificateAuthority.Certificate(\"defaultCertificate\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n Lifetime = \"860s\",\n Config = new Gcp.CertificateAuthority.Inputs.CertificateConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.CertificateConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.CertificateConfigSubjectConfigSubjectArgs\n {\n CommonName = \"san1.example.com\",\n CountryCode = \"us\",\n Organization = \"google\",\n OrganizationalUnit = \"enterprise\",\n Locality = \"mountain view\",\n Province = \"california\",\n StreetAddress = \"1600 amphitheatre parkway\",\n PostalCode = \"94109\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigCaOptionsArgs\n {\n IsCa = false,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n PublicKey = new Gcp.CertificateAuthority.Inputs.CertificateConfigPublicKeyArgs\n {\n Format = \"PEM\",\n Key = ReadFileBase64(\"test-fixtures/rsa_public.pem\"),\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n defaultAuthority,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultCaPool, err := certificateauthority.NewCaPool(ctx, \"defaultCaPool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"defaultAuthority\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-authority\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewCertificate(ctx, \"defaultCertificate\", \u0026certificateauthority.CertificateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tLifetime: pulumi.String(\"860s\"),\n\t\t\tConfig: \u0026certificateauthority.CertificateConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.CertificateConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.CertificateConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tCommonName: pulumi.String(\"san1.example.com\"),\n\t\t\t\t\t\tCountryCode: pulumi.String(\"us\"),\n\t\t\t\t\t\tOrganization: pulumi.String(\"google\"),\n\t\t\t\t\t\tOrganizationalUnit: pulumi.String(\"enterprise\"),\n\t\t\t\t\t\tLocality: pulumi.String(\"mountain view\"),\n\t\t\t\t\t\tProvince: pulumi.String(\"california\"),\n\t\t\t\t\t\tStreetAddress: pulumi.String(\"1600 amphitheatre parkway\"),\n\t\t\t\t\t\tPostalCode: pulumi.String(\"94109\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.CertificateConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.CertificateConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.CertificateConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPublicKey: \u0026certificateauthority.CertificateConfigPublicKeyArgs{\n\t\t\t\t\tFormat: pulumi.String(\"PEM\"),\n\t\t\t\t\tKey: filebase64OrPanic(\"test-fixtures/rsa_public.pem\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultAuthority,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.Certificate;\nimport com.pulumi.gcp.certificateauthority.CertificateArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigPublicKeyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultCaPool = new CaPool(\"defaultCaPool\", CaPoolArgs.builder() \n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthorityId(\"my-authority\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .lifetime(\"860s\")\n .config(CertificateConfigArgs.builder()\n .subjectConfig(CertificateConfigSubjectConfigArgs.builder()\n .subject(CertificateConfigSubjectConfigSubjectArgs.builder()\n .commonName(\"san1.example.com\")\n .countryCode(\"us\")\n .organization(\"google\")\n .organizationalUnit(\"enterprise\")\n .locality(\"mountain view\")\n .province(\"california\")\n .streetAddress(\"1600 amphitheatre parkway\")\n .postalCode(\"94109\")\n .build())\n .build())\n .x509Config(CertificateConfigX509ConfigArgs.builder()\n .caOptions(CertificateConfigX509ConfigCaOptionsArgs.builder()\n .isCa(false)\n .build())\n .keyUsage(CertificateConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .crlSign(true)\n .build())\n .extendedKeyUsage(CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .publicKey(CertificateConfigPublicKeyArgs.builder()\n .format(\"PEM\")\n .key(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"test-fixtures/rsa_public.pem\"))))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(defaultAuthority)\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCertificate can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificates/{{name}}` * `{{project}}/{{location}}/{{pool}}/{{name}}` * `{{location}}/{{pool}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Certificate using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificates/{{name}}\"\n\n to = google_privateca_certificate.default }\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Certificate can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate default projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificates/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate default {{project}}/{{location}}/{{pool}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate default {{location}}/{{pool}}/{{name}}\n```\n\n ", + "description": "A Certificate corresponds to a signed X.509 certificate issued by a Certificate.\n\n\n\u003e **Note:** The Certificate Authority that is referenced by this resource **must** be\n`tier = \"ENTERPRISE\"`\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Privateca Certificate With Template\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultCaPool = new gcp.certificateauthority.CaPool(\"defaultCaPool\", {\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n});\nconst defaultCertificateTemplate = new gcp.certificateauthority.CertificateTemplate(\"defaultCertificateTemplate\", {\n location: \"us-central1\",\n description: \"An updated sample certificate template\",\n identityConstraints: {\n allowSubjectAltNamesPassthrough: true,\n allowSubjectPassthrough: true,\n celExpression: {\n description: \"Always true\",\n expression: \"true\",\n location: \"any.file.anywhere\",\n title: \"Sample expression\",\n },\n },\n passthroughExtensions: {\n additionalExtensions: [{\n objectIdPaths: [\n 1,\n 6,\n ],\n }],\n knownExtensions: [\"EXTENDED_KEY_USAGE\"],\n },\n predefinedValues: {\n additionalExtensions: [{\n objectId: {\n objectIdPaths: [\n 1,\n 6,\n ],\n },\n value: \"c3RyaW5nCg==\",\n critical: true,\n }],\n aiaOcspServers: [\"string\"],\n caOptions: {\n isCa: false,\n maxIssuerPathLength: 6,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: false,\n contentCommitment: true,\n crlSign: false,\n dataEncipherment: true,\n decipherOnly: true,\n digitalSignature: true,\n encipherOnly: true,\n keyAgreement: true,\n keyEncipherment: true,\n },\n extendedKeyUsage: {\n clientAuth: true,\n codeSigning: true,\n emailProtection: true,\n ocspSigning: true,\n serverAuth: true,\n timeStamping: true,\n },\n unknownExtendedKeyUsages: [{\n objectIdPaths: [\n 1,\n 6,\n ],\n }],\n },\n policyIds: [{\n objectIdPaths: [\n 1,\n 6,\n ],\n }],\n },\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"defaultAuthority\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthorityId: \"my-authority\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst defaultCertificate = new gcp.certificateauthority.Certificate(\"defaultCertificate\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthority: defaultAuthority.certificateAuthorityId,\n lifetime: \"860s\",\n pemCsr: fs.readFileSync(\"test-fixtures/rsa_csr.pem\", \"utf8\"),\n certificateTemplate: defaultCertificateTemplate.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_ca_pool = gcp.certificateauthority.CaPool(\"defaultCaPool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\")\ndefault_certificate_template = gcp.certificateauthority.CertificateTemplate(\"defaultCertificateTemplate\",\n location=\"us-central1\",\n description=\"An updated sample certificate template\",\n identity_constraints=gcp.certificateauthority.CertificateTemplateIdentityConstraintsArgs(\n allow_subject_alt_names_passthrough=True,\n allow_subject_passthrough=True,\n cel_expression=gcp.certificateauthority.CertificateTemplateIdentityConstraintsCelExpressionArgs(\n description=\"Always true\",\n expression=\"true\",\n location=\"any.file.anywhere\",\n title=\"Sample expression\",\n ),\n ),\n passthrough_extensions=gcp.certificateauthority.CertificateTemplatePassthroughExtensionsArgs(\n additional_extensions=[gcp.certificateauthority.CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n )],\n known_extensions=[\"EXTENDED_KEY_USAGE\"],\n ),\n predefined_values=gcp.certificateauthority.CertificateTemplatePredefinedValuesArgs(\n additional_extensions=[gcp.certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionArgs(\n object_id=gcp.certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n ),\n value=\"c3RyaW5nCg==\",\n critical=True,\n )],\n aia_ocsp_servers=[\"string\"],\n ca_options=gcp.certificateauthority.CertificateTemplatePredefinedValuesCaOptionsArgs(\n is_ca=False,\n max_issuer_path_length=6,\n ),\n key_usage=gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs(\n cert_sign=False,\n content_commitment=True,\n crl_sign=False,\n data_encipherment=True,\n decipher_only=True,\n digital_signature=True,\n encipher_only=True,\n key_agreement=True,\n key_encipherment=True,\n ),\n extended_key_usage=gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs(\n client_auth=True,\n code_signing=True,\n email_protection=True,\n ocsp_signing=True,\n server_auth=True,\n time_stamping=True,\n ),\n unknown_extended_key_usages=[gcp.certificateauthority.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n )],\n ),\n policy_ids=[gcp.certificateauthority.CertificateTemplatePredefinedValuesPolicyIdArgs(\n object_id_paths=[\n 1,\n 6,\n ],\n )],\n ))\ndefault_authority = gcp.certificateauthority.Authority(\"defaultAuthority\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority_id=\"my-authority\",\n config=gcp.certificateauthority.AuthorityConfigArgs(\n subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(\n organization=\"HashiCorp\",\n common_name=\"my-certificate-authority\",\n ),\n subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(\n dns_names=[\"hashicorp.com\"],\n ),\n ),\n x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(\n is_ca=True,\n ),\n key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n cert_sign=True,\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=False,\n ),\n ),\n ),\n ),\n key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(\n algorithm=\"RSA_PKCS1_4096_SHA256\",\n ),\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault_certificate = gcp.certificateauthority.Certificate(\"defaultCertificate\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority=default_authority.certificate_authority_id,\n lifetime=\"860s\",\n pem_csr=(lambda path: open(path).read())(\"test-fixtures/rsa_csr.pem\"),\n certificate_template=default_certificate_template.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultCaPool = new Gcp.CertificateAuthority.CaPool(\"defaultCaPool\", new()\n {\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n });\n\n var defaultCertificateTemplate = new Gcp.CertificateAuthority.CertificateTemplate(\"defaultCertificateTemplate\", new()\n {\n Location = \"us-central1\",\n Description = \"An updated sample certificate template\",\n IdentityConstraints = new Gcp.CertificateAuthority.Inputs.CertificateTemplateIdentityConstraintsArgs\n {\n AllowSubjectAltNamesPassthrough = true,\n AllowSubjectPassthrough = true,\n CelExpression = new Gcp.CertificateAuthority.Inputs.CertificateTemplateIdentityConstraintsCelExpressionArgs\n {\n Description = \"Always true\",\n Expression = \"true\",\n Location = \"any.file.anywhere\",\n Title = \"Sample expression\",\n },\n },\n PassthroughExtensions = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePassthroughExtensionsArgs\n {\n AdditionalExtensions = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n },\n KnownExtensions = new[]\n {\n \"EXTENDED_KEY_USAGE\",\n },\n },\n PredefinedValues = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesArgs\n {\n AdditionalExtensions = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesAdditionalExtensionArgs\n {\n ObjectId = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n Value = \"c3RyaW5nCg==\",\n Critical = true,\n },\n },\n AiaOcspServers = new[]\n {\n \"string\",\n },\n CaOptions = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesCaOptionsArgs\n {\n IsCa = false,\n MaxIssuerPathLength = 6,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs\n {\n CertSign = false,\n ContentCommitment = true,\n CrlSign = false,\n DataEncipherment = true,\n DecipherOnly = true,\n DigitalSignature = true,\n EncipherOnly = true,\n KeyAgreement = true,\n KeyEncipherment = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs\n {\n ClientAuth = true,\n CodeSigning = true,\n EmailProtection = true,\n OcspSigning = true,\n ServerAuth = true,\n TimeStamping = true,\n },\n UnknownExtendedKeyUsages = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n },\n },\n PolicyIds = new[]\n {\n new Gcp.CertificateAuthority.Inputs.CertificateTemplatePredefinedValuesPolicyIdArgs\n {\n ObjectIdPaths = new[]\n {\n 1,\n 6,\n },\n },\n },\n },\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"defaultAuthority\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthorityId = \"my-authority\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var defaultCertificate = new Gcp.CertificateAuthority.Certificate(\"defaultCertificate\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthority = defaultAuthority.CertificateAuthorityId,\n Lifetime = \"860s\",\n PemCsr = File.ReadAllText(\"test-fixtures/rsa_csr.pem\"),\n CertificateTemplate = defaultCertificateTemplate.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultCaPool, err := certificateauthority.NewCaPool(ctx, \"defaultCaPool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCertificateTemplate, err := certificateauthority.NewCertificateTemplate(ctx, \"defaultCertificateTemplate\", \u0026certificateauthority.CertificateTemplateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"An updated sample certificate template\"),\n\t\t\tIdentityConstraints: \u0026certificateauthority.CertificateTemplateIdentityConstraintsArgs{\n\t\t\t\tAllowSubjectAltNamesPassthrough: pulumi.Bool(true),\n\t\t\t\tAllowSubjectPassthrough: pulumi.Bool(true),\n\t\t\t\tCelExpression: \u0026certificateauthority.CertificateTemplateIdentityConstraintsCelExpressionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"Always true\"),\n\t\t\t\t\tExpression: pulumi.String(\"true\"),\n\t\t\t\t\tLocation: pulumi.String(\"any.file.anywhere\"),\n\t\t\t\t\tTitle: pulumi.String(\"Sample expression\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPassthroughExtensions: \u0026certificateauthority.CertificateTemplatePassthroughExtensionsArgs{\n\t\t\t\tAdditionalExtensions: certificateauthority.CertificateTemplatePassthroughExtensionsAdditionalExtensionArray{\n\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs{\n\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tKnownExtensions: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"EXTENDED_KEY_USAGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPredefinedValues: \u0026certificateauthority.CertificateTemplatePredefinedValuesArgs{\n\t\t\t\tAdditionalExtensions: certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionArray{\n\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionArgs{\n\t\t\t\t\t\tObjectId: \u0026certificateauthority.CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs{\n\t\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tValue: pulumi.String(\"c3RyaW5nCg==\"),\n\t\t\t\t\t\tCritical: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tAiaOcspServers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"string\"),\n\t\t\t\t},\n\t\t\t\tCaOptions: \u0026certificateauthority.CertificateTemplatePredefinedValuesCaOptionsArgs{\n\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(6),\n\t\t\t\t},\n\t\t\t\tKeyUsage: \u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageArgs{\n\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\tCertSign: pulumi.Bool(false),\n\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\tCrlSign: pulumi.Bool(false),\n\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\tEncipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\tClientAuth: pulumi.Bool(true),\n\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\tOcspSigning: pulumi.Bool(true),\n\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tUnknownExtendedKeyUsages: certificateauthority.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArray{\n\t\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPolicyIds: certificateauthority.CertificateTemplatePredefinedValuesPolicyIdArray{\n\t\t\t\t\t\u0026certificateauthority.CertificateTemplatePredefinedValuesPolicyIdArgs{\n\t\t\t\t\t\tObjectIdPaths: pulumi.IntArray{\n\t\t\t\t\t\t\tpulumi.Int(1),\n\t\t\t\t\t\t\tpulumi.Int(6),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"defaultAuthority\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-authority\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewCertificate(ctx, \"defaultCertificate\", \u0026certificateauthority.CertificateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthority: defaultAuthority.CertificateAuthorityId,\n\t\t\tLifetime: pulumi.String(\"860s\"),\n\t\t\tPemCsr: readFileOrPanic(\"test-fixtures/rsa_csr.pem\"),\n\t\t\tCertificateTemplate: defaultCertificateTemplate.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.CertificateTemplate;\nimport com.pulumi.gcp.certificateauthority.CertificateTemplateArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplateIdentityConstraintsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplateIdentityConstraintsCelExpressionArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePassthroughExtensionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.Certificate;\nimport com.pulumi.gcp.certificateauthority.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultCaPool = new CaPool(\"defaultCaPool\", CaPoolArgs.builder() \n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .build());\n\n var defaultCertificateTemplate = new CertificateTemplate(\"defaultCertificateTemplate\", CertificateTemplateArgs.builder() \n .location(\"us-central1\")\n .description(\"An updated sample certificate template\")\n .identityConstraints(CertificateTemplateIdentityConstraintsArgs.builder()\n .allowSubjectAltNamesPassthrough(true)\n .allowSubjectPassthrough(true)\n .celExpression(CertificateTemplateIdentityConstraintsCelExpressionArgs.builder()\n .description(\"Always true\")\n .expression(\"true\")\n .location(\"any.file.anywhere\")\n .title(\"Sample expression\")\n .build())\n .build())\n .passthroughExtensions(CertificateTemplatePassthroughExtensionsArgs.builder()\n .additionalExtensions(CertificateTemplatePassthroughExtensionsAdditionalExtensionArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .knownExtensions(\"EXTENDED_KEY_USAGE\")\n .build())\n .predefinedValues(CertificateTemplatePredefinedValuesArgs.builder()\n .additionalExtensions(CertificateTemplatePredefinedValuesAdditionalExtensionArgs.builder()\n .objectId(CertificateTemplatePredefinedValuesAdditionalExtensionObjectIdArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .value(\"c3RyaW5nCg==\")\n .critical(true)\n .build())\n .aiaOcspServers(\"string\")\n .caOptions(CertificateTemplatePredefinedValuesCaOptionsArgs.builder()\n .isCa(false)\n .maxIssuerPathLength(6)\n .build())\n .keyUsage(CertificateTemplatePredefinedValuesKeyUsageArgs.builder()\n .baseKeyUsage(CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsageArgs.builder()\n .certSign(false)\n .contentCommitment(true)\n .crlSign(false)\n .dataEncipherment(true)\n .decipherOnly(true)\n .digitalSignature(true)\n .encipherOnly(true)\n .keyAgreement(true)\n .keyEncipherment(true)\n .build())\n .extendedKeyUsage(CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsageArgs.builder()\n .clientAuth(true)\n .codeSigning(true)\n .emailProtection(true)\n .ocspSigning(true)\n .serverAuth(true)\n .timeStamping(true)\n .build())\n .unknownExtendedKeyUsages(CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsageArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .build())\n .policyIds(CertificateTemplatePredefinedValuesPolicyIdArgs.builder()\n .objectIdPaths( \n 1,\n 6)\n .build())\n .build())\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthorityId(\"my-authority\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthority(defaultAuthority.certificateAuthorityId())\n .lifetime(\"860s\")\n .pemCsr(Files.readString(Paths.get(\"test-fixtures/rsa_csr.pem\")))\n .certificateTemplate(defaultCertificateTemplate.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultCaPool:\n type: gcp:certificateauthority:CaPool\n properties:\n location: us-central1\n tier: ENTERPRISE\n defaultCertificateTemplate:\n type: gcp:certificateauthority:CertificateTemplate\n properties:\n location: us-central1\n description: An updated sample certificate template\n identityConstraints:\n allowSubjectAltNamesPassthrough: true\n allowSubjectPassthrough: true\n celExpression:\n description: Always true\n expression: 'true'\n location: any.file.anywhere\n title: Sample expression\n passthroughExtensions:\n additionalExtensions:\n - objectIdPaths:\n - 1\n - 6\n knownExtensions:\n - EXTENDED_KEY_USAGE\n predefinedValues:\n additionalExtensions:\n - objectId:\n objectIdPaths:\n - 1\n - 6\n value: c3RyaW5nCg==\n critical: true\n aiaOcspServers:\n - string\n caOptions:\n isCa: false\n maxIssuerPathLength: 6\n keyUsage:\n baseKeyUsage:\n certSign: false\n contentCommitment: true\n crlSign: false\n dataEncipherment: true\n decipherOnly: true\n digitalSignature: true\n encipherOnly: true\n keyAgreement: true\n keyEncipherment: true\n extendedKeyUsage:\n clientAuth: true\n codeSigning: true\n emailProtection: true\n ocspSigning: true\n serverAuth: true\n timeStamping: true\n unknownExtendedKeyUsages:\n - objectIdPaths:\n - 1\n - 6\n policyIds:\n - objectIdPaths:\n - 1\n - 6\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthorityId: my-authority\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n # Disable CA deletion related safe checks for easier cleanup.\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n defaultCertificate:\n type: gcp:certificateauthority:Certificate\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthority: ${defaultAuthority.certificateAuthorityId}\n lifetime: 860s\n pemCsr:\n fn::readFile: test-fixtures/rsa_csr.pem\n certificateTemplate: ${defaultCertificateTemplate.id}\n```\n{{% /example %}}\n{{% example %}}\n### Privateca Certificate Csr\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultCaPool = new gcp.certificateauthority.CaPool(\"defaultCaPool\", {\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"defaultAuthority\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthorityId: \"my-authority\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst defaultCertificate = new gcp.certificateauthority.Certificate(\"defaultCertificate\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthority: defaultAuthority.certificateAuthorityId,\n lifetime: \"860s\",\n pemCsr: fs.readFileSync(\"test-fixtures/rsa_csr.pem\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_ca_pool = gcp.certificateauthority.CaPool(\"defaultCaPool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\")\ndefault_authority = gcp.certificateauthority.Authority(\"defaultAuthority\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority_id=\"my-authority\",\n config=gcp.certificateauthority.AuthorityConfigArgs(\n subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(\n organization=\"HashiCorp\",\n common_name=\"my-certificate-authority\",\n ),\n subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(\n dns_names=[\"hashicorp.com\"],\n ),\n ),\n x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(\n is_ca=True,\n ),\n key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n cert_sign=True,\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=False,\n ),\n ),\n ),\n ),\n key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(\n algorithm=\"RSA_PKCS1_4096_SHA256\",\n ),\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault_certificate = gcp.certificateauthority.Certificate(\"defaultCertificate\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority=default_authority.certificate_authority_id,\n lifetime=\"860s\",\n pem_csr=(lambda path: open(path).read())(\"test-fixtures/rsa_csr.pem\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultCaPool = new Gcp.CertificateAuthority.CaPool(\"defaultCaPool\", new()\n {\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"defaultAuthority\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthorityId = \"my-authority\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var defaultCertificate = new Gcp.CertificateAuthority.Certificate(\"defaultCertificate\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthority = defaultAuthority.CertificateAuthorityId,\n Lifetime = \"860s\",\n PemCsr = File.ReadAllText(\"test-fixtures/rsa_csr.pem\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultCaPool, err := certificateauthority.NewCaPool(ctx, \"defaultCaPool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"defaultAuthority\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-authority\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewCertificate(ctx, \"defaultCertificate\", \u0026certificateauthority.CertificateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthority: defaultAuthority.CertificateAuthorityId,\n\t\t\tLifetime: pulumi.String(\"860s\"),\n\t\t\tPemCsr: readFileOrPanic(\"test-fixtures/rsa_csr.pem\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.Certificate;\nimport com.pulumi.gcp.certificateauthority.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultCaPool = new CaPool(\"defaultCaPool\", CaPoolArgs.builder() \n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthorityId(\"my-authority\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthority(defaultAuthority.certificateAuthorityId())\n .lifetime(\"860s\")\n .pemCsr(Files.readString(Paths.get(\"test-fixtures/rsa_csr.pem\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultCaPool:\n type: gcp:certificateauthority:CaPool\n properties:\n location: us-central1\n tier: ENTERPRISE\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthorityId: my-authority\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n # Disable CA deletion related safe checks for easier cleanup.\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n defaultCertificate:\n type: gcp:certificateauthority:Certificate\n properties:\n location: us-central1\n pool: ${defaultCaPool.name}\n certificateAuthority: ${defaultAuthority.certificateAuthorityId}\n lifetime: 860s\n pemCsr:\n fn::readFile: test-fixtures/rsa_csr.pem\n```\n{{% /example %}}\n{{% example %}}\n### Privateca Certificate No Authority\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultCaPool = new gcp.certificateauthority.CaPool(\"defaultCaPool\", {\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"defaultAuthority\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n certificateAuthorityId: \"my-authority\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst defaultCertificate = new gcp.certificateauthority.Certificate(\"defaultCertificate\", {\n location: \"us-central1\",\n pool: defaultCaPool.name,\n lifetime: \"860s\",\n config: {\n subjectConfig: {\n subject: {\n commonName: \"san1.example.com\",\n countryCode: \"us\",\n organization: \"google\",\n organizationalUnit: \"enterprise\",\n locality: \"mountain view\",\n province: \"california\",\n streetAddress: \"1600 amphitheatre parkway\",\n postalCode: \"94109\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: false,\n },\n keyUsage: {\n baseKeyUsage: {\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n publicKey: {\n format: \"PEM\",\n key: Buffer.from(fs.readFileSync(\"test-fixtures/rsa_public.pem\", 'binary')).toString('base64'),\n },\n },\n}, {\n dependsOn: [defaultAuthority],\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\ndefault_ca_pool = gcp.certificateauthority.CaPool(\"defaultCaPool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\")\ndefault_authority = gcp.certificateauthority.Authority(\"defaultAuthority\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n certificate_authority_id=\"my-authority\",\n config=gcp.certificateauthority.AuthorityConfigArgs(\n subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(\n organization=\"HashiCorp\",\n common_name=\"my-certificate-authority\",\n ),\n subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(\n dns_names=[\"hashicorp.com\"],\n ),\n ),\n x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(\n is_ca=True,\n ),\n key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n digital_signature=True,\n cert_sign=True,\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=True,\n ),\n ),\n ),\n ),\n lifetime=\"86400s\",\n key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(\n algorithm=\"RSA_PKCS1_4096_SHA256\",\n ),\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault_certificate = gcp.certificateauthority.Certificate(\"defaultCertificate\",\n location=\"us-central1\",\n pool=default_ca_pool.name,\n lifetime=\"860s\",\n config=gcp.certificateauthority.CertificateConfigArgs(\n subject_config=gcp.certificateauthority.CertificateConfigSubjectConfigArgs(\n subject=gcp.certificateauthority.CertificateConfigSubjectConfigSubjectArgs(\n common_name=\"san1.example.com\",\n country_code=\"us\",\n organization=\"google\",\n organizational_unit=\"enterprise\",\n locality=\"mountain view\",\n province=\"california\",\n street_address=\"1600 amphitheatre parkway\",\n postal_code=\"94109\",\n ),\n ),\n x509_config=gcp.certificateauthority.CertificateConfigX509ConfigArgs(\n ca_options=gcp.certificateauthority.CertificateConfigX509ConfigCaOptionsArgs(\n is_ca=False,\n ),\n key_usage=gcp.certificateauthority.CertificateConfigX509ConfigKeyUsageArgs(\n base_key_usage=gcp.certificateauthority.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs(\n crl_sign=True,\n ),\n extended_key_usage=gcp.certificateauthority.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs(\n server_auth=True,\n ),\n ),\n ),\n public_key=gcp.certificateauthority.CertificateConfigPublicKeyArgs(\n format=\"PEM\",\n key=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"test-fixtures/rsa_public.pem\"),\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[default_authority]))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\t\nstring ReadFileBase64(string path) \n{\n return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultCaPool = new Gcp.CertificateAuthority.CaPool(\"defaultCaPool\", new()\n {\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"defaultAuthority\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n CertificateAuthorityId = \"my-authority\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var defaultCertificate = new Gcp.CertificateAuthority.Certificate(\"defaultCertificate\", new()\n {\n Location = \"us-central1\",\n Pool = defaultCaPool.Name,\n Lifetime = \"860s\",\n Config = new Gcp.CertificateAuthority.Inputs.CertificateConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.CertificateConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.CertificateConfigSubjectConfigSubjectArgs\n {\n CommonName = \"san1.example.com\",\n CountryCode = \"us\",\n Organization = \"google\",\n OrganizationalUnit = \"enterprise\",\n Locality = \"mountain view\",\n Province = \"california\",\n StreetAddress = \"1600 amphitheatre parkway\",\n PostalCode = \"94109\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigCaOptionsArgs\n {\n IsCa = false,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n PublicKey = new Gcp.CertificateAuthority.Inputs.CertificateConfigPublicKeyArgs\n {\n Format = \"PEM\",\n Key = ReadFileBase64(\"test-fixtures/rsa_public.pem\"),\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n defaultAuthority,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn base64.StdEncoding.EncodeToString(fileData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultCaPool, err := certificateauthority.NewCaPool(ctx, \"defaultCaPool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"defaultAuthority\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-authority\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewCertificate(ctx, \"defaultCertificate\", \u0026certificateauthority.CertificateArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPool: defaultCaPool.Name,\n\t\t\tLifetime: pulumi.String(\"860s\"),\n\t\t\tConfig: \u0026certificateauthority.CertificateConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.CertificateConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.CertificateConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tCommonName: pulumi.String(\"san1.example.com\"),\n\t\t\t\t\t\tCountryCode: pulumi.String(\"us\"),\n\t\t\t\t\t\tOrganization: pulumi.String(\"google\"),\n\t\t\t\t\t\tOrganizationalUnit: pulumi.String(\"enterprise\"),\n\t\t\t\t\t\tLocality: pulumi.String(\"mountain view\"),\n\t\t\t\t\t\tProvince: pulumi.String(\"california\"),\n\t\t\t\t\t\tStreetAddress: pulumi.String(\"1600 amphitheatre parkway\"),\n\t\t\t\t\t\tPostalCode: pulumi.String(\"94109\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.CertificateConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.CertificateConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.CertificateConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPublicKey: \u0026certificateauthority.CertificateConfigPublicKeyArgs{\n\t\t\t\t\tFormat: pulumi.String(\"PEM\"),\n\t\t\t\t\tKey: filebase64OrPanic(\"test-fixtures/rsa_public.pem\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultAuthority,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.Certificate;\nimport com.pulumi.gcp.certificateauthority.CertificateArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CertificateConfigPublicKeyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultCaPool = new CaPool(\"defaultCaPool\", CaPoolArgs.builder() \n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .certificateAuthorityId(\"my-authority\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder() \n .location(\"us-central1\")\n .pool(defaultCaPool.name())\n .lifetime(\"860s\")\n .config(CertificateConfigArgs.builder()\n .subjectConfig(CertificateConfigSubjectConfigArgs.builder()\n .subject(CertificateConfigSubjectConfigSubjectArgs.builder()\n .commonName(\"san1.example.com\")\n .countryCode(\"us\")\n .organization(\"google\")\n .organizationalUnit(\"enterprise\")\n .locality(\"mountain view\")\n .province(\"california\")\n .streetAddress(\"1600 amphitheatre parkway\")\n .postalCode(\"94109\")\n .build())\n .build())\n .x509Config(CertificateConfigX509ConfigArgs.builder()\n .caOptions(CertificateConfigX509ConfigCaOptionsArgs.builder()\n .isCa(false)\n .build())\n .keyUsage(CertificateConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(CertificateConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .crlSign(true)\n .build())\n .extendedKeyUsage(CertificateConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .publicKey(CertificateConfigPublicKeyArgs.builder()\n .format(\"PEM\")\n .key(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"test-fixtures/rsa_public.pem\"))))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(defaultAuthority)\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCertificate can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificates/{{name}}` * `{{project}}/{{location}}/{{pool}}/{{name}}` * `{{location}}/{{pool}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Certificate using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificates/{{name}}\"\n\n to = google_privateca_certificate.default }\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Certificate can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate default projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificates/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate default {{project}}/{{location}}/{{pool}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:certificateauthority/certificate:Certificate default {{location}}/{{pool}}/{{name}}\n```\n\n ", "properties": { "certificateAuthority": { "type": "string", @@ -137714,7 +137708,7 @@ } }, "gcp:compute/regionSslCertificate:RegionSslCertificate": { - "description": "A RegionSslCertificate resource, used for HTTPS load balancing. This resource\nprovides a mechanism to upload an SSL key and certificate to\nthe load balancer to serve secure connections from the user.\n\n\nTo get more information about RegionSslCertificate, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionSslCertificates)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/load-balancing/docs/ssl-certificates)\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Region Ssl Certificate Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionSslCertificate(\"default\", {\n region: \"us-central1\",\n namePrefix: \"my-certificate-\",\n description: \"a description\",\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionSslCertificate(\"default\",\n region=\"us-central1\",\n name_prefix=\"my-certificate-\",\n description=\"a description\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionSslCertificate(\"default\", new()\n {\n Region = \"us-central1\",\n NamePrefix = \"my-certificate-\",\n Description = \"a description\",\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRegionSslCertificate(ctx, \"default\", \u0026compute.RegionSslCertificateArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNamePrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new RegionSslCertificate(\"default\", RegionSslCertificateArgs.builder() \n .region(\"us-central1\")\n .namePrefix(\"my-certificate-\")\n .description(\"a description\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:RegionSslCertificate\n properties:\n region: us-central1\n namePrefix: my-certificate-\n description: a description\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n```\n{{% /example %}}\n{{% example %}}\n### Region Ssl Certificate Random Provider\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nfunction computeFilebase64sha256(path string) string {\n\tconst fileData = Buffer.from(fs.readFileSync(path), 'binary')\n\treturn crypto.createHash('sha256').update(fileData).digest('hex')\n}\n\n// You may also want to control name generation explicitly:\nconst _default = new gcp.compute.RegionSslCertificate(\"default\", {\n region: \"us-central1\",\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\nconst certificate = new random.RandomId(\"certificate\", {\n byteLength: 4,\n prefix: \"my-certificate-\",\n keepers: {\n private_key: computeFilebase64sha256(\"path/to/private.key\"),\n certificate: computeFilebase64sha256(\"path/to/certificate.crt\"),\n },\n});\n```\n```python\nimport pulumi\nimport base64\nimport hashlib\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\ndef computeFilebase64sha256(path):\n\tfileData = open(path).read().encode()\n\thashedData = hashlib.sha256(fileData.encode()).digest()\n\treturn base64.b64encode(hashedData).decode()\n\n# You may also want to control name generation explicitly:\ndefault = gcp.compute.RegionSslCertificate(\"default\",\n region=\"us-central1\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\ncertificate = random.RandomId(\"certificate\",\n byte_length=4,\n prefix=\"my-certificate-\",\n keepers={\n \"private_key\": computeFilebase64sha256(\"path/to/private.key\"),\n \"certificate\": computeFilebase64sha256(\"path/to/certificate.crt\"),\n })\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Security.Cryptography;\nusing System.Text;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\n\tprivate static string ComputeFileBase64Sha256(string path) {\n\t\tvar fileData = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));\n\t\tvar hashData = SHA256.Create().ComputeHash(fileData);\n\t\treturn Convert.ToBase64String(hashData);\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // You may also want to control name generation explicitly:\n var @default = new Gcp.Compute.RegionSslCertificate(\"default\", new()\n {\n Region = \"us-central1\",\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n var certificate = new Random.RandomId(\"certificate\", new()\n {\n ByteLength = 4,\n Prefix = \"my-certificate-\",\n Keepers = \n {\n { \"private_key\", ComputeFileBase64Sha256(\"path/to/private.key\") },\n { \"certificate\", ComputeFileBase64Sha256(\"path/to/certificate.crt\") },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"crypto/sha256\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64sha256OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\thashedData := sha256.Sum256([]byte(fileData))\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(hashedData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRegionSslCertificate(ctx, \"default\", \u0026compute.RegionSslCertificateArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"certificate\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t\tPrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tKeepers: pulumi.StringMap{\n\t\t\t\t\"private_key\": filebase64sha256OrPanic(\"path/to/private.key\"),\n\t\t\t\t\"certificate\": filebase64sha256OrPanic(\"path/to/certificate.crt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new RegionSslCertificate(\"default\", RegionSslCertificateArgs.builder() \n .region(\"us-central1\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var certificate = new RandomId(\"certificate\", RandomIdArgs.builder() \n .byteLength(4)\n .prefix(\"my-certificate-\")\n .keepers(Map.ofEntries(\n Map.entry(\"private_key\", computeFileBase64Sha256(\"path/to/private.key\")),\n Map.entry(\"certificate\", computeFileBase64Sha256(\"path/to/certificate.crt\"))\n ))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Region Ssl Certificate Target Https Proxies\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultRegionSslCertificate = new RegionSslCertificate(\"defaultRegionSslCertificate\", RegionSslCertificateArgs.builder() \n .region(\"us-central1\")\n .namePrefix(\"my-certificate-\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .build());\n\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .description(\"a description\")\n .defaultService(defaultRegionBackendService.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultRegionBackendService.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultRegionBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultRegionTargetHttpsProxy = new RegionTargetHttpsProxy(\"defaultRegionTargetHttpsProxy\", RegionTargetHttpsProxyArgs.builder() \n .region(\"us-central1\")\n .urlMap(defaultRegionUrlMap.id())\n .sslCertificates(defaultRegionSslCertificate.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Using with Region Target HTTPS Proxies\n # //\n # // SSL certificates cannot be updated after creation. In order to apply\n # // the specified configuration, the provider will destroy the existing\n # // resource and create a replacement. To effectively use an SSL\n # // certificate resource with a Target HTTPS Proxy resource, it's\n # // recommended to specify create_before_destroy in a lifecycle block.\n # // Either omit the Instance Template name attribute, specify a partial\n # // name with name_prefix, or use random_id resource. Example:\n defaultRegionSslCertificate:\n type: gcp:compute:RegionSslCertificate\n properties:\n region: us-central1\n namePrefix: my-certificate-\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n defaultRegionTargetHttpsProxy:\n type: gcp:compute:RegionTargetHttpsProxy\n properties:\n region: us-central1\n urlMap: ${defaultRegionUrlMap.id}\n sslCertificates:\n - ${defaultRegionSslCertificate.id}\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n description: a description\n defaultService: ${defaultRegionBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultRegionBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks:\n - ${defaultRegionHealthCheck.id}\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n httpHealthCheck:\n port: 80\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRegionSslCertificate can be imported using any of these accepted formats* `projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}` * `{{project}}/{{region}}/{{name}}` * `{{region}}/{{name}}` * `{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import RegionSslCertificate using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}\"\n\n to = google_compute_region_ssl_certificate.default }\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), RegionSslCertificate can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default {{name}}\n```\n\n ", + "description": "A RegionSslCertificate resource, used for HTTPS load balancing. This resource\nprovides a mechanism to upload an SSL key and certificate to\nthe load balancer to serve secure connections from the user.\n\n\nTo get more information about RegionSslCertificate, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionSslCertificates)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/load-balancing/docs/ssl-certificates)\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Region Ssl Certificate Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.RegionSslCertificate(\"default\", {\n region: \"us-central1\",\n namePrefix: \"my-certificate-\",\n description: \"a description\",\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.RegionSslCertificate(\"default\",\n region=\"us-central1\",\n name_prefix=\"my-certificate-\",\n description=\"a description\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.RegionSslCertificate(\"default\", new()\n {\n Region = \"us-central1\",\n NamePrefix = \"my-certificate-\",\n Description = \"a description\",\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRegionSslCertificate(ctx, \"default\", \u0026compute.RegionSslCertificateArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNamePrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new RegionSslCertificate(\"default\", RegionSslCertificateArgs.builder() \n .region(\"us-central1\")\n .namePrefix(\"my-certificate-\")\n .description(\"a description\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:RegionSslCertificate\n properties:\n region: us-central1\n namePrefix: my-certificate-\n description: a description\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n```\n{{% /example %}}\n{{% example %}}\n### Region Ssl Certificate Random Provider\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nfunction computeFilebase64sha256(path: string): string {\n\tconst fileData = Buffer.from(fs.readFileSync(path, 'binary'))\n\treturn crypto.createHash('sha256').update(fileData).digest('hex')\n}\n\n// You may also want to control name generation explicitly:\nconst _default = new gcp.compute.RegionSslCertificate(\"default\", {\n region: \"us-central1\",\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\nconst certificate = new random.RandomId(\"certificate\", {\n byteLength: 4,\n prefix: \"my-certificate-\",\n keepers: {\n private_key: computeFilebase64sha256(\"path/to/private.key\"),\n certificate: computeFilebase64sha256(\"path/to/certificate.crt\"),\n },\n});\n```\n```python\nimport pulumi\nimport base64\nimport hashlib\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\ndef computeFilebase64sha256(path):\n\tfileData = open(path).read().encode()\n\thashedData = hashlib.sha256(fileData.encode()).digest()\n\treturn base64.b64encode(hashedData).decode()\n\n# You may also want to control name generation explicitly:\ndefault = gcp.compute.RegionSslCertificate(\"default\",\n region=\"us-central1\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\ncertificate = random.RandomId(\"certificate\",\n byte_length=4,\n prefix=\"my-certificate-\",\n keepers={\n \"private_key\": computeFilebase64sha256(\"path/to/private.key\"),\n \"certificate\": computeFilebase64sha256(\"path/to/certificate.crt\"),\n })\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Security.Cryptography;\nusing System.Text;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\n\t\nstring ComputeFileBase64Sha256(string path) \n{\n var fileData = Encoding.UTF8.GetBytes(File.ReadAllText(path));\n var hashData = SHA256.Create().ComputeHash(fileData);\n return Convert.ToBase64String(hashData);\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // You may also want to control name generation explicitly:\n var @default = new Gcp.Compute.RegionSslCertificate(\"default\", new()\n {\n Region = \"us-central1\",\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n var certificate = new Random.RandomId(\"certificate\", new()\n {\n ByteLength = 4,\n Prefix = \"my-certificate-\",\n Keepers = \n {\n { \"private_key\", ComputeFileBase64Sha256(\"path/to/private.key\") },\n { \"certificate\", ComputeFileBase64Sha256(\"path/to/certificate.crt\") },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"crypto/sha256\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64sha256OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\thashedData := sha256.Sum256([]byte(fileData))\n\t\treturn base64.StdEncoding.EncodeToString(hashedData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRegionSslCertificate(ctx, \"default\", \u0026compute.RegionSslCertificateArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"certificate\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t\tPrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tKeepers: pulumi.StringMap{\n\t\t\t\t\"private_key\": filebase64sha256OrPanic(\"path/to/private.key\"),\n\t\t\t\t\"certificate\": filebase64sha256OrPanic(\"path/to/certificate.crt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new RegionSslCertificate(\"default\", RegionSslCertificateArgs.builder() \n .region(\"us-central1\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var certificate = new RandomId(\"certificate\", RandomIdArgs.builder() \n .byteLength(4)\n .prefix(\"my-certificate-\")\n .keepers(Map.ofEntries(\n Map.entry(\"private_key\", computeFileBase64Sha256(\"path/to/private.key\")),\n Map.entry(\"certificate\", computeFileBase64Sha256(\"path/to/certificate.crt\"))\n ))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Region Ssl Certificate Target Https Proxies\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionSslCertificate;\nimport com.pulumi.gcp.compute.RegionSslCertificateArgs;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionUrlMap;\nimport com.pulumi.gcp.compute.RegionUrlMapArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.RegionUrlMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxy;\nimport com.pulumi.gcp.compute.RegionTargetHttpsProxyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultRegionSslCertificate = new RegionSslCertificate(\"defaultRegionSslCertificate\", RegionSslCertificateArgs.builder() \n .region(\"us-central1\")\n .namePrefix(\"my-certificate-\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"us-central1\")\n .httpHealthCheck(RegionHealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .region(\"us-central1\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .timeoutSec(10)\n .healthChecks(defaultRegionHealthCheck.id())\n .build());\n\n var defaultRegionUrlMap = new RegionUrlMap(\"defaultRegionUrlMap\", RegionUrlMapArgs.builder() \n .region(\"us-central1\")\n .description(\"a description\")\n .defaultService(defaultRegionBackendService.id())\n .hostRules(RegionUrlMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(RegionUrlMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultRegionBackendService.id())\n .pathRules(RegionUrlMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultRegionBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultRegionTargetHttpsProxy = new RegionTargetHttpsProxy(\"defaultRegionTargetHttpsProxy\", RegionTargetHttpsProxyArgs.builder() \n .region(\"us-central1\")\n .urlMap(defaultRegionUrlMap.id())\n .sslCertificates(defaultRegionSslCertificate.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Using with Region Target HTTPS Proxies\n # //\n # // SSL certificates cannot be updated after creation. In order to apply\n # // the specified configuration, the provider will destroy the existing\n # // resource and create a replacement. To effectively use an SSL\n # // certificate resource with a Target HTTPS Proxy resource, it's\n # // recommended to specify create_before_destroy in a lifecycle block.\n # // Either omit the Instance Template name attribute, specify a partial\n # // name with name_prefix, or use random_id resource. Example:\n defaultRegionSslCertificate:\n type: gcp:compute:RegionSslCertificate\n properties:\n region: us-central1\n namePrefix: my-certificate-\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n defaultRegionTargetHttpsProxy:\n type: gcp:compute:RegionTargetHttpsProxy\n properties:\n region: us-central1\n urlMap: ${defaultRegionUrlMap.id}\n sslCertificates:\n - ${defaultRegionSslCertificate.id}\n defaultRegionUrlMap:\n type: gcp:compute:RegionUrlMap\n properties:\n region: us-central1\n description: a description\n defaultService: ${defaultRegionBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultRegionBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n properties:\n region: us-central1\n protocol: HTTP\n loadBalancingScheme: INTERNAL_MANAGED\n timeoutSec: 10\n healthChecks:\n - ${defaultRegionHealthCheck.id}\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: us-central1\n httpHealthCheck:\n port: 80\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRegionSslCertificate can be imported using any of these accepted formats* `projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}` * `{{project}}/{{region}}/{{name}}` * `{{region}}/{{name}}` * `{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import RegionSslCertificate using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}\"\n\n to = google_compute_region_ssl_certificate.default }\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), RegionSslCertificate can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionSslCertificate:RegionSslCertificate default {{name}}\n```\n\n ", "properties": { "certificate": { "type": "string", @@ -140100,7 +140094,7 @@ } }, "gcp:compute/sSLCertificate:SSLCertificate": { - "description": "An SslCertificate resource, used for HTTPS load balancing. This resource\nprovides a mechanism to upload an SSL key and certificate to\nthe load balancer to serve secure connections from the user.\n\n\nTo get more information about SslCertificate, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/sslCertificates)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/load-balancing/docs/ssl-certificates)\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Ssl Certificate Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.SSLCertificate(\"default\", {\n namePrefix: \"my-certificate-\",\n description: \"a description\",\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.SSLCertificate(\"default\",\n name_prefix=\"my-certificate-\",\n description=\"a description\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.SSLCertificate(\"default\", new()\n {\n NamePrefix = \"my-certificate-\",\n Description = \"a description\",\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewSSLCertificate(ctx, \"default\", \u0026compute.SSLCertificateArgs{\n\t\t\tNamePrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new SSLCertificate(\"default\", SSLCertificateArgs.builder() \n .namePrefix(\"my-certificate-\")\n .description(\"a description\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:SSLCertificate\n properties:\n namePrefix: my-certificate-\n description: a description\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n```\n{{% /example %}}\n{{% example %}}\n### Ssl Certificate Random Provider\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nfunction computeFilebase64sha256(path string) string {\n\tconst fileData = Buffer.from(fs.readFileSync(path), 'binary')\n\treturn crypto.createHash('sha256').update(fileData).digest('hex')\n}\n\n// You may also want to control name generation explicitly:\nconst _default = new gcp.compute.SSLCertificate(\"default\", {\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\nconst certificate = new random.RandomId(\"certificate\", {\n byteLength: 4,\n prefix: \"my-certificate-\",\n keepers: {\n private_key: computeFilebase64sha256(\"path/to/private.key\"),\n certificate: computeFilebase64sha256(\"path/to/certificate.crt\"),\n },\n});\n```\n```python\nimport pulumi\nimport base64\nimport hashlib\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\ndef computeFilebase64sha256(path):\n\tfileData = open(path).read().encode()\n\thashedData = hashlib.sha256(fileData.encode()).digest()\n\treturn base64.b64encode(hashedData).decode()\n\n# You may also want to control name generation explicitly:\ndefault = gcp.compute.SSLCertificate(\"default\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\ncertificate = random.RandomId(\"certificate\",\n byte_length=4,\n prefix=\"my-certificate-\",\n keepers={\n \"private_key\": computeFilebase64sha256(\"path/to/private.key\"),\n \"certificate\": computeFilebase64sha256(\"path/to/certificate.crt\"),\n })\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Security.Cryptography;\nusing System.Text;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\n\tprivate static string ComputeFileBase64Sha256(string path) {\n\t\tvar fileData = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));\n\t\tvar hashData = SHA256.Create().ComputeHash(fileData);\n\t\treturn Convert.ToBase64String(hashData);\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // You may also want to control name generation explicitly:\n var @default = new Gcp.Compute.SSLCertificate(\"default\", new()\n {\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n var certificate = new Random.RandomId(\"certificate\", new()\n {\n ByteLength = 4,\n Prefix = \"my-certificate-\",\n Keepers = \n {\n { \"private_key\", ComputeFileBase64Sha256(\"path/to/private.key\") },\n { \"certificate\", ComputeFileBase64Sha256(\"path/to/certificate.crt\") },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"crypto/sha256\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64sha256OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\thashedData := sha256.Sum256([]byte(fileData))\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(hashedData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewSSLCertificate(ctx, \"default\", \u0026compute.SSLCertificateArgs{\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"certificate\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t\tPrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tKeepers: pulumi.StringMap{\n\t\t\t\t\"private_key\": filebase64sha256OrPanic(\"path/to/private.key\"),\n\t\t\t\t\"certificate\": filebase64sha256OrPanic(\"path/to/certificate.crt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new SSLCertificate(\"default\", SSLCertificateArgs.builder() \n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var certificate = new RandomId(\"certificate\", RandomIdArgs.builder() \n .byteLength(4)\n .prefix(\"my-certificate-\")\n .keepers(Map.ofEntries(\n Map.entry(\"private_key\", computeFileBase64Sha256(\"path/to/private.key\")),\n Map.entry(\"certificate\", computeFileBase64Sha256(\"path/to/certificate.crt\"))\n ))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Ssl Certificate Target Https Proxies\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpsProxy;\nimport com.pulumi.gcp.compute.TargetHttpsProxyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultSSLCertificate = new SSLCertificate(\"defaultSSLCertificate\", SSLCertificateArgs.builder() \n .namePrefix(\"my-certificate-\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder() \n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultHttpHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpsProxy = new TargetHttpsProxy(\"defaultTargetHttpsProxy\", TargetHttpsProxyArgs.builder() \n .urlMap(defaultURLMap.id())\n .sslCertificates(defaultSSLCertificate.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Using with Target HTTPS Proxies\n # //\n # // SSL certificates cannot be updated after creation. In order to apply\n # // the specified configuration, the provider will destroy the existing\n # // resource and create a replacement. Example:\n defaultSSLCertificate:\n type: gcp:compute:SSLCertificate\n properties:\n namePrefix: my-certificate-\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n defaultTargetHttpsProxy:\n type: gcp:compute:TargetHttpsProxy\n properties:\n urlMap: ${defaultURLMap.id}\n sslCertificates:\n - ${defaultSSLCertificate.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n properties:\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n properties:\n portName: http\n protocol: HTTP\n timeoutSec: 10\n healthChecks:\n - ${defaultHttpHealthCheck.id}\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n properties:\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSslCertificate can be imported using any of these accepted formats* `projects/{{project}}/global/sslCertificates/{{name}}` * `{{project}}/{{name}}` * `{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import SslCertificate using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/global/sslCertificates/{{name}}\"\n\n to = google_compute_ssl_certificate.default }\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), SslCertificate can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate default projects/{{project}}/global/sslCertificates/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate default {{project}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate default {{name}}\n```\n\n ", + "description": "An SslCertificate resource, used for HTTPS load balancing. This resource\nprovides a mechanism to upload an SSL key and certificate to\nthe load balancer to serve secure connections from the user.\n\n\nTo get more information about SslCertificate, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/sslCertificates)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/load-balancing/docs/ssl-certificates)\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Ssl Certificate Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.SSLCertificate(\"default\", {\n namePrefix: \"my-certificate-\",\n description: \"a description\",\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.SSLCertificate(\"default\",\n name_prefix=\"my-certificate-\",\n description=\"a description\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.SSLCertificate(\"default\", new()\n {\n NamePrefix = \"my-certificate-\",\n Description = \"a description\",\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewSSLCertificate(ctx, \"default\", \u0026compute.SSLCertificateArgs{\n\t\t\tNamePrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new SSLCertificate(\"default\", SSLCertificateArgs.builder() \n .namePrefix(\"my-certificate-\")\n .description(\"a description\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:SSLCertificate\n properties:\n namePrefix: my-certificate-\n description: a description\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n```\n{{% /example %}}\n{{% example %}}\n### Ssl Certificate Random Provider\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nfunction computeFilebase64sha256(path: string): string {\n\tconst fileData = Buffer.from(fs.readFileSync(path, 'binary'))\n\treturn crypto.createHash('sha256').update(fileData).digest('hex')\n}\n\n// You may also want to control name generation explicitly:\nconst _default = new gcp.compute.SSLCertificate(\"default\", {\n privateKey: fs.readFileSync(\"path/to/private.key\", \"utf8\"),\n certificate: fs.readFileSync(\"path/to/certificate.crt\", \"utf8\"),\n});\nconst certificate = new random.RandomId(\"certificate\", {\n byteLength: 4,\n prefix: \"my-certificate-\",\n keepers: {\n private_key: computeFilebase64sha256(\"path/to/private.key\"),\n certificate: computeFilebase64sha256(\"path/to/certificate.crt\"),\n },\n});\n```\n```python\nimport pulumi\nimport base64\nimport hashlib\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\ndef computeFilebase64sha256(path):\n\tfileData = open(path).read().encode()\n\thashedData = hashlib.sha256(fileData.encode()).digest()\n\treturn base64.b64encode(hashedData).decode()\n\n# You may also want to control name generation explicitly:\ndefault = gcp.compute.SSLCertificate(\"default\",\n private_key=(lambda path: open(path).read())(\"path/to/private.key\"),\n certificate=(lambda path: open(path).read())(\"path/to/certificate.crt\"))\ncertificate = random.RandomId(\"certificate\",\n byte_length=4,\n prefix=\"my-certificate-\",\n keepers={\n \"private_key\": computeFilebase64sha256(\"path/to/private.key\"),\n \"certificate\": computeFilebase64sha256(\"path/to/certificate.crt\"),\n })\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Security.Cryptography;\nusing System.Text;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\n\t\nstring ComputeFileBase64Sha256(string path) \n{\n var fileData = Encoding.UTF8.GetBytes(File.ReadAllText(path));\n var hashData = SHA256.Create().ComputeHash(fileData);\n return Convert.ToBase64String(hashData);\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // You may also want to control name generation explicitly:\n var @default = new Gcp.Compute.SSLCertificate(\"default\", new()\n {\n PrivateKey = File.ReadAllText(\"path/to/private.key\"),\n Certificate = File.ReadAllText(\"path/to/certificate.crt\"),\n });\n\n var certificate = new Random.RandomId(\"certificate\", new()\n {\n ByteLength = 4,\n Prefix = \"my-certificate-\",\n Keepers = \n {\n { \"private_key\", ComputeFileBase64Sha256(\"path/to/private.key\") },\n { \"certificate\", ComputeFileBase64Sha256(\"path/to/certificate.crt\") },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"crypto/sha256\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64sha256OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\thashedData := sha256.Sum256([]byte(fileData))\n\t\treturn base64.StdEncoding.EncodeToString(hashedData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewSSLCertificate(ctx, \"default\", \u0026compute.SSLCertificateArgs{\n\t\t\tPrivateKey: readFileOrPanic(\"path/to/private.key\"),\n\t\t\tCertificate: readFileOrPanic(\"path/to/certificate.crt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"certificate\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t\tPrefix: pulumi.String(\"my-certificate-\"),\n\t\t\tKeepers: pulumi.StringMap{\n\t\t\t\t\"private_key\": filebase64sha256OrPanic(\"path/to/private.key\"),\n\t\t\t\t\"certificate\": filebase64sha256OrPanic(\"path/to/certificate.crt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new SSLCertificate(\"default\", SSLCertificateArgs.builder() \n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var certificate = new RandomId(\"certificate\", RandomIdArgs.builder() \n .byteLength(4)\n .prefix(\"my-certificate-\")\n .keepers(Map.ofEntries(\n Map.entry(\"private_key\", computeFileBase64Sha256(\"path/to/private.key\")),\n Map.entry(\"certificate\", computeFileBase64Sha256(\"path/to/certificate.crt\"))\n ))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% example %}}\n### Ssl Certificate Target Https Proxies\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.SSLCertificate;\nimport com.pulumi.gcp.compute.SSLCertificateArgs;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.URLMap;\nimport com.pulumi.gcp.compute.URLMapArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;\nimport com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;\nimport com.pulumi.gcp.compute.TargetHttpsProxy;\nimport com.pulumi.gcp.compute.TargetHttpsProxyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultSSLCertificate = new SSLCertificate(\"defaultSSLCertificate\", SSLCertificateArgs.builder() \n .namePrefix(\"my-certificate-\")\n .privateKey(Files.readString(Paths.get(\"path/to/private.key\")))\n .certificate(Files.readString(Paths.get(\"path/to/certificate.crt\")))\n .build());\n\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder() \n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var defaultBackendService = new BackendService(\"defaultBackendService\", BackendServiceArgs.builder() \n .portName(\"http\")\n .protocol(\"HTTP\")\n .timeoutSec(10)\n .healthChecks(defaultHttpHealthCheck.id())\n .build());\n\n var defaultURLMap = new URLMap(\"defaultURLMap\", URLMapArgs.builder() \n .description(\"a description\")\n .defaultService(defaultBackendService.id())\n .hostRules(URLMapHostRuleArgs.builder()\n .hosts(\"mysite.com\")\n .pathMatcher(\"allpaths\")\n .build())\n .pathMatchers(URLMapPathMatcherArgs.builder()\n .name(\"allpaths\")\n .defaultService(defaultBackendService.id())\n .pathRules(URLMapPathMatcherPathRuleArgs.builder()\n .paths(\"/*\")\n .service(defaultBackendService.id())\n .build())\n .build())\n .build());\n\n var defaultTargetHttpsProxy = new TargetHttpsProxy(\"defaultTargetHttpsProxy\", TargetHttpsProxyArgs.builder() \n .urlMap(defaultURLMap.id())\n .sslCertificates(defaultSSLCertificate.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Using with Target HTTPS Proxies\n # //\n # // SSL certificates cannot be updated after creation. In order to apply\n # // the specified configuration, the provider will destroy the existing\n # // resource and create a replacement. Example:\n defaultSSLCertificate:\n type: gcp:compute:SSLCertificate\n properties:\n namePrefix: my-certificate-\n privateKey:\n fn::readFile: path/to/private.key\n certificate:\n fn::readFile: path/to/certificate.crt\n defaultTargetHttpsProxy:\n type: gcp:compute:TargetHttpsProxy\n properties:\n urlMap: ${defaultURLMap.id}\n sslCertificates:\n - ${defaultSSLCertificate.id}\n defaultURLMap:\n type: gcp:compute:URLMap\n properties:\n description: a description\n defaultService: ${defaultBackendService.id}\n hostRules:\n - hosts:\n - mysite.com\n pathMatcher: allpaths\n pathMatchers:\n - name: allpaths\n defaultService: ${defaultBackendService.id}\n pathRules:\n - paths:\n - /*\n service: ${defaultBackendService.id}\n defaultBackendService:\n type: gcp:compute:BackendService\n properties:\n portName: http\n protocol: HTTP\n timeoutSec: 10\n healthChecks:\n - ${defaultHttpHealthCheck.id}\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n properties:\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSslCertificate can be imported using any of these accepted formats* `projects/{{project}}/global/sslCertificates/{{name}}` * `{{project}}/{{name}}` * `{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import SslCertificate using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/global/sslCertificates/{{name}}\"\n\n to = google_compute_ssl_certificate.default }\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), SslCertificate can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate default projects/{{project}}/global/sslCertificates/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate default {{project}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/sSLCertificate:SSLCertificate default {{name}}\n```\n\n ", "properties": { "certificate": { "type": "string", @@ -163895,7 +163889,7 @@ } }, "gcp:endpoints/service:Service": { - "description": "This resource creates and rolls out a Cloud Endpoints service using OpenAPI or gRPC. View the relevant docs for [OpenAPI](https://cloud.google.com/endpoints/docs/openapi/) and [gRPC](https://cloud.google.com/endpoints/docs/grpc/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst openapiService = new gcp.endpoints.Service(\"openapiService\", {\n serviceName: \"api-name.endpoints.project-id.cloud.goog\",\n project: \"project-id\",\n openapiConfig: fs.readFileSync(\"openapi_spec.yml\", \"utf8\"),\n});\nconst grpcService = new gcp.endpoints.Service(\"grpcService\", {\n serviceName: \"api-name.endpoints.project-id.cloud.goog\",\n project: \"project-id\",\n grpcConfig: fs.readFileSync(\"service_spec.yml\", \"utf8\"),\n protocOutputBase64: Buffer.from(fs.readFileSync(\"compiled_descriptor_file.pb\"), 'binary').toString('base64'),\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\nopenapi_service = gcp.endpoints.Service(\"openapiService\",\n service_name=\"api-name.endpoints.project-id.cloud.goog\",\n project=\"project-id\",\n openapi_config=(lambda path: open(path).read())(\"openapi_spec.yml\"))\ngrpc_service = gcp.endpoints.Service(\"grpcService\",\n service_name=\"api-name.endpoints.project-id.cloud.goog\",\n project=\"project-id\",\n grpc_config=(lambda path: open(path).read())(\"service_spec.yml\"),\n protoc_output_base64=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"compiled_descriptor_file.pb\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var openapiService = new Gcp.Endpoints.Service(\"openapiService\", new()\n {\n ServiceName = \"api-name.endpoints.project-id.cloud.goog\",\n Project = \"project-id\",\n OpenapiConfig = File.ReadAllText(\"openapi_spec.yml\"),\n });\n\n var grpcService = new Gcp.Endpoints.Service(\"grpcService\", new()\n {\n ServiceName = \"api-name.endpoints.project-id.cloud.goog\",\n Project = \"project-id\",\n GrpcConfig = File.ReadAllText(\"service_spec.yml\"),\n ProtocOutputBase64 = ReadFileBase64(\"compiled_descriptor_file.pb\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := endpoints.NewService(ctx, \"openapiService\", \u0026endpoints.ServiceArgs{\n\t\t\tServiceName: pulumi.String(\"api-name.endpoints.project-id.cloud.goog\"),\n\t\t\tProject: pulumi.String(\"project-id\"),\n\t\t\tOpenapiConfig: readFileOrPanic(\"openapi_spec.yml\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = endpoints.NewService(ctx, \"grpcService\", \u0026endpoints.ServiceArgs{\n\t\t\tServiceName: pulumi.String(\"api-name.endpoints.project-id.cloud.goog\"),\n\t\t\tProject: pulumi.String(\"project-id\"),\n\t\t\tGrpcConfig: readFileOrPanic(\"service_spec.yml\"),\n\t\t\tProtocOutputBase64: filebase64OrPanic(\"compiled_descriptor_file.pb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.endpoints.Service;\nimport com.pulumi.gcp.endpoints.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var openapiService = new Service(\"openapiService\", ServiceArgs.builder() \n .serviceName(\"api-name.endpoints.project-id.cloud.goog\")\n .project(\"project-id\")\n .openapiConfig(Files.readString(Paths.get(\"openapi_spec.yml\")))\n .build());\n\n var grpcService = new Service(\"grpcService\", ServiceArgs.builder() \n .serviceName(\"api-name.endpoints.project-id.cloud.goog\")\n .project(\"project-id\")\n .grpcConfig(Files.readString(Paths.get(\"service_spec.yml\")))\n .protocOutputBase64(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"compiled_descriptor_file.pb\"))))\n .build());\n\n }\n}\n```\n\nThe example in `examples/endpoints_on_compute_engine` shows the API from the quickstart running on a Compute Engine VM and reachable through Cloud Endpoints, which may also be useful.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThis resource does not support import. ", + "description": "This resource creates and rolls out a Cloud Endpoints service using OpenAPI or gRPC. View the relevant docs for [OpenAPI](https://cloud.google.com/endpoints/docs/openapi/) and [gRPC](https://cloud.google.com/endpoints/docs/grpc/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst openapiService = new gcp.endpoints.Service(\"openapiService\", {\n serviceName: \"api-name.endpoints.project-id.cloud.goog\",\n project: \"project-id\",\n openapiConfig: fs.readFileSync(\"openapi_spec.yml\", \"utf8\"),\n});\nconst grpcService = new gcp.endpoints.Service(\"grpcService\", {\n serviceName: \"api-name.endpoints.project-id.cloud.goog\",\n project: \"project-id\",\n grpcConfig: fs.readFileSync(\"service_spec.yml\", \"utf8\"),\n protocOutputBase64: Buffer.from(fs.readFileSync(\"compiled_descriptor_file.pb\", 'binary')).toString('base64'),\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\nopenapi_service = gcp.endpoints.Service(\"openapiService\",\n service_name=\"api-name.endpoints.project-id.cloud.goog\",\n project=\"project-id\",\n openapi_config=(lambda path: open(path).read())(\"openapi_spec.yml\"))\ngrpc_service = gcp.endpoints.Service(\"grpcService\",\n service_name=\"api-name.endpoints.project-id.cloud.goog\",\n project=\"project-id\",\n grpc_config=(lambda path: open(path).read())(\"service_spec.yml\"),\n protoc_output_base64=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"compiled_descriptor_file.pb\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\t\nstring ReadFileBase64(string path) \n{\n return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var openapiService = new Gcp.Endpoints.Service(\"openapiService\", new()\n {\n ServiceName = \"api-name.endpoints.project-id.cloud.goog\",\n Project = \"project-id\",\n OpenapiConfig = File.ReadAllText(\"openapi_spec.yml\"),\n });\n\n var grpcService = new Gcp.Endpoints.Service(\"grpcService\", new()\n {\n ServiceName = \"api-name.endpoints.project-id.cloud.goog\",\n Project = \"project-id\",\n GrpcConfig = File.ReadAllText(\"service_spec.yml\"),\n ProtocOutputBase64 = ReadFileBase64(\"compiled_descriptor_file.pb\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/endpoints\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn base64.StdEncoding.EncodeToString(fileData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := endpoints.NewService(ctx, \"openapiService\", \u0026endpoints.ServiceArgs{\n\t\t\tServiceName: pulumi.String(\"api-name.endpoints.project-id.cloud.goog\"),\n\t\t\tProject: pulumi.String(\"project-id\"),\n\t\t\tOpenapiConfig: readFileOrPanic(\"openapi_spec.yml\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = endpoints.NewService(ctx, \"grpcService\", \u0026endpoints.ServiceArgs{\n\t\t\tServiceName: pulumi.String(\"api-name.endpoints.project-id.cloud.goog\"),\n\t\t\tProject: pulumi.String(\"project-id\"),\n\t\t\tGrpcConfig: readFileOrPanic(\"service_spec.yml\"),\n\t\t\tProtocOutputBase64: filebase64OrPanic(\"compiled_descriptor_file.pb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.endpoints.Service;\nimport com.pulumi.gcp.endpoints.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var openapiService = new Service(\"openapiService\", ServiceArgs.builder() \n .serviceName(\"api-name.endpoints.project-id.cloud.goog\")\n .project(\"project-id\")\n .openapiConfig(Files.readString(Paths.get(\"openapi_spec.yml\")))\n .build());\n\n var grpcService = new Service(\"grpcService\", ServiceArgs.builder() \n .serviceName(\"api-name.endpoints.project-id.cloud.goog\")\n .project(\"project-id\")\n .grpcConfig(Files.readString(Paths.get(\"service_spec.yml\")))\n .protocOutputBase64(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"compiled_descriptor_file.pb\"))))\n .build());\n\n }\n}\n```\n\nThe example in `examples/endpoints_on_compute_engine` shows the API from the quickstart running on a Compute Engine VM and reachable through Cloud Endpoints, which may also be useful.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThis resource does not support import. ", "properties": { "apis": { "type": "array", @@ -198028,7 +198022,7 @@ } }, "gcp:runtimeconfig/variable:Variable": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample creating a RuntimeConfig variable.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst my_runtime_config = new gcp.runtimeconfig.Config(\"my-runtime-config\", {description: \"Runtime configuration values for my service\"});\nconst environment = new gcp.runtimeconfig.Variable(\"environment\", {\n parent: my_runtime_config.name,\n text: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmy_runtime_config = gcp.runtimeconfig.Config(\"my-runtime-config\", description=\"Runtime configuration values for my service\")\nenvironment = gcp.runtimeconfig.Variable(\"environment\",\n parent=my_runtime_config.name,\n text=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_runtime_config = new Gcp.RuntimeConfig.Config(\"my-runtime-config\", new()\n {\n Description = \"Runtime configuration values for my service\",\n });\n\n var environment = new Gcp.RuntimeConfig.Variable(\"environment\", new()\n {\n Parent = my_runtime_config.Name,\n Text = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/runtimeconfig\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := runtimeconfig.NewConfig(ctx, \"my-runtime-config\", \u0026runtimeconfig.ConfigArgs{\n\t\t\tDescription: pulumi.String(\"Runtime configuration values for my service\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = runtimeconfig.NewVariable(ctx, \"environment\", \u0026runtimeconfig.VariableArgs{\n\t\t\tParent: my_runtime_config.Name,\n\t\t\tText: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.runtimeconfig.Config;\nimport com.pulumi.gcp.runtimeconfig.ConfigArgs;\nimport com.pulumi.gcp.runtimeconfig.Variable;\nimport com.pulumi.gcp.runtimeconfig.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var my_runtime_config = new Config(\"my-runtime-config\", ConfigArgs.builder() \n .description(\"Runtime configuration values for my service\")\n .build());\n\n var environment = new Variable(\"environment\", VariableArgs.builder() \n .parent(my_runtime_config.name())\n .text(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-runtime-config:\n type: gcp:runtimeconfig:Config\n properties:\n description: Runtime configuration values for my service\n environment:\n type: gcp:runtimeconfig:Variable\n properties:\n parent: ${[\"my-runtime-config\"].name}\n text: example.com\n```\n\nYou can also encode binary content using the `value` argument instead. The\nvalue must be base64 encoded.\n\nExample of using the `value` argument.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst my_runtime_config = new gcp.runtimeconfig.Config(\"my-runtime-config\", {description: \"Runtime configuration values for my service\"});\nconst my_secret = new gcp.runtimeconfig.Variable(\"my-secret\", {\n parent: my_runtime_config.name,\n value: Buffer.from(fs.readFileSync(\"my-encrypted-secret.dat\"), 'binary').toString('base64'),\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\nmy_runtime_config = gcp.runtimeconfig.Config(\"my-runtime-config\", description=\"Runtime configuration values for my service\")\nmy_secret = gcp.runtimeconfig.Variable(\"my-secret\",\n parent=my_runtime_config.name,\n value=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"my-encrypted-secret.dat\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_runtime_config = new Gcp.RuntimeConfig.Config(\"my-runtime-config\", new()\n {\n Description = \"Runtime configuration values for my service\",\n });\n\n var my_secret = new Gcp.RuntimeConfig.Variable(\"my-secret\", new()\n {\n Parent = my_runtime_config.Name,\n Value = ReadFileBase64(\"my-encrypted-secret.dat\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/runtimeconfig\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := runtimeconfig.NewConfig(ctx, \"my-runtime-config\", \u0026runtimeconfig.ConfigArgs{\n\t\t\tDescription: pulumi.String(\"Runtime configuration values for my service\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = runtimeconfig.NewVariable(ctx, \"my-secret\", \u0026runtimeconfig.VariableArgs{\n\t\t\tParent: my_runtime_config.Name,\n\t\t\tValue: filebase64OrPanic(\"my-encrypted-secret.dat\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.runtimeconfig.Config;\nimport com.pulumi.gcp.runtimeconfig.ConfigArgs;\nimport com.pulumi.gcp.runtimeconfig.Variable;\nimport com.pulumi.gcp.runtimeconfig.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var my_runtime_config = new Config(\"my-runtime-config\", ConfigArgs.builder() \n .description(\"Runtime configuration values for my service\")\n .build());\n\n var my_secret = new Variable(\"my-secret\", VariableArgs.builder() \n .parent(my_runtime_config.name())\n .value(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"my-encrypted-secret.dat\"))))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRuntime Config Variables can be imported using the `name` or full variable name, e.g. * `projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}` * `{{config_id}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Runtime Config Variables using one of the formats above. For exampletf import {\n\n id = \"projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}\"\n\n to = google_runtimeconfig_variable.default }\n\n```sh\n $ pulumi import gcp:runtimeconfig/variable:Variable When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Runtime Config Variables can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:runtimeconfig/variable:Variable default projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:runtimeconfig/variable:Variable default {{config_id}}/{{name}}\n```\n\n When importing using only the name, the provider project must be set. ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\nExample creating a RuntimeConfig variable.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst my_runtime_config = new gcp.runtimeconfig.Config(\"my-runtime-config\", {description: \"Runtime configuration values for my service\"});\nconst environment = new gcp.runtimeconfig.Variable(\"environment\", {\n parent: my_runtime_config.name,\n text: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmy_runtime_config = gcp.runtimeconfig.Config(\"my-runtime-config\", description=\"Runtime configuration values for my service\")\nenvironment = gcp.runtimeconfig.Variable(\"environment\",\n parent=my_runtime_config.name,\n text=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_runtime_config = new Gcp.RuntimeConfig.Config(\"my-runtime-config\", new()\n {\n Description = \"Runtime configuration values for my service\",\n });\n\n var environment = new Gcp.RuntimeConfig.Variable(\"environment\", new()\n {\n Parent = my_runtime_config.Name,\n Text = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/runtimeconfig\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := runtimeconfig.NewConfig(ctx, \"my-runtime-config\", \u0026runtimeconfig.ConfigArgs{\n\t\t\tDescription: pulumi.String(\"Runtime configuration values for my service\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = runtimeconfig.NewVariable(ctx, \"environment\", \u0026runtimeconfig.VariableArgs{\n\t\t\tParent: my_runtime_config.Name,\n\t\t\tText: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.runtimeconfig.Config;\nimport com.pulumi.gcp.runtimeconfig.ConfigArgs;\nimport com.pulumi.gcp.runtimeconfig.Variable;\nimport com.pulumi.gcp.runtimeconfig.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var my_runtime_config = new Config(\"my-runtime-config\", ConfigArgs.builder() \n .description(\"Runtime configuration values for my service\")\n .build());\n\n var environment = new Variable(\"environment\", VariableArgs.builder() \n .parent(my_runtime_config.name())\n .text(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-runtime-config:\n type: gcp:runtimeconfig:Config\n properties:\n description: Runtime configuration values for my service\n environment:\n type: gcp:runtimeconfig:Variable\n properties:\n parent: ${[\"my-runtime-config\"].name}\n text: example.com\n```\n\nYou can also encode binary content using the `value` argument instead. The\nvalue must be base64 encoded.\n\nExample of using the `value` argument.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst my_runtime_config = new gcp.runtimeconfig.Config(\"my-runtime-config\", {description: \"Runtime configuration values for my service\"});\nconst my_secret = new gcp.runtimeconfig.Variable(\"my-secret\", {\n parent: my_runtime_config.name,\n value: Buffer.from(fs.readFileSync(\"my-encrypted-secret.dat\", 'binary')).toString('base64'),\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\nmy_runtime_config = gcp.runtimeconfig.Config(\"my-runtime-config\", description=\"Runtime configuration values for my service\")\nmy_secret = gcp.runtimeconfig.Variable(\"my-secret\",\n parent=my_runtime_config.name,\n value=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"my-encrypted-secret.dat\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\t\nstring ReadFileBase64(string path) \n{\n return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_runtime_config = new Gcp.RuntimeConfig.Config(\"my-runtime-config\", new()\n {\n Description = \"Runtime configuration values for my service\",\n });\n\n var my_secret = new Gcp.RuntimeConfig.Variable(\"my-secret\", new()\n {\n Parent = my_runtime_config.Name,\n Value = ReadFileBase64(\"my-encrypted-secret.dat\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/runtimeconfig\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn base64.StdEncoding.EncodeToString(fileData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := runtimeconfig.NewConfig(ctx, \"my-runtime-config\", \u0026runtimeconfig.ConfigArgs{\n\t\t\tDescription: pulumi.String(\"Runtime configuration values for my service\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = runtimeconfig.NewVariable(ctx, \"my-secret\", \u0026runtimeconfig.VariableArgs{\n\t\t\tParent: my_runtime_config.Name,\n\t\t\tValue: filebase64OrPanic(\"my-encrypted-secret.dat\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.runtimeconfig.Config;\nimport com.pulumi.gcp.runtimeconfig.ConfigArgs;\nimport com.pulumi.gcp.runtimeconfig.Variable;\nimport com.pulumi.gcp.runtimeconfig.VariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var my_runtime_config = new Config(\"my-runtime-config\", ConfigArgs.builder() \n .description(\"Runtime configuration values for my service\")\n .build());\n\n var my_secret = new Variable(\"my-secret\", VariableArgs.builder() \n .parent(my_runtime_config.name())\n .value(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"my-encrypted-secret.dat\"))))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRuntime Config Variables can be imported using the `name` or full variable name, e.g. * `projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}` * `{{config_id}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Runtime Config Variables using one of the formats above. For exampletf import {\n\n id = \"projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}\"\n\n to = google_runtimeconfig_variable.default }\n\n```sh\n $ pulumi import gcp:runtimeconfig/variable:Variable When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Runtime Config Variables can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:runtimeconfig/variable:Variable default projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:runtimeconfig/variable:Variable default {{config_id}}/{{name}}\n```\n\n When importing using only the name, the provider project must be set. ", "properties": { "name": { "type": "string", @@ -198642,7 +198636,7 @@ } }, "gcp:secretmanager/secretVersion:SecretVersion": { - "description": "A secret version resource.\n\n\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Secret Version Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n labels: {\n label: \"my-label\",\n },\n replication: {\n auto: {},\n },\n});\nconst secret_version_basic = new gcp.secretmanager.SecretVersion(\"secret-version-basic\", {\n secret: secret_basic.id,\n secretData: \"secret-data\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n labels={\n \"label\": \"my-label\",\n },\n replication=gcp.secretmanager.SecretReplicationArgs(\n auto=gcp.secretmanager.SecretReplicationAutoArgs(),\n ))\nsecret_version_basic = gcp.secretmanager.SecretVersion(\"secret-version-basic\",\n secret=secret_basic.id,\n secret_data=\"secret-data\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Labels = \n {\n { \"label\", \"my-label\" },\n },\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n Auto = null,\n },\n });\n\n var secret_version_basic = new Gcp.SecretManager.SecretVersion(\"secret-version-basic\", new()\n {\n Secret = secret_basic.Id,\n SecretData = \"secret-data\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"my-label\"),\n\t\t\t},\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tAuto: nil,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-basic\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tSecretData: pulumi.String(\"secret-data\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationAutoArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .labels(Map.of(\"label\", \"my-label\"))\n .replication(SecretReplicationArgs.builder()\n .auto()\n .build())\n .build());\n\n var secret_version_basic = new SecretVersion(\"secret-version-basic\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .secretData(\"secret-data\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret-basic:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret-version\n labels:\n label: my-label\n replication:\n auto: {}\n secret-version-basic:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"secret-basic\"].id}\n secretData: secret-data\n```\n{{% /example %}}\n{{% example %}}\n### Secret Version Deletion Policy Abandon\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secret_version_deletion_policy = new gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\", {\n secret: secret_basic.id,\n secretData: \"secret-data\",\n deletionPolicy: \"ABANDON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n user_managed=gcp.secretmanager.SecretReplicationUserManagedArgs(\n replicas=[gcp.secretmanager.SecretReplicationUserManagedReplicaArgs(\n location=\"us-central1\",\n )],\n ),\n ))\nsecret_version_deletion_policy = gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\",\n secret=secret_basic.id,\n secret_data=\"secret-data\",\n deletion_policy=\"ABANDON\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secret_version_deletion_policy = new Gcp.SecretManager.SecretVersion(\"secret-version-deletion-policy\", new()\n {\n Secret = secret_basic.Id,\n SecretData = \"secret-data\",\n DeletionPolicy = \"ABANDON\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-deletion-policy\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tSecretData: pulumi.String(\"secret-data\"),\n\t\t\tDeletionPolicy: pulumi.String(\"ABANDON\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secret_version_deletion_policy = new SecretVersion(\"secret-version-deletion-policy\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .secretData(\"secret-data\")\n .deletionPolicy(\"ABANDON\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret-basic:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret-version\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secret-version-deletion-policy:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"secret-basic\"].id}\n secretData: secret-data\n deletionPolicy: ABANDON\n```\n{{% /example %}}\n{{% example %}}\n### Secret Version Deletion Policy Disable\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secret_version_deletion_policy = new gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\", {\n secret: secret_basic.id,\n secretData: \"secret-data\",\n deletionPolicy: \"DISABLE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n user_managed=gcp.secretmanager.SecretReplicationUserManagedArgs(\n replicas=[gcp.secretmanager.SecretReplicationUserManagedReplicaArgs(\n location=\"us-central1\",\n )],\n ),\n ))\nsecret_version_deletion_policy = gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\",\n secret=secret_basic.id,\n secret_data=\"secret-data\",\n deletion_policy=\"DISABLE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secret_version_deletion_policy = new Gcp.SecretManager.SecretVersion(\"secret-version-deletion-policy\", new()\n {\n Secret = secret_basic.Id,\n SecretData = \"secret-data\",\n DeletionPolicy = \"DISABLE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-deletion-policy\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tSecretData: pulumi.String(\"secret-data\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DISABLE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secret_version_deletion_policy = new SecretVersion(\"secret-version-deletion-policy\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .secretData(\"secret-data\")\n .deletionPolicy(\"DISABLE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret-basic:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret-version\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secret-version-deletion-policy:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"secret-basic\"].id}\n secretData: secret-data\n deletionPolicy: DISABLE\n```\n{{% /example %}}\n{{% example %}}\n### Secret Version With Base64 String Secret Data\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secret_version_base64 = new gcp.secretmanager.SecretVersion(\"secret-version-base64\", {\n secret: secret_basic.id,\n isSecretDataBase64: true,\n secretData: Buffer.from(fs.readFileSync(\"secret-data.pfx\"), 'binary').toString('base64'),\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n user_managed=gcp.secretmanager.SecretReplicationUserManagedArgs(\n replicas=[gcp.secretmanager.SecretReplicationUserManagedReplicaArgs(\n location=\"us-central1\",\n )],\n ),\n ))\nsecret_version_base64 = gcp.secretmanager.SecretVersion(\"secret-version-base64\",\n secret=secret_basic.id,\n is_secret_data_base64=True,\n secret_data=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"secret-data.pfx\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\tprivate static string ReadFileBase64(string path) {\n\t\treturn Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n\t}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secret_version_base64 = new Gcp.SecretManager.SecretVersion(\"secret-version-base64\", new()\n {\n Secret = secret_basic.Id,\n IsSecretDataBase64 = true,\n SecretData = ReadFileBase64(\"secret-data.pfx\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) pulumi.StringPtrInput {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn pulumi.String(base64.StdEncoding.EncodeToString(fileData[:]))\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-base64\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tIsSecretDataBase64: pulumi.Bool(true),\n\t\t\tSecretData: filebase64OrPanic(\"secret-data.pfx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secret_version_base64 = new SecretVersion(\"secret-version-base64\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .isSecretDataBase64(true)\n .secretData(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"secret-data.pfx\"))))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecretVersion can be imported using any of these accepted formats* `projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import SecretVersion using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}\"\n\n to = google_secret_manager_secret_version.default }\n\n```sh\n $ pulumi import gcp:secretmanager/secretVersion:SecretVersion When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), SecretVersion can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:secretmanager/secretVersion:SecretVersion default projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}\n```\n\n ", + "description": "A secret version resource.\n\n\n\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Secret Version Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n labels: {\n label: \"my-label\",\n },\n replication: {\n auto: {},\n },\n});\nconst secret_version_basic = new gcp.secretmanager.SecretVersion(\"secret-version-basic\", {\n secret: secret_basic.id,\n secretData: \"secret-data\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n labels={\n \"label\": \"my-label\",\n },\n replication=gcp.secretmanager.SecretReplicationArgs(\n auto=gcp.secretmanager.SecretReplicationAutoArgs(),\n ))\nsecret_version_basic = gcp.secretmanager.SecretVersion(\"secret-version-basic\",\n secret=secret_basic.id,\n secret_data=\"secret-data\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Labels = \n {\n { \"label\", \"my-label\" },\n },\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n Auto = null,\n },\n });\n\n var secret_version_basic = new Gcp.SecretManager.SecretVersion(\"secret-version-basic\", new()\n {\n Secret = secret_basic.Id,\n SecretData = \"secret-data\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"my-label\"),\n\t\t\t},\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tAuto: nil,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-basic\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tSecretData: pulumi.String(\"secret-data\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationAutoArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .labels(Map.of(\"label\", \"my-label\"))\n .replication(SecretReplicationArgs.builder()\n .auto()\n .build())\n .build());\n\n var secret_version_basic = new SecretVersion(\"secret-version-basic\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .secretData(\"secret-data\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret-basic:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret-version\n labels:\n label: my-label\n replication:\n auto: {}\n secret-version-basic:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"secret-basic\"].id}\n secretData: secret-data\n```\n{{% /example %}}\n{{% example %}}\n### Secret Version Deletion Policy Abandon\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secret_version_deletion_policy = new gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\", {\n secret: secret_basic.id,\n secretData: \"secret-data\",\n deletionPolicy: \"ABANDON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n user_managed=gcp.secretmanager.SecretReplicationUserManagedArgs(\n replicas=[gcp.secretmanager.SecretReplicationUserManagedReplicaArgs(\n location=\"us-central1\",\n )],\n ),\n ))\nsecret_version_deletion_policy = gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\",\n secret=secret_basic.id,\n secret_data=\"secret-data\",\n deletion_policy=\"ABANDON\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secret_version_deletion_policy = new Gcp.SecretManager.SecretVersion(\"secret-version-deletion-policy\", new()\n {\n Secret = secret_basic.Id,\n SecretData = \"secret-data\",\n DeletionPolicy = \"ABANDON\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-deletion-policy\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tSecretData: pulumi.String(\"secret-data\"),\n\t\t\tDeletionPolicy: pulumi.String(\"ABANDON\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secret_version_deletion_policy = new SecretVersion(\"secret-version-deletion-policy\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .secretData(\"secret-data\")\n .deletionPolicy(\"ABANDON\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret-basic:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret-version\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secret-version-deletion-policy:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"secret-basic\"].id}\n secretData: secret-data\n deletionPolicy: ABANDON\n```\n{{% /example %}}\n{{% example %}}\n### Secret Version Deletion Policy Disable\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secret_version_deletion_policy = new gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\", {\n secret: secret_basic.id,\n secretData: \"secret-data\",\n deletionPolicy: \"DISABLE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n user_managed=gcp.secretmanager.SecretReplicationUserManagedArgs(\n replicas=[gcp.secretmanager.SecretReplicationUserManagedReplicaArgs(\n location=\"us-central1\",\n )],\n ),\n ))\nsecret_version_deletion_policy = gcp.secretmanager.SecretVersion(\"secret-version-deletion-policy\",\n secret=secret_basic.id,\n secret_data=\"secret-data\",\n deletion_policy=\"DISABLE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secret_version_deletion_policy = new Gcp.SecretManager.SecretVersion(\"secret-version-deletion-policy\", new()\n {\n Secret = secret_basic.Id,\n SecretData = \"secret-data\",\n DeletionPolicy = \"DISABLE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-deletion-policy\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tSecretData: pulumi.String(\"secret-data\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DISABLE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secret_version_deletion_policy = new SecretVersion(\"secret-version-deletion-policy\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .secretData(\"secret-data\")\n .deletionPolicy(\"DISABLE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret-basic:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret-version\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secret-version-deletion-policy:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"secret-basic\"].id}\n secretData: secret-data\n deletionPolicy: DISABLE\n```\n{{% /example %}}\n{{% example %}}\n### Secret Version With Base64 String Secret Data\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst secret_basic = new gcp.secretmanager.Secret(\"secret-basic\", {\n secretId: \"secret-version\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secret_version_base64 = new gcp.secretmanager.SecretVersion(\"secret-version-base64\", {\n secret: secret_basic.id,\n isSecretDataBase64: true,\n secretData: Buffer.from(fs.readFileSync(\"secret-data.pfx\", 'binary')).toString('base64'),\n});\n```\n```python\nimport pulumi\nimport base64\nimport pulumi_gcp as gcp\n\nsecret_basic = gcp.secretmanager.Secret(\"secret-basic\",\n secret_id=\"secret-version\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n user_managed=gcp.secretmanager.SecretReplicationUserManagedArgs(\n replicas=[gcp.secretmanager.SecretReplicationUserManagedReplicaArgs(\n location=\"us-central1\",\n )],\n ),\n ))\nsecret_version_base64 = gcp.secretmanager.SecretVersion(\"secret-version-base64\",\n secret=secret_basic.id,\n is_secret_data_base64=True,\n secret_data=(lambda path: base64.b64encode(open(path).read().encode()).decode())(\"secret-data.pfx\"))\n```\n```csharp\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\n\t\nstring ReadFileBase64(string path) \n{\n return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));\n}\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret_basic = new Gcp.SecretManager.Secret(\"secret-basic\", new()\n {\n SecretId = \"secret-version\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secret_version_base64 = new Gcp.SecretManager.SecretVersion(\"secret-version-base64\", new()\n {\n Secret = secret_basic.Id,\n IsSecretDataBase64 = true,\n SecretData = ReadFileBase64(\"secret-data.pfx\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/base64\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc filebase64OrPanic(path string) string {\n\tif fileData, err := os.ReadFile(path); err == nil {\n\t\treturn base64.StdEncoding.EncodeToString(fileData[:])\n\t} else {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"secret-basic\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret-version\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"secret-version-base64\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret_basic.ID(),\n\t\t\tIsSecretDataBase64: pulumi.Bool(true),\n\t\t\tSecretData: filebase64OrPanic(\"secret-data.pfx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret_basic = new Secret(\"secret-basic\", SecretArgs.builder() \n .secretId(\"secret-version\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secret_version_base64 = new SecretVersion(\"secret-version-base64\", SecretVersionArgs.builder() \n .secret(secret_basic.id())\n .isSecretDataBase64(true)\n .secretData(Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get(\"secret-data.pfx\"))))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecretVersion can be imported using any of these accepted formats* `projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import SecretVersion using one of the formats above. For exampletf import {\n\n id = \"projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}\"\n\n to = google_secret_manager_secret_version.default }\n\n```sh\n $ pulumi import gcp:secretmanager/secretVersion:SecretVersion When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), SecretVersion can be imported using one of the formats above. For example\n```\n\n\n\n```sh\n $ pulumi import gcp:secretmanager/secretVersion:SecretVersion default projects/{{project}}/secrets/{{secret_id}}/versions/{{version}}\n```\n\n ", "properties": { "createTime": { "type": "string", diff --git a/provider/go.mod b/provider/go.mod index 766e230dc0..06515cb9b8 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -5,10 +5,10 @@ go 1.21.0 require ( github.com/hashicorp/terraform-provider-google-beta v0.0.0 github.com/pulumi/providertest v0.0.3 - github.com/pulumi/pulumi-terraform-bridge/pf v0.21.0 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.68.0 - github.com/pulumi/pulumi/pkg/v3 v3.96.2 - github.com/pulumi/pulumi/sdk/v3 v3.96.2 + github.com/pulumi/pulumi-terraform-bridge/pf v0.22.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.69.0 + github.com/pulumi/pulumi/pkg/v3 v3.98.0 + github.com/pulumi/pulumi/sdk/v3 v3.98.0 github.com/stretchr/testify v1.8.4 sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 ) @@ -136,7 +136,7 @@ require ( github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.5.1 // indirect + github.com/hashicorp/go-plugin v1.6.0 // indirect github.com/hashicorp/go-retryablehttp v0.7.1 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect @@ -156,11 +156,11 @@ require ( github.com/hashicorp/terraform-json v0.17.1 // indirect github.com/hashicorp/terraform-plugin-framework v1.4.2 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.19.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.20.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect - github.com/hashicorp/terraform-plugin-mux v0.12.0 // indirect + github.com/hashicorp/terraform-plugin-mux v0.13.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 // indirect - github.com/hashicorp/terraform-registry-address v0.2.2 // indirect + github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/vault/api v1.8.2 // indirect github.com/hashicorp/vault/sdk v0.6.1 // indirect @@ -209,7 +209,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/posener/complete v1.2.3 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect - github.com/pulumi/esc v0.6.1-0.20231111193429-44b746a5b3b5 // indirect + github.com/pulumi/esc v0.6.1 // indirect github.com/pulumi/pulumi-java/pkg v0.9.8 // indirect github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096 // indirect github.com/pulumi/pulumi-yaml v1.4.3 // indirect @@ -237,7 +237,7 @@ require ( github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/ulikunitz/xz v0.5.10 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect - github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect + github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect @@ -248,24 +248,24 @@ require ( go.uber.org/atomic v1.9.0 // indirect gocloud.dev v0.27.0 // indirect gocloud.dev/secrets/hashivault v0.27.0 // indirect - golang.org/x/crypto v0.15.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.18.0 // indirect golang.org/x/oauth2 v0.14.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.14.0 // indirect - golang.org/x/term v0.14.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.152.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/grpc v1.59.0 // indirect + google.golang.org/grpc v1.60.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect diff --git a/provider/go.sum b/provider/go.sum index 2d5524078f..b68eb09f8d 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1629,8 +1629,9 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= github.com/hashicorp/go-plugin v1.4.4/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= -github.com/hashicorp/go-plugin v1.5.1 h1:oGm7cWBaYIp3lJpx1RUEfLWophprE2EV/KUeqBYo+6k= github.com/hashicorp/go-plugin v1.5.1/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= +github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= +github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ= @@ -1700,17 +1701,19 @@ github.com/hashicorp/terraform-plugin-framework v1.4.2 h1:P7a7VP1GZbjc4rv921Xy5O github.com/hashicorp/terraform-plugin-framework v1.4.2/go.mod h1:GWl3InPFZi2wVQmdVnINPKys09s9mLmTZr95/ngLnbY= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= -github.com/hashicorp/terraform-plugin-go v0.19.0 h1:BuZx/6Cp+lkmiG0cOBk6Zps0Cb2tmqQpDM3iAtnhDQU= github.com/hashicorp/terraform-plugin-go v0.19.0/go.mod h1:EhRSkEPNoylLQntYsk5KrDHTZJh9HQoumZXbOGOXmec= +github.com/hashicorp/terraform-plugin-go v0.20.0 h1:oqvoUlL+2EUbKNsJbIt3zqqZ7wi6lzn4ufkn/UA51xQ= +github.com/hashicorp/terraform-plugin-go v0.20.0/go.mod h1:Rr8LBdMlY53a3Z/HpP+ZU3/xCDqtKNCkeI9qOyT10QE= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= -github.com/hashicorp/terraform-plugin-mux v0.12.0 h1:TJlmeslQ11WlQtIFAfth0vXx+gSNgvMEng2Rn9z3WZY= -github.com/hashicorp/terraform-plugin-mux v0.12.0/go.mod h1:8MR0AgmV+Q03DIjyrAKxXyYlq2EUnYBQP8gxAAA0zeM= +github.com/hashicorp/terraform-plugin-mux v0.13.0 h1:79U401/3nd8CWwDGtTHc8F3miSCAS9XGtVarxSTDgwA= +github.com/hashicorp/terraform-plugin-mux v0.13.0/go.mod h1:Ndv0FtwDG2ogzH59y64f2NYimFJ6I0smRgFUKfm6dyQ= github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-registry-address v0.2.2 h1:lPQBg403El8PPicg/qONZJDC6YlgCVbWDtNmmZKtBno= github.com/hashicorp/terraform-registry-address v0.2.2/go.mod h1:LtwNbCihUoUZ3RYriyS2wF/lGPB6gF9ICLRtuDk7hSo= +github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= +github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= @@ -1729,10 +1732,12 @@ github.com/hetznercloud/hcloud-go v1.33.1/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQ github.com/hetznercloud/hcloud-go v1.35.0/go.mod h1:mepQwR6va27S3UQthaEPGS86jtzSY9xWL1e9dyxXpgA= github.com/hexops/autogold v1.3.0 h1:IEtGNPxBeBu8RMn8eKWh/Ll9dVNgSnJ7bp/qHgMQ14o= github.com/hexops/autogold v1.3.0/go.mod h1:d4hwi2rid66Sag+BVuHgwakW/EmaFr8vdTSbWDbrDRI= +github.com/hexops/autogold/v2 v2.2.1 h1:JPUXuZQGkcQMv7eeDXuNMovjfoRYaa0yVcm+F3voaGY= +github.com/hexops/autogold/v2 v2.2.1/go.mod h1:IJwxtUfj1BGLm0YsR/k+dIxYi6xbeLjqGke2bzcOTMI= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/hexops/valast v1.4.0 h1:sFzyxPDP0riFQUzSBXTCCrAbbIndHPWMndxuEjXdZlc= -github.com/hexops/valast v1.4.0/go.mod h1:uVjKZ0smVuYlgCSPz9NRi5A04sl7lp6GtFWsROKDgEs= +github.com/hexops/valast v1.4.4 h1:rETyycw+/L2ZVJHHNxEBgh8KUn+87WugH9MxcEv9PGs= +github.com/hexops/valast v1.4.4/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fGxU7o4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -2221,26 +2226,26 @@ github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGO github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= -github.com/pulumi/esc v0.6.1-0.20231111193429-44b746a5b3b5 h1:1DJMji9F7XPea46bSuhy4/85n8J4/Mfz8PWLZtjKKiI= -github.com/pulumi/esc v0.6.1-0.20231111193429-44b746a5b3b5/go.mod h1:Y6W21yUukvxS2NnS5ae1beMSPhMvj0xNAYcDqDHVj/g= +github.com/pulumi/esc v0.6.1 h1:X6gRcw1cH/oNkZG8MuD4rUhetO7fUTGKZXPzQWAPX40= +github.com/pulumi/esc v0.6.1/go.mod h1:1+tlMNX29iqfyElwo0tc2eRx9MWjWHRjrPLyLvTQMqM= github.com/pulumi/providertest v0.0.3 h1:DLcAvVGgeP4mHEi1Ftk5zTX9QHjcrO6u5w5GCZrF99s= github.com/pulumi/providertest v0.0.3/go.mod h1:kZYBA14iemv3X4G4xsBKaa72zVbn//IyL5HTYKpLuy0= github.com/pulumi/pulumi-java/pkg v0.9.8 h1:c8mYsalnRXA2Ibgvv6scefOn6mW1Vb0UT0mcDqjsivQ= github.com/pulumi/pulumi-java/pkg v0.9.8/go.mod h1:c6rSw/+q4O0IImgJ9axxoC6QesbPYWBaG5gimbHouUQ= -github.com/pulumi/pulumi-terraform-bridge/pf v0.21.0 h1:rKL6YQh55C6BTElSzox6VyuDDhxu8zh59qlECe4wkIM= -github.com/pulumi/pulumi-terraform-bridge/pf v0.21.0/go.mod h1:4XbozjoCh9lbGcUD5+83LrjAqzGPQGjya0lavqVq1sQ= +github.com/pulumi/pulumi-terraform-bridge/pf v0.22.0 h1:sgQslsC7PqYh3Flxk3bZhXc3DNLiYUmxUTBogR0l46w= +github.com/pulumi/pulumi-terraform-bridge/pf v0.22.0/go.mod h1:ejVXJ1pqYjapUPzl+3ERcw2CQzQvqir6bgfUVJH14P8= github.com/pulumi/pulumi-terraform-bridge/testing v0.0.1 h1:SCg1gjfY9N4yn8U8peIUYATifjoDABkyR7H9lmefsfc= github.com/pulumi/pulumi-terraform-bridge/testing v0.0.1/go.mod h1:7OeUPH8rpt5ipyj9EFcnXpuzQ8SHL0dyqdfa8nOacdk= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.68.0 h1:HNbo4GeJZP2AjKubxV08o+3K0mt6iNrwbQ//EgPz6bc= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.68.0/go.mod h1:FQgtkWHv3rMPVA3OMu8yMHkZA4nGEuvCRwshrs4sw0s= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.69.0 h1:PsIB738ZqrQbHKe5Q5Ag8Kq/ejrOyO8skLUQeAqRjzM= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.69.0/go.mod h1:/wXhD95iSr4FlmGtVN/H8hXriMW4isDDrAUprozXG4A= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096 h1:1nzT9XuyTHdcWJboYNMPPdW0B0mQdXYg8Az5tF96MXY= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.7-0.20230801203955-5d215c892096/go.mod h1:1pLAP9kryYta3Xrw99oh7BmxY6PYb+z2m7ENNCJMIRQ= github.com/pulumi/pulumi-yaml v1.4.3 h1:GO36c7FTl8If20Dn/w2Hi3huP7kmsO00KNaz3GJU0Ws= github.com/pulumi/pulumi-yaml v1.4.3/go.mod h1:1hwsXFnT7hm2ZeftY5fzjkngjs2eT/rv9MsPE48Leb4= -github.com/pulumi/pulumi/pkg/v3 v3.96.2 h1:d+zDsh4K1j90q/upDRkhgxHkspP20Xxd3g6OaMbw574= -github.com/pulumi/pulumi/pkg/v3 v3.96.2/go.mod h1:lR+q06XrnEqRzJXZ6IeHb4nu+U5fswFcc51Q0MRBTio= -github.com/pulumi/pulumi/sdk/v3 v3.96.2 h1:q5ZKdf+e9JR+a6Eiueg0Ohy6jCQGk9pO2V7xI/qGP3I= -github.com/pulumi/pulumi/sdk/v3 v3.96.2/go.mod h1:yvD23IIRiqIXuo4kaZNe5zK/uT0nhO99wr6BVEqoi7A= +github.com/pulumi/pulumi/pkg/v3 v3.98.0 h1:lQyjy31az5bMfTmsyqeeAEQMKjrLyx8IL+C27D6b+x4= +github.com/pulumi/pulumi/pkg/v3 v3.98.0/go.mod h1:aeQmrCMwvMOIz1s6qOk+vg1oCWff5hmeRrg1vYv8eRU= +github.com/pulumi/pulumi/sdk/v3 v3.98.0 h1:H18eCWKiv7oXy7n/dni3JxFfwvY3UEjAzjeqtaaZT+I= +github.com/pulumi/pulumi/sdk/v3 v3.98.0/go.mod h1:/bHwzPhsCJCjzY0STmvZ7DzV5gZN6iDSXQ/gitEAyws= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= @@ -2305,8 +2310,6 @@ github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9Nz github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17 h1:lRAUE0dIvigSSFAmaM2dfg7OH8T+a8zJ5smEh09a/GI= -github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= @@ -2426,8 +2429,9 @@ github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6Ac github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= @@ -2624,8 +2628,8 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -3003,8 +3007,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -3021,8 +3025,8 @@ golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -3246,8 +3250,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -3462,8 +3467,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= +google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -3641,8 +3646,8 @@ modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= -mvdan.cc/gofumpt v0.1.0 h1:hsVv+Y9UsZ/mFZTxJZuHVI6shSQCtzZ11h1JEFPAZLw= -mvdan.cc/gofumpt v0.1.0/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48= +mvdan.cc/gofumpt v0.5.0 h1:0EQ+Z56k8tXjj/6TQD25BFNKQXpCvT0rnansIc7Ug5E= +mvdan.cc/gofumpt v0.5.0/go.mod h1:HBeVDtMKRZpXyxFciAirzdKklDlGu8aAy1wEbH5Y9js= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= diff --git a/sdk/dotnet/ApiGateway/ApiConfig.cs b/sdk/dotnet/ApiGateway/ApiConfig.cs index a0e0620bb9..f04276bf4d 100644 --- a/sdk/dotnet/ApiGateway/ApiConfig.cs +++ b/sdk/dotnet/ApiGateway/ApiConfig.cs @@ -29,9 +29,11 @@ namespace Pulumi.Gcp.ApiGateway /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// - /// private static string ReadFileBase64(string path) { - /// return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path))); - /// } + /// + /// string ReadFileBase64(string path) + /// { + /// return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path))); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/ApiGateway/Gateway.cs b/sdk/dotnet/ApiGateway/Gateway.cs index 9a998c2d0a..5981d86220 100644 --- a/sdk/dotnet/ApiGateway/Gateway.cs +++ b/sdk/dotnet/ApiGateway/Gateway.cs @@ -29,9 +29,11 @@ namespace Pulumi.Gcp.ApiGateway /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// - /// private static string ReadFileBase64(string path) { - /// return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path))); - /// } + /// + /// string ReadFileBase64(string path) + /// { + /// return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path))); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/CertificateAuthority/Certificate.cs b/sdk/dotnet/CertificateAuthority/Certificate.cs index ced58aa4f0..fbcb908738 100644 --- a/sdk/dotnet/CertificateAuthority/Certificate.cs +++ b/sdk/dotnet/CertificateAuthority/Certificate.cs @@ -295,9 +295,11 @@ namespace Pulumi.Gcp.CertificateAuthority /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// - /// private static string ReadFileBase64(string path) { - /// return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path))); - /// } + /// + /// string ReadFileBase64(string path) + /// { + /// return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path))); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/Compute/RegionSslCertificate.cs b/sdk/dotnet/Compute/RegionSslCertificate.cs index 8f9c881d03..dabcc7bc1d 100644 --- a/sdk/dotnet/Compute/RegionSslCertificate.cs +++ b/sdk/dotnet/Compute/RegionSslCertificate.cs @@ -56,11 +56,13 @@ namespace Pulumi.Gcp.Compute /// using Gcp = Pulumi.Gcp; /// using Random = Pulumi.Random; /// - /// private static string ComputeFileBase64Sha256(string path) { - /// var fileData = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)); - /// var hashData = SHA256.Create().ComputeHash(fileData); - /// return Convert.ToBase64String(hashData); - /// } + /// + /// string ComputeFileBase64Sha256(string path) + /// { + /// var fileData = Encoding.UTF8.GetBytes(File.ReadAllText(path)); + /// var hashData = SHA256.Create().ComputeHash(fileData); + /// return Convert.ToBase64String(hashData); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/Compute/SSLCertificate.cs b/sdk/dotnet/Compute/SSLCertificate.cs index c8738730be..35e4006288 100644 --- a/sdk/dotnet/Compute/SSLCertificate.cs +++ b/sdk/dotnet/Compute/SSLCertificate.cs @@ -55,11 +55,13 @@ namespace Pulumi.Gcp.Compute /// using Gcp = Pulumi.Gcp; /// using Random = Pulumi.Random; /// - /// private static string ComputeFileBase64Sha256(string path) { - /// var fileData = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path)); - /// var hashData = SHA256.Create().ComputeHash(fileData); - /// return Convert.ToBase64String(hashData); - /// } + /// + /// string ComputeFileBase64Sha256(string path) + /// { + /// var fileData = Encoding.UTF8.GetBytes(File.ReadAllText(path)); + /// var hashData = SHA256.Create().ComputeHash(fileData); + /// return Convert.ToBase64String(hashData); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/Endpoints/Service.cs b/sdk/dotnet/Endpoints/Service.cs index ff5dc8ba60..d59d21d473 100644 --- a/sdk/dotnet/Endpoints/Service.cs +++ b/sdk/dotnet/Endpoints/Service.cs @@ -22,9 +22,11 @@ namespace Pulumi.Gcp.Endpoints /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// - /// private static string ReadFileBase64(string path) { - /// return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path))); - /// } + /// + /// string ReadFileBase64(string path) + /// { + /// return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path))); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/RuntimeConfig/Variable.cs b/sdk/dotnet/RuntimeConfig/Variable.cs index ef40a59acd..665e7c241d 100644 --- a/sdk/dotnet/RuntimeConfig/Variable.cs +++ b/sdk/dotnet/RuntimeConfig/Variable.cs @@ -49,9 +49,11 @@ namespace Pulumi.Gcp.RuntimeConfig /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// - /// private static string ReadFileBase64(string path) { - /// return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path))); - /// } + /// + /// string ReadFileBase64(string path) + /// { + /// return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path))); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/dotnet/SecretManager/SecretVersion.cs b/sdk/dotnet/SecretManager/SecretVersion.cs index a71f6b7ea8..e4986e5904 100644 --- a/sdk/dotnet/SecretManager/SecretVersion.cs +++ b/sdk/dotnet/SecretManager/SecretVersion.cs @@ -128,9 +128,11 @@ namespace Pulumi.Gcp.SecretManager /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// - /// private static string ReadFileBase64(string path) { - /// return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path))); - /// } + /// + /// string ReadFileBase64(string path) + /// { + /// return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path))); + /// } /// /// return await Deployment.RunAsync(() => /// { diff --git a/sdk/go.mod b/sdk/go.mod index 04fd7d4c2d..74d1131733 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.96.2 + github.com/pulumi/pulumi/sdk/v3 v3.98.0 ) require ( @@ -41,15 +41,15 @@ require ( github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.14 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/reflow v0.3.0 // indirect - github.com/muesli/termenv v0.15.1 // indirect + github.com/muesli/termenv v0.15.2 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pgavlin/fx v0.1.6 // indirect @@ -57,7 +57,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect - github.com/pulumi/esc v0.5.6 // indirect + github.com/pulumi/esc v0.6.1 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect @@ -74,15 +74,15 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.2 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sync v0.4.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.14.0 // indirect + golang.org/x/crypto v0.15.0 // indirect + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.18.0 // indirect + golang.org/x/sync v0.5.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/term v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.15.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130 // indirect google.golang.org/grpc v1.57.1 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/sdk/go.sum b/sdk/go.sum index ca1dfdb4db..15d3d43445 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -110,26 +110,26 @@ github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZb github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= -github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= -github.com/muesli/termenv v0.15.1 h1:UzuTb/+hhlBugQz28rpzey4ZuKcZ03MeKsoG7IJZIxs= -github.com/muesli/termenv v0.15.1/go.mod h1:HeAQPTzpfs016yGtA4g00CsdYnVLJvxsS4ANqrZs2sQ= +github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= +github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= @@ -149,10 +149,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= -github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= -github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= -github.com/pulumi/pulumi/sdk/v3 v3.96.2 h1:q5ZKdf+e9JR+a6Eiueg0Ohy6jCQGk9pO2V7xI/qGP3I= -github.com/pulumi/pulumi/sdk/v3 v3.96.2/go.mod h1:yvD23IIRiqIXuo4kaZNe5zK/uT0nhO99wr6BVEqoi7A= +github.com/pulumi/esc v0.6.1 h1:X6gRcw1cH/oNkZG8MuD4rUhetO7fUTGKZXPzQWAPX40= +github.com/pulumi/esc v0.6.1/go.mod h1:1+tlMNX29iqfyElwo0tc2eRx9MWjWHRjrPLyLvTQMqM= +github.com/pulumi/pulumi/sdk/v3 v3.98.0 h1:H18eCWKiv7oXy7n/dni3JxFfwvY3UEjAzjeqtaaZT+I= +github.com/pulumi/pulumi/sdk/v3 v3.98.0/go.mod h1:/bHwzPhsCJCjzY0STmvZ7DzV5gZN6iDSXQ/gitEAyws= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= @@ -208,18 +208,18 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -231,15 +231,15 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -260,15 +260,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -276,8 +276,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -286,8 +286,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/sdk/go/gcp/apigateway/apiConfig.go b/sdk/go/gcp/apigateway/apiConfig.go index 824e59c2b0..15c12cd6d1 100644 --- a/sdk/go/gcp/apigateway/apiConfig.go +++ b/sdk/go/gcp/apigateway/apiConfig.go @@ -36,9 +36,9 @@ import ( // // ) // -// func filebase64OrPanic(path string) pulumi.StringPtrInput { +// func filebase64OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { -// return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:])) +// return base64.StdEncoding.EncodeToString(fileData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/apigateway/gateway.go b/sdk/go/gcp/apigateway/gateway.go index 4ff01b2336..5017f4128c 100644 --- a/sdk/go/gcp/apigateway/gateway.go +++ b/sdk/go/gcp/apigateway/gateway.go @@ -36,9 +36,9 @@ import ( // // ) // -// func filebase64OrPanic(path string) pulumi.StringPtrInput { +// func filebase64OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { -// return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:])) +// return base64.StdEncoding.EncodeToString(fileData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/certificateauthority/certificate.go b/sdk/go/gcp/certificateauthority/certificate.go index f6c73888c2..2d2860b2b4 100644 --- a/sdk/go/gcp/certificateauthority/certificate.go +++ b/sdk/go/gcp/certificateauthority/certificate.go @@ -296,9 +296,9 @@ import ( // // ) // -// func filebase64OrPanic(path string) pulumi.StringPtrInput { +// func filebase64OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { -// return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:])) +// return base64.StdEncoding.EncodeToString(fileData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/compute/regionSslCertificate.go b/sdk/go/gcp/compute/regionSslCertificate.go index bed5724f3a..6c1a0df032 100644 --- a/sdk/go/gcp/compute/regionSslCertificate.go +++ b/sdk/go/gcp/compute/regionSslCertificate.go @@ -70,7 +70,6 @@ import ( // import ( // // "crypto/sha256" -// "fmt" // "os" // // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" @@ -79,10 +78,10 @@ import ( // // ) // -// func filebase64sha256OrPanic(path string) pulumi.StringPtrInput { +// func filebase64sha256OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { // hashedData := sha256.Sum256([]byte(fileData)) -// return pulumi.String(base64.StdEncoding.EncodeToString(hashedData[:])) +// return base64.StdEncoding.EncodeToString(hashedData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/compute/sslcertificate.go b/sdk/go/gcp/compute/sslcertificate.go index d3fe72ff4f..5778d1d025 100644 --- a/sdk/go/gcp/compute/sslcertificate.go +++ b/sdk/go/gcp/compute/sslcertificate.go @@ -69,7 +69,6 @@ import ( // import ( // // "crypto/sha256" -// "fmt" // "os" // // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" @@ -78,10 +77,10 @@ import ( // // ) // -// func filebase64sha256OrPanic(path string) pulumi.StringPtrInput { +// func filebase64sha256OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { // hashedData := sha256.Sum256([]byte(fileData)) -// return pulumi.String(base64.StdEncoding.EncodeToString(hashedData[:])) +// return base64.StdEncoding.EncodeToString(hashedData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/endpoints/service.go b/sdk/go/gcp/endpoints/service.go index 53cb89d211..e63c380acd 100644 --- a/sdk/go/gcp/endpoints/service.go +++ b/sdk/go/gcp/endpoints/service.go @@ -29,9 +29,9 @@ import ( // // ) // -// func filebase64OrPanic(path string) pulumi.StringPtrInput { +// func filebase64OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { -// return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:])) +// return base64.StdEncoding.EncodeToString(fileData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/runtimeconfig/variable.go b/sdk/go/gcp/runtimeconfig/variable.go index d4fa74d065..3d88e8cf66 100644 --- a/sdk/go/gcp/runtimeconfig/variable.go +++ b/sdk/go/gcp/runtimeconfig/variable.go @@ -65,9 +65,9 @@ import ( // // ) // -// func filebase64OrPanic(path string) pulumi.StringPtrInput { +// func filebase64OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { -// return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:])) +// return base64.StdEncoding.EncodeToString(fileData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/go/gcp/secretmanager/secretVersion.go b/sdk/go/gcp/secretmanager/secretVersion.go index 237b6818be..4f0b1910c0 100644 --- a/sdk/go/gcp/secretmanager/secretVersion.go +++ b/sdk/go/gcp/secretmanager/secretVersion.go @@ -152,9 +152,9 @@ import ( // // ) // -// func filebase64OrPanic(path string) pulumi.StringPtrInput { +// func filebase64OrPanic(path string) string { // if fileData, err := os.ReadFile(path); err == nil { -// return pulumi.String(base64.StdEncoding.EncodeToString(fileData[:])) +// return base64.StdEncoding.EncodeToString(fileData[:]) // } else { // panic(err.Error()) // } diff --git a/sdk/nodejs/apigateway/apiConfig.ts b/sdk/nodejs/apigateway/apiConfig.ts index 746a990da6..30c433d134 100644 --- a/sdk/nodejs/apigateway/apiConfig.ts +++ b/sdk/nodejs/apigateway/apiConfig.ts @@ -32,7 +32,7 @@ import * as utilities from "../utilities"; * openapiDocuments: [{ * document: { * path: "spec.yaml", - * contents: Buffer.from(fs.readFileSync("test-fixtures/openapi.yaml"), 'binary').toString('base64'), + * contents: Buffer.from(fs.readFileSync("test-fixtures/openapi.yaml", 'binary')).toString('base64'), * }, * }], * }, { diff --git a/sdk/nodejs/apigateway/gateway.ts b/sdk/nodejs/apigateway/gateway.ts index 0dafe6e415..cdf8a2505a 100644 --- a/sdk/nodejs/apigateway/gateway.ts +++ b/sdk/nodejs/apigateway/gateway.ts @@ -30,7 +30,7 @@ import * as utilities from "../utilities"; * openapiDocuments: [{ * document: { * path: "spec.yaml", - * contents: Buffer.from(fs.readFileSync("test-fixtures/openapi.yaml"), 'binary').toString('base64'), + * contents: Buffer.from(fs.readFileSync("test-fixtures/openapi.yaml", 'binary')).toString('base64'), * }, * }], * }, { diff --git a/sdk/nodejs/certificateauthority/certificate.ts b/sdk/nodejs/certificateauthority/certificate.ts index ab3b5b05b6..f0a744b27f 100644 --- a/sdk/nodejs/certificateauthority/certificate.ts +++ b/sdk/nodejs/certificateauthority/certificate.ts @@ -278,7 +278,7 @@ import * as utilities from "../utilities"; * }, * publicKey: { * format: "PEM", - * key: Buffer.from(fs.readFileSync("test-fixtures/rsa_public.pem"), 'binary').toString('base64'), + * key: Buffer.from(fs.readFileSync("test-fixtures/rsa_public.pem", 'binary')).toString('base64'), * }, * }, * }, { diff --git a/sdk/nodejs/compute/regionSslCertificate.ts b/sdk/nodejs/compute/regionSslCertificate.ts index cf249c7dfd..5bd510b702 100644 --- a/sdk/nodejs/compute/regionSslCertificate.ts +++ b/sdk/nodejs/compute/regionSslCertificate.ts @@ -40,8 +40,8 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * import * as random from "@pulumi/random"; * - * function computeFilebase64sha256(path string) string { - * const fileData = Buffer.from(fs.readFileSync(path), 'binary') + * function computeFilebase64sha256(path: string): string { + * const fileData = Buffer.from(fs.readFileSync(path, 'binary')) * return crypto.createHash('sha256').update(fileData).digest('hex') * } * diff --git a/sdk/nodejs/compute/sslcertificate.ts b/sdk/nodejs/compute/sslcertificate.ts index 3e677c586d..9fee1b65b2 100644 --- a/sdk/nodejs/compute/sslcertificate.ts +++ b/sdk/nodejs/compute/sslcertificate.ts @@ -39,8 +39,8 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * import * as random from "@pulumi/random"; * - * function computeFilebase64sha256(path string) string { - * const fileData = Buffer.from(fs.readFileSync(path), 'binary') + * function computeFilebase64sha256(path: string): string { + * const fileData = Buffer.from(fs.readFileSync(path, 'binary')) * return crypto.createHash('sha256').update(fileData).digest('hex') * } * diff --git a/sdk/nodejs/endpoints/service.ts b/sdk/nodejs/endpoints/service.ts index 52ba40e66e..856ac785bf 100644 --- a/sdk/nodejs/endpoints/service.ts +++ b/sdk/nodejs/endpoints/service.ts @@ -25,7 +25,7 @@ import * as utilities from "../utilities"; * serviceName: "api-name.endpoints.project-id.cloud.goog", * project: "project-id", * grpcConfig: fs.readFileSync("service_spec.yml", "utf8"), - * protocOutputBase64: Buffer.from(fs.readFileSync("compiled_descriptor_file.pb"), 'binary').toString('base64'), + * protocOutputBase64: Buffer.from(fs.readFileSync("compiled_descriptor_file.pb", 'binary')).toString('base64'), * }); * ``` * diff --git a/sdk/nodejs/runtimeconfig/variable.ts b/sdk/nodejs/runtimeconfig/variable.ts index fa5fe4a543..f321577e24 100644 --- a/sdk/nodejs/runtimeconfig/variable.ts +++ b/sdk/nodejs/runtimeconfig/variable.ts @@ -33,7 +33,7 @@ import * as utilities from "../utilities"; * const my_runtime_config = new gcp.runtimeconfig.Config("my-runtime-config", {description: "Runtime configuration values for my service"}); * const my_secret = new gcp.runtimeconfig.Variable("my-secret", { * parent: my_runtime_config.name, - * value: Buffer.from(fs.readFileSync("my-encrypted-secret.dat"), 'binary').toString('base64'), + * value: Buffer.from(fs.readFileSync("my-encrypted-secret.dat", 'binary')).toString('base64'), * }); * ``` * diff --git a/sdk/nodejs/secretmanager/secretVersion.ts b/sdk/nodejs/secretmanager/secretVersion.ts index 5aaceb634a..f9d9c0e6a2 100644 --- a/sdk/nodejs/secretmanager/secretVersion.ts +++ b/sdk/nodejs/secretmanager/secretVersion.ts @@ -92,7 +92,7 @@ import * as utilities from "../utilities"; * const secret_version_base64 = new gcp.secretmanager.SecretVersion("secret-version-base64", { * secret: secret_basic.id, * isSecretDataBase64: true, - * secretData: Buffer.from(fs.readFileSync("secret-data.pfx"), 'binary').toString('base64'), + * secretData: Buffer.from(fs.readFileSync("secret-data.pfx", 'binary')).toString('base64'), * }); * ``` *