From 0037095e39fb335cbf5c980627fbfed4b983cf96 Mon Sep 17 00:00:00 2001 From: Ringo De Smet Date: Mon, 24 Mar 2025 14:20:50 +0100 Subject: [PATCH 1/2] make tfgen --- .pulumi-java-gen.version | 2 +- .../bridge-metadata.json | 155 +- .../cmd/pulumi-resource-zitadel/schema.json | 1716 ++++++++++++++--- provider/go.mod | 12 +- provider/go.sum | 24 +- provider/resources.go | 2 + 6 files changed, 1616 insertions(+), 295 deletions(-) diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version index 589268e..ce6a70b 100644 --- a/.pulumi-java-gen.version +++ b/.pulumi-java-gen.version @@ -1 +1 @@ -1.3.0 \ No newline at end of file +1.6.0 \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-zitadel/bridge-metadata.json b/provider/cmd/pulumi-resource-zitadel/bridge-metadata.json index 23b711c..d1e6faa 100644 --- a/provider/cmd/pulumi-resource-zitadel/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-zitadel/bridge-metadata.json @@ -144,6 +144,17 @@ } } }, + "zitadel_idp_oauth": { + "current": "zitadel:index/idpOauth:IdpOauth", + "fields": { + "scopes": { + "maxItemsOne": false + } + } + }, + "zitadel_idp_saml": { + "current": "zitadel:index/idpSaml:IdpSaml" + }, "zitadel_instance_member": { "current": "zitadel:index/instanceMember:InstanceMember", "fields": { @@ -254,6 +265,14 @@ } } }, + "zitadel_org_idp_oauth": { + "current": "zitadel:index/orgIdpOauth:OrgIdpOauth", + "fields": { + "scopes": { + "maxItemsOne": false + } + } + }, "zitadel_org_idp_oidc": { "current": "zitadel:index/orgIdpOidc:OrgIdpOidc", "fields": { @@ -262,6 +281,9 @@ } } }, + "zitadel_org_idp_saml": { + "current": "zitadel:index/orgIdpSaml:OrgIdpSaml" + }, "zitadel_org_member": { "current": "zitadel:index/orgMember:OrgMember", "fields": { @@ -270,6 +292,9 @@ } } }, + "zitadel_org_metadata": { + "current": "zitadel:index/orgMetadata:OrgMetadata" + }, "zitadel_password_complexity_policy": { "current": "zitadel:index/passwordComplexityPolicy:PasswordComplexityPolicy" }, @@ -330,6 +355,9 @@ "maxItemsOne": false } } + }, + "zitadel_user_metadata": { + "current": "zitadel:index/userMetadata:UserMetadata" } }, "datasources": { @@ -459,6 +487,17 @@ } } }, + "zitadel_idp_oauth": { + "current": "zitadel:index/getIdpOauth:getIdpOauth", + "fields": { + "scopes": { + "maxItemsOne": false + } + } + }, + "zitadel_idp_saml": { + "current": "zitadel:index/getIdpSaml:getIdpSaml" + }, "zitadel_machine_user": { "current": "zitadel:index/getMachineUser:getMachineUser", "fields": { @@ -540,6 +579,17 @@ } } }, + "zitadel_org_idp_oauth": { + "current": "zitadel:index/getOrgIdpOauth:getOrgIdpOauth", + "fields": { + "scopes": { + "maxItemsOne": false + } + } + }, + "zitadel_org_idp_saml": { + "current": "zitadel:index/getOrgIdpSaml:getOrgIdpSaml" + }, "zitadel_org_jwt_idp": { "current": "zitadel:index/getOrgJwtIdp:getOrgJwtIdp" }, @@ -608,6 +658,8 @@ "zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted": "zitadel_idp_gitlab_self_hosted", "zitadel:index/idpGoogle:IdpGoogle": "zitadel_idp_google", "zitadel:index/idpLdap:IdpLdap": "zitadel_idp_ldap", + "zitadel:index/idpOauth:IdpOauth": "zitadel_idp_oauth", + "zitadel:index/idpSaml:IdpSaml": "zitadel_idp_saml", "zitadel:index/instanceMember:InstanceMember": "zitadel_instance_member", "zitadel:index/labelPolicy:LabelPolicy": "zitadel_label_policy", "zitadel:index/lockoutPolicy:LockoutPolicy": "zitadel_lockout_policy", @@ -624,8 +676,11 @@ "zitadel:index/orgIdpGoogle:OrgIdpGoogle": "zitadel_org_idp_google", "zitadel:index/orgIdpJwt:OrgIdpJwt": "zitadel_org_idp_jwt", "zitadel:index/orgIdpLdap:OrgIdpLdap": "zitadel_org_idp_ldap", + "zitadel:index/orgIdpOauth:OrgIdpOauth": "zitadel_org_idp_oauth", "zitadel:index/orgIdpOidc:OrgIdpOidc": "zitadel_org_idp_oidc", + "zitadel:index/orgIdpSaml:OrgIdpSaml": "zitadel_org_idp_saml", "zitadel:index/orgMember:OrgMember": "zitadel_org_member", + "zitadel:index/orgMetadata:OrgMetadata": "zitadel_org_metadata", "zitadel:index/passwordComplexityPolicy:PasswordComplexityPolicy": "zitadel_password_complexity_policy", "zitadel:index/personalAccessToken:PersonalAccessToken": "zitadel_personal_access_token", "zitadel:index/privacyPolicy:PrivacyPolicy": "zitadel_privacy_policy", @@ -637,7 +692,8 @@ "zitadel:index/smsProviderTwilio:SmsProviderTwilio": "zitadel_sms_provider_twilio", "zitadel:index/smtpConfig:SmtpConfig": "zitadel_smtp_config", "zitadel:index/triggerActions:TriggerActions": "zitadel_trigger_actions", - "zitadel:index/userGrant:UserGrant": "zitadel_user_grant" + "zitadel:index/userGrant:UserGrant": "zitadel_user_grant", + "zitadel:index/userMetadata:UserMetadata": "zitadel_user_metadata" }, "functions": { "zitadel:index/getAction:getAction": "zitadel_action", @@ -656,6 +712,8 @@ "zitadel:index/getIdpGitlabSelfHosted:getIdpGitlabSelfHosted": "zitadel_idp_gitlab_self_hosted", "zitadel:index/getIdpGoogle:getIdpGoogle": "zitadel_idp_google", "zitadel:index/getIdpLdap:getIdpLdap": "zitadel_idp_ldap", + "zitadel:index/getIdpOauth:getIdpOauth": "zitadel_idp_oauth", + "zitadel:index/getIdpSaml:getIdpSaml": "zitadel_idp_saml", "zitadel:index/getMachineUser:getMachineUser": "zitadel_machine_user", "zitadel:index/getMachineUsers:getMachineUsers": "zitadel_machine_users", "zitadel:index/getOrg:getOrg": "zitadel_org", @@ -666,6 +724,8 @@ "zitadel:index/getOrgIdpGitlabSelfHosted:getOrgIdpGitlabSelfHosted": "zitadel_org_idp_gitlab_self_hosted", "zitadel:index/getOrgIdpGoogle:getOrgIdpGoogle": "zitadel_org_idp_google", "zitadel:index/getOrgIdpLdap:getOrgIdpLdap": "zitadel_org_idp_ldap", + "zitadel:index/getOrgIdpOauth:getOrgIdpOauth": "zitadel_org_idp_oauth", + "zitadel:index/getOrgIdpSaml:getOrgIdpSaml": "zitadel_org_idp_saml", "zitadel:index/getOrgJwtIdp:getOrgJwtIdp": "zitadel_org_jwt_idp", "zitadel:index/getOrgOidcIdp:getOrgOidcIdp": "zitadel_org_oidc_idp", "zitadel:index/getOrgs:getOrgs": "zitadel_orgs", @@ -748,6 +808,7 @@ "primaryColor": "primary_color", "primaryColorDark": "primary_color_dark", "setActive": "set_active", + "themeMode": "theme_mode", "warnColor": "warn_color", "warnColorDark": "warn_color_dark" }, @@ -962,6 +1023,26 @@ "userFilters": "user_filters", "userObjectClasses": "user_object_classes" }, + "zitadel:index/getIdpOauth:getIdpOauth": { + "authorizationEndpoint": "authorization_endpoint", + "clientId": "client_id", + "clientSecret": "client_secret", + "idAttribute": "id_attribute", + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "tokenEndpoint": "token_endpoint", + "userEndpoint": "user_endpoint" + }, + "zitadel:index/getIdpSaml:getIdpSaml": { + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "metadataXml": "metadata_xml", + "withSignedRequest": "with_signed_request" + }, "zitadel:index/getMachineUser:getMachineUser": { "accessTokenType": "access_token_type", "loginNames": "login_names", @@ -1067,6 +1148,28 @@ "userFilters": "user_filters", "userObjectClasses": "user_object_classes" }, + "zitadel:index/getOrgIdpOauth:getOrgIdpOauth": { + "authorizationEndpoint": "authorization_endpoint", + "clientId": "client_id", + "clientSecret": "client_secret", + "idAttribute": "id_attribute", + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "orgId": "org_id", + "tokenEndpoint": "token_endpoint", + "userEndpoint": "user_endpoint" + }, + "zitadel:index/getOrgIdpSaml:getOrgIdpSaml": { + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "metadataXml": "metadata_xml", + "orgId": "org_id", + "withSignedRequest": "with_signed_request" + }, "zitadel:index/getOrgJwtIdp:getOrgJwtIdp": { "autoRegister": "auto_register", "headerName": "header_name", @@ -1210,6 +1313,26 @@ "userFilters": "user_filters", "userObjectClasses": "user_object_classes" }, + "zitadel:index/idpOauth:IdpOauth": { + "authorizationEndpoint": "authorization_endpoint", + "clientId": "client_id", + "clientSecret": "client_secret", + "idAttribute": "id_attribute", + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "tokenEndpoint": "token_endpoint", + "userEndpoint": "user_endpoint" + }, + "zitadel:index/idpSaml:IdpSaml": { + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "metadataXml": "metadata_xml", + "withSignedRequest": "with_signed_request" + }, "zitadel:index/instanceMember:InstanceMember": { "userId": "user_id" }, @@ -1239,6 +1362,7 @@ "primaryColor": "primary_color", "primaryColorDark": "primary_color_dark", "setActive": "set_active", + "themeMode": "theme_mode", "warnColor": "warn_color", "warnColorDark": "warn_color_dark" }, @@ -1388,6 +1512,19 @@ "userFilters": "user_filters", "userObjectClasses": "user_object_classes" }, + "zitadel:index/orgIdpOauth:OrgIdpOauth": { + "authorizationEndpoint": "authorization_endpoint", + "clientId": "client_id", + "clientSecret": "client_secret", + "idAttribute": "id_attribute", + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "orgId": "org_id", + "tokenEndpoint": "token_endpoint", + "userEndpoint": "user_endpoint" + }, "zitadel:index/orgIdpOidc:OrgIdpOidc": { "clientId": "client_id", "clientSecret": "client_secret", @@ -1398,10 +1535,22 @@ "isLinkingAllowed": "is_linking_allowed", "orgId": "org_id" }, + "zitadel:index/orgIdpSaml:OrgIdpSaml": { + "isAutoCreation": "is_auto_creation", + "isAutoUpdate": "is_auto_update", + "isCreationAllowed": "is_creation_allowed", + "isLinkingAllowed": "is_linking_allowed", + "metadataXml": "metadata_xml", + "orgId": "org_id", + "withSignedRequest": "with_signed_request" + }, "zitadel:index/orgMember:OrgMember": { "orgId": "org_id", "userId": "user_id" }, + "zitadel:index/orgMetadata:OrgMetadata": { + "orgId": "org_id" + }, "zitadel:index/passwordComplexityPolicy:PasswordComplexityPolicy": { "hasLowercase": "has_lowercase", "hasNumber": "has_number", @@ -1473,6 +1622,10 @@ "roleKeys": "role_keys", "userId": "user_id" }, + "zitadel:index/userMetadata:UserMetadata": { + "orgId": "org_id", + "userId": "user_id" + }, "zitadel:index:Provider": { "jwtProfileFile": "jwt_profile_file", "jwtProfileJson": "jwt_profile_json" diff --git a/provider/cmd/pulumi-resource-zitadel/schema.json b/provider/cmd/pulumi-resource-zitadel/schema.json index a3b462c..92c025d 100644 --- a/provider/cmd/pulumi-resource-zitadel/schema.json +++ b/provider/cmd/pulumi-resource-zitadel/schema.json @@ -152,7 +152,7 @@ }, "resources": { "zitadel:index/action:Action": { - "description": "Resource representing an action belonging to an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Action(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"actionname\",\n script: \"testscript\",\n timeout: \"10s\",\n allowedToFail: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Action(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"actionname\",\n script=\"testscript\",\n timeout=\"10s\",\n allowed_to_fail=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Action(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"actionname\",\n Script = \"testscript\",\n Timeout = \"10s\",\n AllowedToFail = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewAction(ctx, \"default\", \u0026zitadel.ActionArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"actionname\"),\n\t\t\tScript: pulumi.String(\"testscript\"),\n\t\t\tTimeout: pulumi.String(\"10s\"),\n\t\t\tAllowedToFail: pulumi.Bool(true),\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.zitadel.Action;\nimport com.pulumi.zitadel.ActionArgs;\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 Action(\"default\", ActionArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"actionname\")\n .script(\"testscript\")\n .timeout(\"10s\")\n .allowedToFail(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Action\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: actionname\n script: testscript\n timeout: 10s\n allowedToFail: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/action:Action imported '123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing an action belonging to an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Action(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"actionname\",\n script: \"testscript\",\n timeout: \"10s\",\n allowedToFail: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Action(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"actionname\",\n script=\"testscript\",\n timeout=\"10s\",\n allowed_to_fail=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Action(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"actionname\",\n Script = \"testscript\",\n Timeout = \"10s\",\n AllowedToFail = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewAction(ctx, \"default\", \u0026zitadel.ActionArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"actionname\"),\n\t\t\tScript: pulumi.String(\"testscript\"),\n\t\t\tTimeout: pulumi.String(\"10s\"),\n\t\t\tAllowedToFail: pulumi.Bool(true),\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.zitadel.Action;\nimport com.pulumi.zitadel.ActionArgs;\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 Action(\"default\", ActionArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"actionname\")\n .script(\"testscript\")\n .timeout(\"10s\")\n .allowedToFail(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Action\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: actionname\n script: testscript\n timeout: 10s\n allowedToFail: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/action:Action imported '123456789012345678:123456789012345678'\n```\n\n ", "properties": { "allowedToFail": { "type": "boolean", @@ -241,7 +241,7 @@ } }, "zitadel:index/applicationApi:ApplicationApi": { - "description": "Resource representing an API application belonging to a project, with all configuration possibilities.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationApi(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n name: \"applicationapi\",\n authMethodType: \"API_AUTH_METHOD_TYPE_BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationApi(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n name=\"applicationapi\",\n auth_method_type=\"API_AUTH_METHOD_TYPE_BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationApi(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n Name = \"applicationapi\",\n AuthMethodType = \"API_AUTH_METHOD_TYPE_BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationApi(ctx, \"default\", \u0026zitadel.ApplicationApiArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tName: pulumi.String(\"applicationapi\"),\n\t\t\tAuthMethodType: pulumi.String(\"API_AUTH_METHOD_TYPE_BASIC\"),\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.zitadel.ApplicationApi;\nimport com.pulumi.zitadel.ApplicationApiArgs;\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 ApplicationApi(\"default\", ApplicationApiArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .name(\"applicationapi\")\n .authMethodType(\"API_AUTH_METHOD_TYPE_BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationApi\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n name: applicationapi\n authMethodType: API_AUTH_METHOD_TYPE_BASIC\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:project_id[:org_id][:client_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationApi:ApplicationApi imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df'\n```\n\n ", + "description": "Resource representing an API application belonging to a project, with all configuration possibilities.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationApi(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n name: \"applicationapi\",\n authMethodType: \"API_AUTH_METHOD_TYPE_BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationApi(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n name=\"applicationapi\",\n auth_method_type=\"API_AUTH_METHOD_TYPE_BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationApi(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n Name = \"applicationapi\",\n AuthMethodType = \"API_AUTH_METHOD_TYPE_BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationApi(ctx, \"default\", \u0026zitadel.ApplicationApiArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tName: pulumi.String(\"applicationapi\"),\n\t\t\tAuthMethodType: pulumi.String(\"API_AUTH_METHOD_TYPE_BASIC\"),\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.zitadel.ApplicationApi;\nimport com.pulumi.zitadel.ApplicationApiArgs;\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 ApplicationApi(\"default\", ApplicationApiArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .name(\"applicationapi\")\n .authMethodType(\"API_AUTH_METHOD_TYPE_BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationApi\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n name: applicationapi\n authMethodType: API_AUTH_METHOD_TYPE_BASIC\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:project_id[:org_id][:client_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationApi:ApplicationApi imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df'\n```\n\n ", "properties": { "authMethodType": { "type": "string", @@ -335,7 +335,7 @@ } }, "zitadel:index/applicationKey:ApplicationKey": { - "description": "Resource representing a app key\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationKey(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n appId: defaultZitadelApplicationApi.id,\n keyType: \"KEY_TYPE_JSON\",\n expirationDate: \"2519-04-01T08:45:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationKey(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n app_id=default_zitadel_application_api[\"id\"],\n key_type=\"KEY_TYPE_JSON\",\n expiration_date=\"2519-04-01T08:45:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationKey(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n AppId = defaultZitadelApplicationApi.Id,\n KeyType = \"KEY_TYPE_JSON\",\n ExpirationDate = \"2519-04-01T08:45:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationKey(ctx, \"default\", \u0026zitadel.ApplicationKeyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tAppId: pulumi.Any(defaultZitadelApplicationApi.Id),\n\t\t\tKeyType: pulumi.String(\"KEY_TYPE_JSON\"),\n\t\t\tExpirationDate: pulumi.String(\"2519-04-01T08:45:00Z\"),\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.zitadel.ApplicationKey;\nimport com.pulumi.zitadel.ApplicationKeyArgs;\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 ApplicationKey(\"default\", ApplicationKeyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .appId(defaultZitadelApplicationApi.id())\n .keyType(\"KEY_TYPE_JSON\")\n .expirationDate(\"2519-04-01T08:45:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationKey\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n appId: ${defaultZitadelApplicationApi.id}\n keyType: KEY_TYPE_JSON\n expirationDate: 2519-04-01T08:45:00Z\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:project_id:app_id[:org_id][:key_details]\u003e`. You can use __SEMICOLON__ to escape :, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationKey:ApplicationKey imported \"123456789012345678:123456789012345678:123456789012345678:123456789012345678:$(cat ~/Downloads/123456789012345678.json | sed -e 's/:/__SEMICOLON__/g')\"\n```\n\n ", + "description": "Resource representing a app key\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationKey(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n appId: defaultZitadelApplicationApi.id,\n keyType: \"KEY_TYPE_JSON\",\n expirationDate: \"2519-04-01T08:45:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationKey(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n app_id=default_zitadel_application_api[\"id\"],\n key_type=\"KEY_TYPE_JSON\",\n expiration_date=\"2519-04-01T08:45:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationKey(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n AppId = defaultZitadelApplicationApi.Id,\n KeyType = \"KEY_TYPE_JSON\",\n ExpirationDate = \"2519-04-01T08:45:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationKey(ctx, \"default\", \u0026zitadel.ApplicationKeyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tAppId: pulumi.Any(defaultZitadelApplicationApi.Id),\n\t\t\tKeyType: pulumi.String(\"KEY_TYPE_JSON\"),\n\t\t\tExpirationDate: pulumi.String(\"2519-04-01T08:45:00Z\"),\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.zitadel.ApplicationKey;\nimport com.pulumi.zitadel.ApplicationKeyArgs;\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 ApplicationKey(\"default\", ApplicationKeyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .appId(defaultZitadelApplicationApi.id())\n .keyType(\"KEY_TYPE_JSON\")\n .expirationDate(\"2519-04-01T08:45:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationKey\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n appId: ${defaultZitadelApplicationApi.id}\n keyType: KEY_TYPE_JSON\n expirationDate: 2519-04-01T08:45:00Z\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:project_id:app_id[:org_id][:key_details]\u003e`. You can use __SEMICOLON__ to escape :, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationKey:ApplicationKey imported \"123456789012345678:123456789012345678:123456789012345678:123456789012345678:$(cat ~/Downloads/123456789012345678.json | sed -e 's/:/__SEMICOLON__/g')\"\n```\n\n ", "properties": { "appId": { "type": "string", @@ -441,7 +441,7 @@ } }, "zitadel:index/applicationOidc:ApplicationOidc": { - "description": "Resource representing an OIDC application belonging to a project, with all configuration possibilities.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationOidc(\"default\", {\n projectId: defaultZitadelProject.id,\n orgId: defaultZitadelOrg.id,\n name: \"applicationoidc\",\n redirectUris: [\"https://localhost.com\"],\n responseTypes: [\"OIDC_RESPONSE_TYPE_CODE\"],\n grantTypes: [\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\"],\n postLogoutRedirectUris: [\"https://localhost.com\"],\n appType: \"OIDC_APP_TYPE_WEB\",\n authMethodType: \"OIDC_AUTH_METHOD_TYPE_BASIC\",\n version: \"OIDC_VERSION_1_0\",\n clockSkew: \"0s\",\n devMode: true,\n accessTokenType: \"OIDC_TOKEN_TYPE_BEARER\",\n accessTokenRoleAssertion: false,\n idTokenRoleAssertion: false,\n idTokenUserinfoAssertion: false,\n additionalOrigins: [],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationOidc(\"default\",\n project_id=default_zitadel_project[\"id\"],\n org_id=default_zitadel_org[\"id\"],\n name=\"applicationoidc\",\n redirect_uris=[\"https://localhost.com\"],\n response_types=[\"OIDC_RESPONSE_TYPE_CODE\"],\n grant_types=[\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\"],\n post_logout_redirect_uris=[\"https://localhost.com\"],\n app_type=\"OIDC_APP_TYPE_WEB\",\n auth_method_type=\"OIDC_AUTH_METHOD_TYPE_BASIC\",\n version=\"OIDC_VERSION_1_0\",\n clock_skew=\"0s\",\n dev_mode=True,\n access_token_type=\"OIDC_TOKEN_TYPE_BEARER\",\n access_token_role_assertion=False,\n id_token_role_assertion=False,\n id_token_userinfo_assertion=False,\n additional_origins=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationOidc(\"default\", new()\n {\n ProjectId = defaultZitadelProject.Id,\n OrgId = defaultZitadelOrg.Id,\n Name = \"applicationoidc\",\n RedirectUris = new[]\n {\n \"https://localhost.com\",\n },\n ResponseTypes = new[]\n {\n \"OIDC_RESPONSE_TYPE_CODE\",\n },\n GrantTypes = new[]\n {\n \"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\",\n },\n PostLogoutRedirectUris = new[]\n {\n \"https://localhost.com\",\n },\n AppType = \"OIDC_APP_TYPE_WEB\",\n AuthMethodType = \"OIDC_AUTH_METHOD_TYPE_BASIC\",\n Version = \"OIDC_VERSION_1_0\",\n ClockSkew = \"0s\",\n DevMode = true,\n AccessTokenType = \"OIDC_TOKEN_TYPE_BEARER\",\n AccessTokenRoleAssertion = false,\n IdTokenRoleAssertion = false,\n IdTokenUserinfoAssertion = false,\n AdditionalOrigins = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationOidc(ctx, \"default\", \u0026zitadel.ApplicationOidcArgs{\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"applicationoidc\"),\n\t\t\tRedirectUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://localhost.com\"),\n\t\t\t},\n\t\t\tResponseTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OIDC_RESPONSE_TYPE_CODE\"),\n\t\t\t},\n\t\t\tGrantTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\"),\n\t\t\t},\n\t\t\tPostLogoutRedirectUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://localhost.com\"),\n\t\t\t},\n\t\t\tAppType: pulumi.String(\"OIDC_APP_TYPE_WEB\"),\n\t\t\tAuthMethodType: pulumi.String(\"OIDC_AUTH_METHOD_TYPE_BASIC\"),\n\t\t\tVersion: pulumi.String(\"OIDC_VERSION_1_0\"),\n\t\t\tClockSkew: pulumi.String(\"0s\"),\n\t\t\tDevMode: pulumi.Bool(true),\n\t\t\tAccessTokenType: pulumi.String(\"OIDC_TOKEN_TYPE_BEARER\"),\n\t\t\tAccessTokenRoleAssertion: pulumi.Bool(false),\n\t\t\tIdTokenRoleAssertion: pulumi.Bool(false),\n\t\t\tIdTokenUserinfoAssertion: pulumi.Bool(false),\n\t\t\tAdditionalOrigins: pulumi.StringArray{},\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.zitadel.ApplicationOidc;\nimport com.pulumi.zitadel.ApplicationOidcArgs;\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 ApplicationOidc(\"default\", ApplicationOidcArgs.builder() \n .projectId(defaultZitadelProject.id())\n .orgId(defaultZitadelOrg.id())\n .name(\"applicationoidc\")\n .redirectUris(\"https://localhost.com\")\n .responseTypes(\"OIDC_RESPONSE_TYPE_CODE\")\n .grantTypes(\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\")\n .postLogoutRedirectUris(\"https://localhost.com\")\n .appType(\"OIDC_APP_TYPE_WEB\")\n .authMethodType(\"OIDC_AUTH_METHOD_TYPE_BASIC\")\n .version(\"OIDC_VERSION_1_0\")\n .clockSkew(\"0s\")\n .devMode(true)\n .accessTokenType(\"OIDC_TOKEN_TYPE_BEARER\")\n .accessTokenRoleAssertion(false)\n .idTokenRoleAssertion(false)\n .idTokenUserinfoAssertion(false)\n .additionalOrigins()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationOidc\n properties:\n projectId: ${defaultZitadelProject.id}\n orgId: ${defaultZitadelOrg.id}\n name: applicationoidc\n redirectUris:\n - https://localhost.com\n responseTypes:\n - OIDC_RESPONSE_TYPE_CODE\n grantTypes:\n - OIDC_GRANT_TYPE_AUTHORIZATION_CODE\n postLogoutRedirectUris:\n - https://localhost.com\n appType: OIDC_APP_TYPE_WEB\n authMethodType: OIDC_AUTH_METHOD_TYPE_BASIC\n version: OIDC_VERSION_1_0\n clockSkew: 0s\n devMode: true\n accessTokenType: OIDC_TOKEN_TYPE_BEARER\n accessTokenRoleAssertion: false\n idTokenRoleAssertion: false\n idTokenUserinfoAssertion: false\n additionalOrigins: []\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:project_id[:org_id][:client_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationOidc:ApplicationOidc imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df'\n```\n\n ", + "description": "Resource representing an OIDC application belonging to a project, with all configuration possibilities.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationOidc(\"default\", {\n projectId: defaultZitadelProject.id,\n orgId: defaultZitadelOrg.id,\n name: \"applicationoidc\",\n redirectUris: [\"https://localhost.com\"],\n responseTypes: [\"OIDC_RESPONSE_TYPE_CODE\"],\n grantTypes: [\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\"],\n postLogoutRedirectUris: [\"https://localhost.com\"],\n appType: \"OIDC_APP_TYPE_WEB\",\n authMethodType: \"OIDC_AUTH_METHOD_TYPE_BASIC\",\n version: \"OIDC_VERSION_1_0\",\n clockSkew: \"0s\",\n devMode: true,\n accessTokenType: \"OIDC_TOKEN_TYPE_BEARER\",\n accessTokenRoleAssertion: false,\n idTokenRoleAssertion: false,\n idTokenUserinfoAssertion: false,\n additionalOrigins: [],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationOidc(\"default\",\n project_id=default_zitadel_project[\"id\"],\n org_id=default_zitadel_org[\"id\"],\n name=\"applicationoidc\",\n redirect_uris=[\"https://localhost.com\"],\n response_types=[\"OIDC_RESPONSE_TYPE_CODE\"],\n grant_types=[\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\"],\n post_logout_redirect_uris=[\"https://localhost.com\"],\n app_type=\"OIDC_APP_TYPE_WEB\",\n auth_method_type=\"OIDC_AUTH_METHOD_TYPE_BASIC\",\n version=\"OIDC_VERSION_1_0\",\n clock_skew=\"0s\",\n dev_mode=True,\n access_token_type=\"OIDC_TOKEN_TYPE_BEARER\",\n access_token_role_assertion=False,\n id_token_role_assertion=False,\n id_token_userinfo_assertion=False,\n additional_origins=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationOidc(\"default\", new()\n {\n ProjectId = defaultZitadelProject.Id,\n OrgId = defaultZitadelOrg.Id,\n Name = \"applicationoidc\",\n RedirectUris = new[]\n {\n \"https://localhost.com\",\n },\n ResponseTypes = new[]\n {\n \"OIDC_RESPONSE_TYPE_CODE\",\n },\n GrantTypes = new[]\n {\n \"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\",\n },\n PostLogoutRedirectUris = new[]\n {\n \"https://localhost.com\",\n },\n AppType = \"OIDC_APP_TYPE_WEB\",\n AuthMethodType = \"OIDC_AUTH_METHOD_TYPE_BASIC\",\n Version = \"OIDC_VERSION_1_0\",\n ClockSkew = \"0s\",\n DevMode = true,\n AccessTokenType = \"OIDC_TOKEN_TYPE_BEARER\",\n AccessTokenRoleAssertion = false,\n IdTokenRoleAssertion = false,\n IdTokenUserinfoAssertion = false,\n AdditionalOrigins = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationOidc(ctx, \"default\", \u0026zitadel.ApplicationOidcArgs{\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"applicationoidc\"),\n\t\t\tRedirectUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://localhost.com\"),\n\t\t\t},\n\t\t\tResponseTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OIDC_RESPONSE_TYPE_CODE\"),\n\t\t\t},\n\t\t\tGrantTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\"),\n\t\t\t},\n\t\t\tPostLogoutRedirectUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://localhost.com\"),\n\t\t\t},\n\t\t\tAppType: pulumi.String(\"OIDC_APP_TYPE_WEB\"),\n\t\t\tAuthMethodType: pulumi.String(\"OIDC_AUTH_METHOD_TYPE_BASIC\"),\n\t\t\tVersion: pulumi.String(\"OIDC_VERSION_1_0\"),\n\t\t\tClockSkew: pulumi.String(\"0s\"),\n\t\t\tDevMode: pulumi.Bool(true),\n\t\t\tAccessTokenType: pulumi.String(\"OIDC_TOKEN_TYPE_BEARER\"),\n\t\t\tAccessTokenRoleAssertion: pulumi.Bool(false),\n\t\t\tIdTokenRoleAssertion: pulumi.Bool(false),\n\t\t\tIdTokenUserinfoAssertion: pulumi.Bool(false),\n\t\t\tAdditionalOrigins: pulumi.StringArray{},\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.zitadel.ApplicationOidc;\nimport com.pulumi.zitadel.ApplicationOidcArgs;\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 ApplicationOidc(\"default\", ApplicationOidcArgs.builder() \n .projectId(defaultZitadelProject.id())\n .orgId(defaultZitadelOrg.id())\n .name(\"applicationoidc\")\n .redirectUris(\"https://localhost.com\")\n .responseTypes(\"OIDC_RESPONSE_TYPE_CODE\")\n .grantTypes(\"OIDC_GRANT_TYPE_AUTHORIZATION_CODE\")\n .postLogoutRedirectUris(\"https://localhost.com\")\n .appType(\"OIDC_APP_TYPE_WEB\")\n .authMethodType(\"OIDC_AUTH_METHOD_TYPE_BASIC\")\n .version(\"OIDC_VERSION_1_0\")\n .clockSkew(\"0s\")\n .devMode(true)\n .accessTokenType(\"OIDC_TOKEN_TYPE_BEARER\")\n .accessTokenRoleAssertion(false)\n .idTokenRoleAssertion(false)\n .idTokenUserinfoAssertion(false)\n .additionalOrigins()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationOidc\n properties:\n projectId: ${defaultZitadelProject.id}\n orgId: ${defaultZitadelOrg.id}\n name: applicationoidc\n redirectUris:\n - https://localhost.com\n responseTypes:\n - OIDC_RESPONSE_TYPE_CODE\n grantTypes:\n - OIDC_GRANT_TYPE_AUTHORIZATION_CODE\n postLogoutRedirectUris:\n - https://localhost.com\n appType: OIDC_APP_TYPE_WEB\n authMethodType: OIDC_AUTH_METHOD_TYPE_BASIC\n version: OIDC_VERSION_1_0\n clockSkew: 0s\n devMode: true\n accessTokenType: OIDC_TOKEN_TYPE_BEARER\n accessTokenRoleAssertion: false\n idTokenRoleAssertion: false\n idTokenUserinfoAssertion: false\n additionalOrigins: []\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:project_id[:org_id][:client_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationOidc:ApplicationOidc imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df'\n```\n\n ", "properties": { "accessTokenRoleAssertion": { "type": "boolean", @@ -744,7 +744,7 @@ } }, "zitadel:index/applicationSaml:ApplicationSaml": { - "description": "Resource representing a SAML application belonging to a project, with all configuration possibilities.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationSaml(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n name: \"applicationapi\",\n metadataXml: `\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e`,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationSaml(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n name=\"applicationapi\",\n metadata_xml=\"\"\"\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationSaml(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n Name = \"applicationapi\",\n MetadataXml = @\"\u003c?xml version=\"\"1.0\"\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"\"urn:oasis:names:tc:SAML:2.0:metadata\"\"\n validUntil=\"\"2024-01-26T17:48:38Z\"\"\n cacheDuration=\"\"PT604800S\"\"\n entityID=\"\"http://example.com/saml/metadata\"\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"\"false\"\" WantAssertionsSigned=\"\"false\"\" protocolSupportEnumeration=\"\"urn:oasis:names:tc:SAML:2.0:protocol\"\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\"\n Location=\"\"http://example.com/saml/cas\"\"\n index=\"\"1\"\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationSaml(ctx, \"default\", \u0026zitadel.ApplicationSamlArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tName: pulumi.String(\"applicationapi\"),\n\t\t\tMetadataXml: pulumi.String(`\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e`),\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.zitadel.ApplicationSaml;\nimport com.pulumi.zitadel.ApplicationSamlArgs;\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 ApplicationSaml(\"default\", ApplicationSamlArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .name(\"applicationapi\")\n .metadataXml(\"\"\"\n\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationSaml\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n name: applicationapi\n metadataXml: \"\u003c?xml version=\\\"1.0\\\"?\u003e\\n\u003cmd:EntityDescriptor xmlns:md=\\\"urn:oasis:names:tc:SAML:2.0:metadata\\\"\\n validUntil=\\\"2024-01-26T17:48:38Z\\\"\\n cacheDuration=\\\"PT604800S\\\"\\n entityID=\\\"http://example.com/saml/metadata\\\"\u003e\\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\\\"false\\\" WantAssertionsSigned=\\\"false\\\" protocolSupportEnumeration=\\\"urn:oasis:names:tc:SAML:2.0:protocol\\\"\u003e\\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\\n \u003cmd:AssertionConsumerService Binding=\\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\\\"\\n Location=\\\"http://example.com/saml/cas\\\"\\n index=\\\"1\\\" /\u003e\\n \\n \u003c/md:SPSSODescriptor\u003e\\n\u003c/md:EntityDescriptor\u003e\"\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:project_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationSaml:ApplicationSaml imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing a SAML application belonging to a project, with all configuration possibilities.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ApplicationSaml(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n name: \"applicationapi\",\n metadataXml: `\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e`,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ApplicationSaml(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n name=\"applicationapi\",\n metadata_xml=\"\"\"\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ApplicationSaml(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n Name = \"applicationapi\",\n MetadataXml = @\"\u003c?xml version=\"\"1.0\"\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"\"urn:oasis:names:tc:SAML:2.0:metadata\"\"\n validUntil=\"\"2024-01-26T17:48:38Z\"\"\n cacheDuration=\"\"PT604800S\"\"\n entityID=\"\"http://example.com/saml/metadata\"\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"\"false\"\" WantAssertionsSigned=\"\"false\"\" protocolSupportEnumeration=\"\"urn:oasis:names:tc:SAML:2.0:protocol\"\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\"\n Location=\"\"http://example.com/saml/cas\"\"\n index=\"\"1\"\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewApplicationSaml(ctx, \"default\", \u0026zitadel.ApplicationSamlArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tName: pulumi.String(\"applicationapi\"),\n\t\t\tMetadataXml: pulumi.String(`\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e`),\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.zitadel.ApplicationSaml;\nimport com.pulumi.zitadel.ApplicationSamlArgs;\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 ApplicationSaml(\"default\", ApplicationSamlArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .name(\"applicationapi\")\n .metadataXml(\"\"\"\n\u003c?xml version=\"1.0\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n validUntil=\"2024-01-26T17:48:38Z\"\n cacheDuration=\"PT604800S\"\n entityID=\"http://example.com/saml/metadata\"\u003e\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\n \u003cmd:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://example.com/saml/cas\"\n index=\"1\" /\u003e\n \n \u003c/md:SPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ApplicationSaml\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n name: applicationapi\n metadataXml: \"\u003c?xml version=\\\"1.0\\\"?\u003e\\n\u003cmd:EntityDescriptor xmlns:md=\\\"urn:oasis:names:tc:SAML:2.0:metadata\\\"\\n validUntil=\\\"2024-01-26T17:48:38Z\\\"\\n cacheDuration=\\\"PT604800S\\\"\\n entityID=\\\"http://example.com/saml/metadata\\\"\u003e\\n \u003cmd:SPSSODescriptor AuthnRequestsSigned=\\\"false\\\" WantAssertionsSigned=\\\"false\\\" protocolSupportEnumeration=\\\"urn:oasis:names:tc:SAML:2.0:protocol\\\"\u003e\\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\u003c/md:NameIDFormat\u003e\\n \u003cmd:AssertionConsumerService Binding=\\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\\\"\\n Location=\\\"http://example.com/saml/cas\\\"\\n index=\\\"1\\\" /\u003e\\n \\n \u003c/md:SPSSODescriptor\u003e\\n\u003c/md:EntityDescriptor\u003e\"\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:project_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/applicationSaml:ApplicationSaml imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", "properties": { "metadataXml": { "type": "string", @@ -821,7 +821,7 @@ } }, "zitadel:index/defaultDomainPolicy:DefaultDomainPolicy": { - "description": "Resource representing the default domain policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultDomainPolicy(\"default\", {\n userLoginMustBeDomain: false,\n validateOrgDomains: true,\n smtpSenderAddressMatchesInstanceDomain: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultDomainPolicy(\"default\",\n user_login_must_be_domain=False,\n validate_org_domains=True,\n smtp_sender_address_matches_instance_domain=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultDomainPolicy(\"default\", new()\n {\n UserLoginMustBeDomain = false,\n ValidateOrgDomains = true,\n SmtpSenderAddressMatchesInstanceDomain = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultDomainPolicy(ctx, \"default\", \u0026zitadel.DefaultDomainPolicyArgs{\n\t\t\tUserLoginMustBeDomain: pulumi.Bool(false),\n\t\t\tValidateOrgDomains: pulumi.Bool(true),\n\t\t\tSmtpSenderAddressMatchesInstanceDomain: pulumi.Bool(true),\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.zitadel.DefaultDomainPolicy;\nimport com.pulumi.zitadel.DefaultDomainPolicyArgs;\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 DefaultDomainPolicy(\"default\", DefaultDomainPolicyArgs.builder() \n .userLoginMustBeDomain(false)\n .validateOrgDomains(true)\n .smtpSenderAddressMatchesInstanceDomain(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultDomainPolicy\n properties:\n userLoginMustBeDomain: false\n validateOrgDomains: true\n smtpSenderAddressMatchesInstanceDomain: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultDomainPolicy:DefaultDomainPolicy imported ''\n```\n\n ", + "description": "Resource representing the default domain policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultDomainPolicy(\"default\", {\n userLoginMustBeDomain: false,\n validateOrgDomains: true,\n smtpSenderAddressMatchesInstanceDomain: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultDomainPolicy(\"default\",\n user_login_must_be_domain=False,\n validate_org_domains=True,\n smtp_sender_address_matches_instance_domain=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultDomainPolicy(\"default\", new()\n {\n UserLoginMustBeDomain = false,\n ValidateOrgDomains = true,\n SmtpSenderAddressMatchesInstanceDomain = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultDomainPolicy(ctx, \"default\", \u0026zitadel.DefaultDomainPolicyArgs{\n\t\t\tUserLoginMustBeDomain: pulumi.Bool(false),\n\t\t\tValidateOrgDomains: pulumi.Bool(true),\n\t\t\tSmtpSenderAddressMatchesInstanceDomain: pulumi.Bool(true),\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.zitadel.DefaultDomainPolicy;\nimport com.pulumi.zitadel.DefaultDomainPolicyArgs;\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 DefaultDomainPolicy(\"default\", DefaultDomainPolicyArgs.builder() \n .userLoginMustBeDomain(false)\n .validateOrgDomains(true)\n .smtpSenderAddressMatchesInstanceDomain(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultDomainPolicy\n properties:\n userLoginMustBeDomain: false\n validateOrgDomains: true\n smtpSenderAddressMatchesInstanceDomain: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultDomainPolicy:DefaultDomainPolicy imported ''\n```\n\n ", "properties": { "smtpSenderAddressMatchesInstanceDomain": { "type": "boolean" @@ -877,7 +877,7 @@ } }, "zitadel:index/defaultLabelPolicy:DefaultLabelPolicy": { - "description": "Resource representing the default label policy.\n\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultLabelPolicy:DefaultLabelPolicy imported ''\n```\n\n ", + "description": "Resource representing the default label policy.\n\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultLabelPolicy:DefaultLabelPolicy imported ''\n```\n\n ", "properties": { "backgroundColor": { "type": "string", @@ -960,6 +960,10 @@ "type": "boolean", "description": "set the label policy active after creating/updating\n" }, + "themeMode": { + "type": "string", + "description": "theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT\n" + }, "warnColor": { "type": "string", "description": "hex value for warn color\n" @@ -1053,6 +1057,10 @@ "type": "boolean", "description": "set the label policy active after creating/updating\n" }, + "themeMode": { + "type": "string", + "description": "theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT\n" + }, "warnColor": { "type": "string", "description": "hex value for warn color\n" @@ -1158,6 +1166,10 @@ "type": "boolean", "description": "set the label policy active after creating/updating\n" }, + "themeMode": { + "type": "string", + "description": "theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT\n" + }, "warnColor": { "type": "string", "description": "hex value for warn color\n" @@ -1171,7 +1183,7 @@ } }, "zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy": { - "description": "Resource representing the default lockout policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultLockoutPolicy(\"default\", {maxPasswordAttempts: 5});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultLockoutPolicy(\"default\", max_password_attempts=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultLockoutPolicy(\"default\", new()\n {\n MaxPasswordAttempts = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultLockoutPolicy(ctx, \"default\", \u0026zitadel.DefaultLockoutPolicyArgs{\n\t\t\tMaxPasswordAttempts: pulumi.Int(5),\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.zitadel.DefaultLockoutPolicy;\nimport com.pulumi.zitadel.DefaultLockoutPolicyArgs;\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 DefaultLockoutPolicy(\"default\", DefaultLockoutPolicyArgs.builder() \n .maxPasswordAttempts(\"5\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultLockoutPolicy\n properties:\n maxPasswordAttempts: '5'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy imported ''\n```\n\n ", + "description": "Resource representing the default lockout policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultLockoutPolicy(\"default\", {maxPasswordAttempts: 5});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultLockoutPolicy(\"default\", max_password_attempts=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultLockoutPolicy(\"default\", new()\n {\n MaxPasswordAttempts = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultLockoutPolicy(ctx, \"default\", \u0026zitadel.DefaultLockoutPolicyArgs{\n\t\t\tMaxPasswordAttempts: pulumi.Int(5),\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.zitadel.DefaultLockoutPolicy;\nimport com.pulumi.zitadel.DefaultLockoutPolicyArgs;\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 DefaultLockoutPolicy(\"default\", DefaultLockoutPolicyArgs.builder() \n .maxPasswordAttempts(\"5\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultLockoutPolicy\n properties:\n maxPasswordAttempts: '5'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy imported ''\n```\n\n ", "properties": { "maxPasswordAttempts": { "type": "integer", @@ -1202,7 +1214,7 @@ } }, "zitadel:index/defaultLoginPolicy:DefaultLoginPolicy": { - "description": "Resource representing the default login policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultLoginPolicy(\"default\", {\n userLogin: true,\n allowRegister: true,\n allowExternalIdp: true,\n forceMfa: false,\n forceMfaLocalOnly: false,\n passwordlessType: \"PASSWORDLESS_TYPE_ALLOWED\",\n hidePasswordReset: false,\n passwordCheckLifetime: \"240h0m0s\",\n externalLoginCheckLifetime: \"240h0m0s\",\n multiFactorCheckLifetime: \"24h0m0s\",\n mfaInitSkipLifetime: \"720h0m0s\",\n secondFactorCheckLifetime: \"24h0m0s\",\n ignoreUnknownUsernames: true,\n defaultRedirectUri: \"localhost:8080\",\n secondFactors: [\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multiFactors: [\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps: [\n defaultZitadelIdpGoogle.id,\n defaultZitadelIdpAzureAd.id,\n ],\n allowDomainDiscovery: true,\n disableLoginWithEmail: true,\n disableLoginWithPhone: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultLoginPolicy(\"default\",\n user_login=True,\n allow_register=True,\n allow_external_idp=True,\n force_mfa=False,\n force_mfa_local_only=False,\n passwordless_type=\"PASSWORDLESS_TYPE_ALLOWED\",\n hide_password_reset=False,\n password_check_lifetime=\"240h0m0s\",\n external_login_check_lifetime=\"240h0m0s\",\n multi_factor_check_lifetime=\"24h0m0s\",\n mfa_init_skip_lifetime=\"720h0m0s\",\n second_factor_check_lifetime=\"24h0m0s\",\n ignore_unknown_usernames=True,\n default_redirect_uri=\"localhost:8080\",\n second_factors=[\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multi_factors=[\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps=[\n default_zitadel_idp_google[\"id\"],\n default_zitadel_idp_azure_ad[\"id\"],\n ],\n allow_domain_discovery=True,\n disable_login_with_email=True,\n disable_login_with_phone=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultLoginPolicy(\"default\", new()\n {\n UserLogin = true,\n AllowRegister = true,\n AllowExternalIdp = true,\n ForceMfa = false,\n ForceMfaLocalOnly = false,\n PasswordlessType = \"PASSWORDLESS_TYPE_ALLOWED\",\n HidePasswordReset = false,\n PasswordCheckLifetime = \"240h0m0s\",\n ExternalLoginCheckLifetime = \"240h0m0s\",\n MultiFactorCheckLifetime = \"24h0m0s\",\n MfaInitSkipLifetime = \"720h0m0s\",\n SecondFactorCheckLifetime = \"24h0m0s\",\n IgnoreUnknownUsernames = true,\n DefaultRedirectUri = \"localhost:8080\",\n SecondFactors = new[]\n {\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n },\n MultiFactors = new[]\n {\n \"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\",\n },\n Idps = new[]\n {\n defaultZitadelIdpGoogle.Id,\n defaultZitadelIdpAzureAd.Id,\n },\n AllowDomainDiscovery = true,\n DisableLoginWithEmail = true,\n DisableLoginWithPhone = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultLoginPolicy(ctx, \"default\", \u0026zitadel.DefaultLoginPolicyArgs{\n\t\t\tUserLogin: pulumi.Bool(true),\n\t\t\tAllowRegister: pulumi.Bool(true),\n\t\t\tAllowExternalIdp: pulumi.Bool(true),\n\t\t\tForceMfa: pulumi.Bool(false),\n\t\t\tForceMfaLocalOnly: pulumi.Bool(false),\n\t\t\tPasswordlessType: pulumi.String(\"PASSWORDLESS_TYPE_ALLOWED\"),\n\t\t\tHidePasswordReset: pulumi.Bool(false),\n\t\t\tPasswordCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tExternalLoginCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tMultiFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tMfaInitSkipLifetime: pulumi.String(\"720h0m0s\"),\n\t\t\tSecondFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tIgnoreUnknownUsernames: pulumi.Bool(true),\n\t\t\tDefaultRedirectUri: pulumi.String(\"localhost:8080\"),\n\t\t\tSecondFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_OTP\"),\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_U2F\"),\n\t\t\t},\n\t\t\tMultiFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"),\n\t\t\t},\n\t\t\tIdps: pulumi.StringArray{\n\t\t\t\tdefaultZitadelIdpGoogle.Id,\n\t\t\t\tdefaultZitadelIdpAzureAd.Id,\n\t\t\t},\n\t\t\tAllowDomainDiscovery: pulumi.Bool(true),\n\t\t\tDisableLoginWithEmail: pulumi.Bool(true),\n\t\t\tDisableLoginWithPhone: pulumi.Bool(true),\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.zitadel.DefaultLoginPolicy;\nimport com.pulumi.zitadel.DefaultLoginPolicyArgs;\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 DefaultLoginPolicy(\"default\", DefaultLoginPolicyArgs.builder() \n .userLogin(true)\n .allowRegister(true)\n .allowExternalIdp(true)\n .forceMfa(false)\n .forceMfaLocalOnly(false)\n .passwordlessType(\"PASSWORDLESS_TYPE_ALLOWED\")\n .hidePasswordReset(\"false\")\n .passwordCheckLifetime(\"240h0m0s\")\n .externalLoginCheckLifetime(\"240h0m0s\")\n .multiFactorCheckLifetime(\"24h0m0s\")\n .mfaInitSkipLifetime(\"720h0m0s\")\n .secondFactorCheckLifetime(\"24h0m0s\")\n .ignoreUnknownUsernames(true)\n .defaultRedirectUri(\"localhost:8080\")\n .secondFactors( \n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\")\n .multiFactors(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\")\n .idps( \n defaultZitadelIdpGoogle.id(),\n defaultZitadelIdpAzureAd.id())\n .allowDomainDiscovery(true)\n .disableLoginWithEmail(true)\n .disableLoginWithPhone(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultLoginPolicy\n properties:\n userLogin: true\n allowRegister: true\n allowExternalIdp: true\n forceMfa: false\n forceMfaLocalOnly: false\n passwordlessType: PASSWORDLESS_TYPE_ALLOWED\n hidePasswordReset: 'false'\n passwordCheckLifetime: 240h0m0s\n externalLoginCheckLifetime: 240h0m0s\n multiFactorCheckLifetime: 24h0m0s\n mfaInitSkipLifetime: 720h0m0s\n secondFactorCheckLifetime: 24h0m0s\n ignoreUnknownUsernames: true\n defaultRedirectUri: localhost:8080\n secondFactors:\n - SECOND_FACTOR_TYPE_OTP\n - SECOND_FACTOR_TYPE_U2F\n multiFactors:\n - MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\n idps:\n - ${defaultZitadelIdpGoogle.id}\n - ${defaultZitadelIdpAzureAd.id}\n allowDomainDiscovery: true\n disableLoginWithEmail: true\n disableLoginWithPhone: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultLoginPolicy:DefaultLoginPolicy imported ''\n```\n\n ", + "description": "Resource representing the default login policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultLoginPolicy(\"default\", {\n userLogin: true,\n allowRegister: true,\n allowExternalIdp: true,\n forceMfa: false,\n forceMfaLocalOnly: false,\n passwordlessType: \"PASSWORDLESS_TYPE_ALLOWED\",\n hidePasswordReset: false,\n passwordCheckLifetime: \"240h0m0s\",\n externalLoginCheckLifetime: \"240h0m0s\",\n multiFactorCheckLifetime: \"24h0m0s\",\n mfaInitSkipLifetime: \"720h0m0s\",\n secondFactorCheckLifetime: \"24h0m0s\",\n ignoreUnknownUsernames: true,\n defaultRedirectUri: \"localhost:8080\",\n secondFactors: [\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multiFactors: [\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps: [\n defaultZitadelIdpGoogle.id,\n defaultZitadelIdpAzureAd.id,\n ],\n allowDomainDiscovery: true,\n disableLoginWithEmail: true,\n disableLoginWithPhone: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultLoginPolicy(\"default\",\n user_login=True,\n allow_register=True,\n allow_external_idp=True,\n force_mfa=False,\n force_mfa_local_only=False,\n passwordless_type=\"PASSWORDLESS_TYPE_ALLOWED\",\n hide_password_reset=False,\n password_check_lifetime=\"240h0m0s\",\n external_login_check_lifetime=\"240h0m0s\",\n multi_factor_check_lifetime=\"24h0m0s\",\n mfa_init_skip_lifetime=\"720h0m0s\",\n second_factor_check_lifetime=\"24h0m0s\",\n ignore_unknown_usernames=True,\n default_redirect_uri=\"localhost:8080\",\n second_factors=[\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multi_factors=[\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps=[\n default_zitadel_idp_google[\"id\"],\n default_zitadel_idp_azure_ad[\"id\"],\n ],\n allow_domain_discovery=True,\n disable_login_with_email=True,\n disable_login_with_phone=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultLoginPolicy(\"default\", new()\n {\n UserLogin = true,\n AllowRegister = true,\n AllowExternalIdp = true,\n ForceMfa = false,\n ForceMfaLocalOnly = false,\n PasswordlessType = \"PASSWORDLESS_TYPE_ALLOWED\",\n HidePasswordReset = false,\n PasswordCheckLifetime = \"240h0m0s\",\n ExternalLoginCheckLifetime = \"240h0m0s\",\n MultiFactorCheckLifetime = \"24h0m0s\",\n MfaInitSkipLifetime = \"720h0m0s\",\n SecondFactorCheckLifetime = \"24h0m0s\",\n IgnoreUnknownUsernames = true,\n DefaultRedirectUri = \"localhost:8080\",\n SecondFactors = new[]\n {\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n },\n MultiFactors = new[]\n {\n \"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\",\n },\n Idps = new[]\n {\n defaultZitadelIdpGoogle.Id,\n defaultZitadelIdpAzureAd.Id,\n },\n AllowDomainDiscovery = true,\n DisableLoginWithEmail = true,\n DisableLoginWithPhone = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultLoginPolicy(ctx, \"default\", \u0026zitadel.DefaultLoginPolicyArgs{\n\t\t\tUserLogin: pulumi.Bool(true),\n\t\t\tAllowRegister: pulumi.Bool(true),\n\t\t\tAllowExternalIdp: pulumi.Bool(true),\n\t\t\tForceMfa: pulumi.Bool(false),\n\t\t\tForceMfaLocalOnly: pulumi.Bool(false),\n\t\t\tPasswordlessType: pulumi.String(\"PASSWORDLESS_TYPE_ALLOWED\"),\n\t\t\tHidePasswordReset: pulumi.Bool(false),\n\t\t\tPasswordCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tExternalLoginCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tMultiFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tMfaInitSkipLifetime: pulumi.String(\"720h0m0s\"),\n\t\t\tSecondFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tIgnoreUnknownUsernames: pulumi.Bool(true),\n\t\t\tDefaultRedirectUri: pulumi.String(\"localhost:8080\"),\n\t\t\tSecondFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_OTP\"),\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_U2F\"),\n\t\t\t},\n\t\t\tMultiFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"),\n\t\t\t},\n\t\t\tIdps: pulumi.StringArray{\n\t\t\t\tdefaultZitadelIdpGoogle.Id,\n\t\t\t\tdefaultZitadelIdpAzureAd.Id,\n\t\t\t},\n\t\t\tAllowDomainDiscovery: pulumi.Bool(true),\n\t\t\tDisableLoginWithEmail: pulumi.Bool(true),\n\t\t\tDisableLoginWithPhone: pulumi.Bool(true),\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.zitadel.DefaultLoginPolicy;\nimport com.pulumi.zitadel.DefaultLoginPolicyArgs;\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 DefaultLoginPolicy(\"default\", DefaultLoginPolicyArgs.builder() \n .userLogin(true)\n .allowRegister(true)\n .allowExternalIdp(true)\n .forceMfa(false)\n .forceMfaLocalOnly(false)\n .passwordlessType(\"PASSWORDLESS_TYPE_ALLOWED\")\n .hidePasswordReset(\"false\")\n .passwordCheckLifetime(\"240h0m0s\")\n .externalLoginCheckLifetime(\"240h0m0s\")\n .multiFactorCheckLifetime(\"24h0m0s\")\n .mfaInitSkipLifetime(\"720h0m0s\")\n .secondFactorCheckLifetime(\"24h0m0s\")\n .ignoreUnknownUsernames(true)\n .defaultRedirectUri(\"localhost:8080\")\n .secondFactors( \n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\")\n .multiFactors(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\")\n .idps( \n defaultZitadelIdpGoogle.id(),\n defaultZitadelIdpAzureAd.id())\n .allowDomainDiscovery(true)\n .disableLoginWithEmail(true)\n .disableLoginWithPhone(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultLoginPolicy\n properties:\n userLogin: true\n allowRegister: true\n allowExternalIdp: true\n forceMfa: false\n forceMfaLocalOnly: false\n passwordlessType: PASSWORDLESS_TYPE_ALLOWED\n hidePasswordReset: 'false'\n passwordCheckLifetime: 240h0m0s\n externalLoginCheckLifetime: 240h0m0s\n multiFactorCheckLifetime: 24h0m0s\n mfaInitSkipLifetime: 720h0m0s\n secondFactorCheckLifetime: 24h0m0s\n ignoreUnknownUsernames: true\n defaultRedirectUri: localhost:8080\n secondFactors:\n - SECOND_FACTOR_TYPE_OTP\n - SECOND_FACTOR_TYPE_U2F\n multiFactors:\n - MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\n idps:\n - ${defaultZitadelIdpGoogle.id}\n - ${defaultZitadelIdpAzureAd.id}\n allowDomainDiscovery: true\n disableLoginWithEmail: true\n disableLoginWithPhone: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultLoginPolicy:DefaultLoginPolicy imported ''\n```\n\n ", "properties": { "allowDomainDiscovery": { "type": "boolean", @@ -1499,7 +1511,7 @@ } }, "zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy": { - "description": "Resource representing the default notification policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultNotificationPolicy(\"default\", {passwordChange: false});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultNotificationPolicy(\"default\", password_change=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultNotificationPolicy(\"default\", new()\n {\n PasswordChange = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultNotificationPolicy(ctx, \"default\", \u0026zitadel.DefaultNotificationPolicyArgs{\n\t\t\tPasswordChange: pulumi.Bool(false),\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.zitadel.DefaultNotificationPolicy;\nimport com.pulumi.zitadel.DefaultNotificationPolicyArgs;\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 DefaultNotificationPolicy(\"default\", DefaultNotificationPolicyArgs.builder() \n .passwordChange(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultNotificationPolicy\n properties:\n passwordChange: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy imported ''\n```\n\n ", + "description": "Resource representing the default notification policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultNotificationPolicy(\"default\", {passwordChange: false});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultNotificationPolicy(\"default\", password_change=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultNotificationPolicy(\"default\", new()\n {\n PasswordChange = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultNotificationPolicy(ctx, \"default\", \u0026zitadel.DefaultNotificationPolicyArgs{\n\t\t\tPasswordChange: pulumi.Bool(false),\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.zitadel.DefaultNotificationPolicy;\nimport com.pulumi.zitadel.DefaultNotificationPolicyArgs;\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 DefaultNotificationPolicy(\"default\", DefaultNotificationPolicyArgs.builder() \n .passwordChange(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultNotificationPolicy\n properties:\n passwordChange: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy imported ''\n```\n\n ", "properties": { "passwordChange": { "type": "boolean", @@ -1603,7 +1615,7 @@ } }, "zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy": { - "description": "Resource representing the default password complexity policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultPasswordComplexityPolicy(\"default\", {\n minLength: 8,\n hasUppercase: true,\n hasLowercase: true,\n hasNumber: true,\n hasSymbol: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultPasswordComplexityPolicy(\"default\",\n min_length=8,\n has_uppercase=True,\n has_lowercase=True,\n has_number=True,\n has_symbol=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultPasswordComplexityPolicy(\"default\", new()\n {\n MinLength = 8,\n HasUppercase = true,\n HasLowercase = true,\n HasNumber = true,\n HasSymbol = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultPasswordComplexityPolicy(ctx, \"default\", \u0026zitadel.DefaultPasswordComplexityPolicyArgs{\n\t\t\tMinLength: pulumi.Int(8),\n\t\t\tHasUppercase: pulumi.Bool(true),\n\t\t\tHasLowercase: pulumi.Bool(true),\n\t\t\tHasNumber: pulumi.Bool(true),\n\t\t\tHasSymbol: pulumi.Bool(true),\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.zitadel.DefaultPasswordComplexityPolicy;\nimport com.pulumi.zitadel.DefaultPasswordComplexityPolicyArgs;\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 DefaultPasswordComplexityPolicy(\"default\", DefaultPasswordComplexityPolicyArgs.builder() \n .minLength(\"8\")\n .hasUppercase(true)\n .hasLowercase(true)\n .hasNumber(true)\n .hasSymbol(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultPasswordComplexityPolicy\n properties:\n minLength: '8'\n hasUppercase: true\n hasLowercase: true\n hasNumber: true\n hasSymbol: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy imported ''\n```\n\n ", + "description": "Resource representing the default password complexity policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultPasswordComplexityPolicy(\"default\", {\n minLength: 8,\n hasUppercase: true,\n hasLowercase: true,\n hasNumber: true,\n hasSymbol: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultPasswordComplexityPolicy(\"default\",\n min_length=8,\n has_uppercase=True,\n has_lowercase=True,\n has_number=True,\n has_symbol=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultPasswordComplexityPolicy(\"default\", new()\n {\n MinLength = 8,\n HasUppercase = true,\n HasLowercase = true,\n HasNumber = true,\n HasSymbol = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultPasswordComplexityPolicy(ctx, \"default\", \u0026zitadel.DefaultPasswordComplexityPolicyArgs{\n\t\t\tMinLength: pulumi.Int(8),\n\t\t\tHasUppercase: pulumi.Bool(true),\n\t\t\tHasLowercase: pulumi.Bool(true),\n\t\t\tHasNumber: pulumi.Bool(true),\n\t\t\tHasSymbol: pulumi.Bool(true),\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.zitadel.DefaultPasswordComplexityPolicy;\nimport com.pulumi.zitadel.DefaultPasswordComplexityPolicyArgs;\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 DefaultPasswordComplexityPolicy(\"default\", DefaultPasswordComplexityPolicyArgs.builder() \n .minLength(\"8\")\n .hasUppercase(true)\n .hasLowercase(true)\n .hasNumber(true)\n .hasSymbol(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultPasswordComplexityPolicy\n properties:\n minLength: '8'\n hasUppercase: true\n hasLowercase: true\n hasNumber: true\n hasSymbol: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy imported ''\n```\n\n ", "properties": { "hasLowercase": { "type": "boolean", @@ -1690,7 +1702,7 @@ } }, "zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy": { - "description": "Resource representing the default privacy policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultPrivacyPolicy(\"default\", {\n tosLink: \"https://example.com/tos\",\n privacyLink: \"https://example.com/privacy\",\n helpLink: \"https://example.com/help\",\n supportEmail: \"support@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultPrivacyPolicy(\"default\",\n tos_link=\"https://example.com/tos\",\n privacy_link=\"https://example.com/privacy\",\n help_link=\"https://example.com/help\",\n support_email=\"support@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultPrivacyPolicy(\"default\", new()\n {\n TosLink = \"https://example.com/tos\",\n PrivacyLink = \"https://example.com/privacy\",\n HelpLink = \"https://example.com/help\",\n SupportEmail = \"support@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultPrivacyPolicy(ctx, \"default\", \u0026zitadel.DefaultPrivacyPolicyArgs{\n\t\t\tTosLink: pulumi.String(\"https://example.com/tos\"),\n\t\t\tPrivacyLink: pulumi.String(\"https://example.com/privacy\"),\n\t\t\tHelpLink: pulumi.String(\"https://example.com/help\"),\n\t\t\tSupportEmail: pulumi.String(\"support@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.zitadel.DefaultPrivacyPolicy;\nimport com.pulumi.zitadel.DefaultPrivacyPolicyArgs;\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 DefaultPrivacyPolicy(\"default\", DefaultPrivacyPolicyArgs.builder() \n .tosLink(\"https://example.com/tos\")\n .privacyLink(\"https://example.com/privacy\")\n .helpLink(\"https://example.com/help\")\n .supportEmail(\"support@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultPrivacyPolicy\n properties:\n tosLink: https://example.com/tos\n privacyLink: https://example.com/privacy\n helpLink: https://example.com/help\n supportEmail: support@example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy imported ''\n```\n\n ", + "description": "Resource representing the default privacy policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DefaultPrivacyPolicy(\"default\", {\n tosLink: \"https://example.com/tos\",\n privacyLink: \"https://example.com/privacy\",\n helpLink: \"https://example.com/help\",\n supportEmail: \"support@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DefaultPrivacyPolicy(\"default\",\n tos_link=\"https://example.com/tos\",\n privacy_link=\"https://example.com/privacy\",\n help_link=\"https://example.com/help\",\n support_email=\"support@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DefaultPrivacyPolicy(\"default\", new()\n {\n TosLink = \"https://example.com/tos\",\n PrivacyLink = \"https://example.com/privacy\",\n HelpLink = \"https://example.com/help\",\n SupportEmail = \"support@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDefaultPrivacyPolicy(ctx, \"default\", \u0026zitadel.DefaultPrivacyPolicyArgs{\n\t\t\tTosLink: pulumi.String(\"https://example.com/tos\"),\n\t\t\tPrivacyLink: pulumi.String(\"https://example.com/privacy\"),\n\t\t\tHelpLink: pulumi.String(\"https://example.com/help\"),\n\t\t\tSupportEmail: pulumi.String(\"support@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.zitadel.DefaultPrivacyPolicy;\nimport com.pulumi.zitadel.DefaultPrivacyPolicyArgs;\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 DefaultPrivacyPolicy(\"default\", DefaultPrivacyPolicyArgs.builder() \n .tosLink(\"https://example.com/tos\")\n .privacyLink(\"https://example.com/privacy\")\n .helpLink(\"https://example.com/help\")\n .supportEmail(\"support@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DefaultPrivacyPolicy\n properties:\n tosLink: https://example.com/tos\n privacyLink: https://example.com/privacy\n helpLink: https://example.com/help\n supportEmail: support@example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy imported ''\n```\n\n ", "properties": { "helpLink": { "type": "string" @@ -1739,7 +1751,7 @@ } }, "zitadel:index/domain:Domain": { - "description": "Resource representing a domain of the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Domain(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"zitadel.default.127.0.0.1.sslip.io\",\n isPrimary: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Domain(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"zitadel.default.127.0.0.1.sslip.io\",\n is_primary=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Domain(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"zitadel.default.127.0.0.1.sslip.io\",\n IsPrimary = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDomain(ctx, \"default\", \u0026zitadel.DomainArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"zitadel.default.127.0.0.1.sslip.io\"),\n\t\t\tIsPrimary: pulumi.Bool(false),\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.zitadel.Domain;\nimport com.pulumi.zitadel.DomainArgs;\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 Domain(\"default\", DomainArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"zitadel.default.127.0.0.1.sslip.io\")\n .isPrimary(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Domain\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: zitadel.default.127.0.0.1.sslip.io\n isPrimary: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `name[:org_id]`, e.g.\n\n```sh\n $ pulumi import zitadel:index/domain:Domain imported 'example.com:123456789012345678'\n```\n\n ", + "description": "Resource representing a domain of the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Domain(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"zitadel.default.127.0.0.1.sslip.io\",\n isPrimary: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Domain(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"zitadel.default.127.0.0.1.sslip.io\",\n is_primary=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Domain(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"zitadel.default.127.0.0.1.sslip.io\",\n IsPrimary = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDomain(ctx, \"default\", \u0026zitadel.DomainArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"zitadel.default.127.0.0.1.sslip.io\"),\n\t\t\tIsPrimary: pulumi.Bool(false),\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.zitadel.Domain;\nimport com.pulumi.zitadel.DomainArgs;\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 Domain(\"default\", DomainArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"zitadel.default.127.0.0.1.sslip.io\")\n .isPrimary(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Domain\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: zitadel.default.127.0.0.1.sslip.io\n isPrimary: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `name[:org_id]`, e.g.\n\n```sh\n $ pulumi import zitadel:index/domain:Domain imported 'example.com:123456789012345678'\n```\n\n ", "properties": { "isPrimary": { "type": "boolean", @@ -1813,7 +1825,7 @@ } }, "zitadel:index/domainPolicy:DomainPolicy": { - "description": "Resource representing the custom domain policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DomainPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n userLoginMustBeDomain: false,\n validateOrgDomains: true,\n smtpSenderAddressMatchesInstanceDomain: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DomainPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_login_must_be_domain=False,\n validate_org_domains=True,\n smtp_sender_address_matches_instance_domain=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DomainPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserLoginMustBeDomain = false,\n ValidateOrgDomains = true,\n SmtpSenderAddressMatchesInstanceDomain = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDomainPolicy(ctx, \"default\", \u0026zitadel.DomainPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserLoginMustBeDomain: pulumi.Bool(false),\n\t\t\tValidateOrgDomains: pulumi.Bool(true),\n\t\t\tSmtpSenderAddressMatchesInstanceDomain: pulumi.Bool(true),\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.zitadel.DomainPolicy;\nimport com.pulumi.zitadel.DomainPolicyArgs;\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 DomainPolicy(\"default\", DomainPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userLoginMustBeDomain(false)\n .validateOrgDomains(true)\n .smtpSenderAddressMatchesInstanceDomain(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DomainPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n userLoginMustBeDomain: false\n validateOrgDomains: true\n smtpSenderAddressMatchesInstanceDomain: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/domainPolicy:DomainPolicy imported '123456789012345678'\n```\n\n ", + "description": "Resource representing the custom domain policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.DomainPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n userLoginMustBeDomain: false,\n validateOrgDomains: true,\n smtpSenderAddressMatchesInstanceDomain: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.DomainPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_login_must_be_domain=False,\n validate_org_domains=True,\n smtp_sender_address_matches_instance_domain=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.DomainPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserLoginMustBeDomain = false,\n ValidateOrgDomains = true,\n SmtpSenderAddressMatchesInstanceDomain = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewDomainPolicy(ctx, \"default\", \u0026zitadel.DomainPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserLoginMustBeDomain: pulumi.Bool(false),\n\t\t\tValidateOrgDomains: pulumi.Bool(true),\n\t\t\tSmtpSenderAddressMatchesInstanceDomain: pulumi.Bool(true),\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.zitadel.DomainPolicy;\nimport com.pulumi.zitadel.DomainPolicyArgs;\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 DomainPolicy(\"default\", DomainPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userLoginMustBeDomain(false)\n .validateOrgDomains(true)\n .smtpSenderAddressMatchesInstanceDomain(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:DomainPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n userLoginMustBeDomain: false\n validateOrgDomains: true\n smtpSenderAddressMatchesInstanceDomain: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/domainPolicy:DomainPolicy imported '123456789012345678'\n```\n\n ", "properties": { "orgId": { "type": "string", @@ -1883,7 +1895,7 @@ } }, "zitadel:index/humanUser:HumanUser": { - "description": "**Caution: Email can only be set verified if a password is set for the user, either with initial_password or during runtime**\n\nResource representing a human user situated under an organization, which then can be authorized through memberships or direct grants on other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.HumanUser(\"default\", {\n orgId: defaultZitadelOrg.id,\n userName: \"humanfull@localhost.com\",\n firstName: \"firstname\",\n lastName: \"lastname\",\n nickName: \"nickname\",\n displayName: \"displayname\",\n preferredLanguage: \"de\",\n gender: \"GENDER_MALE\",\n phone: \"+41799999999\",\n isPhoneVerified: true,\n email: \"test@zitadel.com\",\n isEmailVerified: true,\n initialPassword: \"Password1!\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.HumanUser(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_name=\"humanfull@localhost.com\",\n first_name=\"firstname\",\n last_name=\"lastname\",\n nick_name=\"nickname\",\n display_name=\"displayname\",\n preferred_language=\"de\",\n gender=\"GENDER_MALE\",\n phone=\"+41799999999\",\n is_phone_verified=True,\n email=\"test@zitadel.com\",\n is_email_verified=True,\n initial_password=\"Password1!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.HumanUser(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserName = \"humanfull@localhost.com\",\n FirstName = \"firstname\",\n LastName = \"lastname\",\n NickName = \"nickname\",\n DisplayName = \"displayname\",\n PreferredLanguage = \"de\",\n Gender = \"GENDER_MALE\",\n Phone = \"+41799999999\",\n IsPhoneVerified = true,\n Email = \"test@zitadel.com\",\n IsEmailVerified = true,\n InitialPassword = \"Password1!\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewHumanUser(ctx, \"default\", \u0026zitadel.HumanUserArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserName: pulumi.String(\"humanfull@localhost.com\"),\n\t\t\tFirstName: pulumi.String(\"firstname\"),\n\t\t\tLastName: pulumi.String(\"lastname\"),\n\t\t\tNickName: pulumi.String(\"nickname\"),\n\t\t\tDisplayName: pulumi.String(\"displayname\"),\n\t\t\tPreferredLanguage: pulumi.String(\"de\"),\n\t\t\tGender: pulumi.String(\"GENDER_MALE\"),\n\t\t\tPhone: pulumi.String(\"+41799999999\"),\n\t\t\tIsPhoneVerified: pulumi.Bool(true),\n\t\t\tEmail: pulumi.String(\"test@zitadel.com\"),\n\t\t\tIsEmailVerified: pulumi.Bool(true),\n\t\t\tInitialPassword: pulumi.String(\"Password1!\"),\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.zitadel.HumanUser;\nimport com.pulumi.zitadel.HumanUserArgs;\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 HumanUser(\"default\", HumanUserArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userName(\"humanfull@localhost.com\")\n .firstName(\"firstname\")\n .lastName(\"lastname\")\n .nickName(\"nickname\")\n .displayName(\"displayname\")\n .preferredLanguage(\"de\")\n .gender(\"GENDER_MALE\")\n .phone(\"+41799999999\")\n .isPhoneVerified(true)\n .email(\"test@zitadel.com\")\n .isEmailVerified(true)\n .initialPassword(\"Password1!\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:HumanUser\n properties:\n orgId: ${defaultZitadelOrg.id}\n userName: humanfull@localhost.com\n firstName: firstname\n lastName: lastname\n nickName: nickname\n displayName: displayname\n preferredLanguage: de\n gender: GENDER_MALE\n phone: '+41799999999'\n isPhoneVerified: true\n email: test@zitadel.com\n isEmailVerified: true\n initialPassword: Password1!\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `id[:org_id][:initial_password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/humanUser:HumanUser imported '123456789012345678:123456789012345678:Password1!'\n```\n\n ", + "description": "**Caution: Email can only be set verified if a password is set for the user, either with initial_password or during runtime**\n\nResource representing a human user situated under an organization, which then can be authorized through memberships or direct grants on other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.HumanUser(\"default\", {\n orgId: defaultZitadelOrg.id,\n userName: \"humanfull@localhost.com\",\n firstName: \"firstname\",\n lastName: \"lastname\",\n nickName: \"nickname\",\n displayName: \"displayname\",\n preferredLanguage: \"de\",\n gender: \"GENDER_MALE\",\n phone: \"+41799999999\",\n isPhoneVerified: true,\n email: \"test@zitadel.com\",\n isEmailVerified: true,\n initialPassword: \"Password1!\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.HumanUser(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_name=\"humanfull@localhost.com\",\n first_name=\"firstname\",\n last_name=\"lastname\",\n nick_name=\"nickname\",\n display_name=\"displayname\",\n preferred_language=\"de\",\n gender=\"GENDER_MALE\",\n phone=\"+41799999999\",\n is_phone_verified=True,\n email=\"test@zitadel.com\",\n is_email_verified=True,\n initial_password=\"Password1!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.HumanUser(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserName = \"humanfull@localhost.com\",\n FirstName = \"firstname\",\n LastName = \"lastname\",\n NickName = \"nickname\",\n DisplayName = \"displayname\",\n PreferredLanguage = \"de\",\n Gender = \"GENDER_MALE\",\n Phone = \"+41799999999\",\n IsPhoneVerified = true,\n Email = \"test@zitadel.com\",\n IsEmailVerified = true,\n InitialPassword = \"Password1!\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewHumanUser(ctx, \"default\", \u0026zitadel.HumanUserArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserName: pulumi.String(\"humanfull@localhost.com\"),\n\t\t\tFirstName: pulumi.String(\"firstname\"),\n\t\t\tLastName: pulumi.String(\"lastname\"),\n\t\t\tNickName: pulumi.String(\"nickname\"),\n\t\t\tDisplayName: pulumi.String(\"displayname\"),\n\t\t\tPreferredLanguage: pulumi.String(\"de\"),\n\t\t\tGender: pulumi.String(\"GENDER_MALE\"),\n\t\t\tPhone: pulumi.String(\"+41799999999\"),\n\t\t\tIsPhoneVerified: pulumi.Bool(true),\n\t\t\tEmail: pulumi.String(\"test@zitadel.com\"),\n\t\t\tIsEmailVerified: pulumi.Bool(true),\n\t\t\tInitialPassword: pulumi.String(\"Password1!\"),\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.zitadel.HumanUser;\nimport com.pulumi.zitadel.HumanUserArgs;\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 HumanUser(\"default\", HumanUserArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userName(\"humanfull@localhost.com\")\n .firstName(\"firstname\")\n .lastName(\"lastname\")\n .nickName(\"nickname\")\n .displayName(\"displayname\")\n .preferredLanguage(\"de\")\n .gender(\"GENDER_MALE\")\n .phone(\"+41799999999\")\n .isPhoneVerified(true)\n .email(\"test@zitadel.com\")\n .isEmailVerified(true)\n .initialPassword(\"Password1!\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:HumanUser\n properties:\n orgId: ${defaultZitadelOrg.id}\n userName: humanfull@localhost.com\n firstName: firstname\n lastName: lastname\n nickName: nickname\n displayName: displayname\n preferredLanguage: de\n gender: GENDER_MALE\n phone: '+41799999999'\n isPhoneVerified: true\n email: test@zitadel.com\n isEmailVerified: true\n initialPassword: Password1!\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `id[:org_id][:initial_password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/humanUser:HumanUser imported '123456789012345678:123456789012345678:Password1!'\n```\n\n ", "properties": { "displayName": { "type": "string", @@ -2107,7 +2119,7 @@ } }, "zitadel:index/idpAzureAd:IdpAzureAd": { - "description": "Resource representing an Azure AD IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpAzureAd(\"default\", {\n name: \"Azure AD\",\n clientId: \"9065bfc8-a08a...\",\n clientSecret: \"H2n***\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenantType: \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n emailVerified: true,\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpAzureAd(\"default\",\n name=\"Azure AD\",\n client_id=\"9065bfc8-a08a...\",\n client_secret=\"H2n***\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenant_type=\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n email_verified=True,\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpAzureAd(\"default\", new()\n {\n Name = \"Azure AD\",\n ClientId = \"9065bfc8-a08a...\",\n ClientSecret = \"H2n***\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n },\n TenantType = \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n EmailVerified = true,\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpAzureAd(ctx, \"default\", \u0026zitadel.IdpAzureAdArgs{\n\t\t\tName: pulumi.String(\"Azure AD\"),\n\t\t\tClientId: pulumi.String(\"9065bfc8-a08a...\"),\n\t\t\tClientSecret: pulumi.String(\"H2n***\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t\tpulumi.String(\"User.Read\"),\n\t\t\t},\n\t\t\tTenantType: pulumi.String(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\"),\n\t\t\tEmailVerified: pulumi.Bool(true),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpAzureAd;\nimport com.pulumi.zitadel.IdpAzureAdArgs;\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 IdpAzureAd(\"default\", IdpAzureAdArgs.builder() \n .name(\"Azure AD\")\n .clientId(\"9065bfc8-a08a...\")\n .clientSecret(\"H2n***\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\")\n .tenantType(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\")\n .emailVerified(true)\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpAzureAd\n properties:\n name: Azure AD\n clientId: 9065bfc8-a08a...\n clientSecret: H2n***\n scopes:\n - openid\n - profile\n - email\n - User.Read\n tenantType: AZURE_AD_TENANT_TYPE_ORGANISATIONS\n emailVerified: true\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpAzureAd:IdpAzureAd imported '123456789012345678:12345678-1234-1234-1234-123456789012'\n```\n\n ", + "description": "Resource representing an Azure AD IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpAzureAd(\"default\", {\n name: \"Azure AD\",\n clientId: \"9065bfc8-a08a...\",\n clientSecret: \"H2n***\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenantType: \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n emailVerified: true,\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpAzureAd(\"default\",\n name=\"Azure AD\",\n client_id=\"9065bfc8-a08a...\",\n client_secret=\"H2n***\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenant_type=\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n email_verified=True,\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpAzureAd(\"default\", new()\n {\n Name = \"Azure AD\",\n ClientId = \"9065bfc8-a08a...\",\n ClientSecret = \"H2n***\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n },\n TenantType = \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n EmailVerified = true,\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpAzureAd(ctx, \"default\", \u0026zitadel.IdpAzureAdArgs{\n\t\t\tName: pulumi.String(\"Azure AD\"),\n\t\t\tClientId: pulumi.String(\"9065bfc8-a08a...\"),\n\t\t\tClientSecret: pulumi.String(\"H2n***\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t\tpulumi.String(\"User.Read\"),\n\t\t\t},\n\t\t\tTenantType: pulumi.String(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\"),\n\t\t\tEmailVerified: pulumi.Bool(true),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpAzureAd;\nimport com.pulumi.zitadel.IdpAzureAdArgs;\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 IdpAzureAd(\"default\", IdpAzureAdArgs.builder() \n .name(\"Azure AD\")\n .clientId(\"9065bfc8-a08a...\")\n .clientSecret(\"H2n***\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\")\n .tenantType(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\")\n .emailVerified(true)\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpAzureAd\n properties:\n name: Azure AD\n clientId: 9065bfc8-a08a...\n clientSecret: H2n***\n scopes:\n - openid\n - profile\n - email\n - User.Read\n tenantType: AZURE_AD_TENANT_TYPE_ORGANISATIONS\n emailVerified: true\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpAzureAd:IdpAzureAd imported '123456789012345678:12345678-1234-1234-1234-123456789012'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -2283,7 +2295,7 @@ } }, "zitadel:index/idpGithub:IdpGithub": { - "description": "Resource representing a GitHub IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGithub(\"default\", {\n name: \"GitHub\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGithub(\"default\",\n name=\"GitHub\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGithub(\"default\", new()\n {\n Name = \"GitHub\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGithub(ctx, \"default\", \u0026zitadel.IdpGithubArgs{\n\t\t\tName: pulumi.String(\"GitHub\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGithub;\nimport com.pulumi.zitadel.IdpGithubArgs;\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 IdpGithub(\"default\", IdpGithubArgs.builder() \n .name(\"GitHub\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGithub\n properties:\n name: GitHub\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGithub:IdpGithub imported '123456789012345678:1234567890123456781234567890123456787890'\n```\n\n ", + "description": "Resource representing a GitHub IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGithub(\"default\", {\n name: \"GitHub\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGithub(\"default\",\n name=\"GitHub\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGithub(\"default\", new()\n {\n Name = \"GitHub\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGithub(ctx, \"default\", \u0026zitadel.IdpGithubArgs{\n\t\t\tName: pulumi.String(\"GitHub\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGithub;\nimport com.pulumi.zitadel.IdpGithubArgs;\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 IdpGithub(\"default\", IdpGithubArgs.builder() \n .name(\"GitHub\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGithub\n properties:\n name: GitHub\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGithub:IdpGithub imported '123456789012345678:1234567890123456781234567890123456787890'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -2421,7 +2433,7 @@ } }, "zitadel:index/idpGithubEs:IdpGithubEs": { - "description": "Resource representing a GitHub Enterprise IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGithubEs(\"default\", {\n name: \"GitHub Enterprise Server\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorizationEndpoint: \"https://auth.endpoint\",\n tokenEndpoint: \"https://token.endpoint\",\n userEndpoint: \"https://user.endpoint\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGithubEs(\"default\",\n name=\"GitHub Enterprise Server\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorization_endpoint=\"https://auth.endpoint\",\n token_endpoint=\"https://token.endpoint\",\n user_endpoint=\"https://user.endpoint\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGithubEs(\"default\", new()\n {\n Name = \"GitHub Enterprise Server\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n AuthorizationEndpoint = \"https://auth.endpoint\",\n TokenEndpoint = \"https://token.endpoint\",\n UserEndpoint = \"https://user.endpoint\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGithubEs(ctx, \"default\", \u0026zitadel.IdpGithubEsArgs{\n\t\t\tName: pulumi.String(\"GitHub Enterprise Server\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tAuthorizationEndpoint: pulumi.String(\"https://auth.endpoint\"),\n\t\t\tTokenEndpoint: pulumi.String(\"https://token.endpoint\"),\n\t\t\tUserEndpoint: pulumi.String(\"https://user.endpoint\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGithubEs;\nimport com.pulumi.zitadel.IdpGithubEsArgs;\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 IdpGithubEs(\"default\", IdpGithubEsArgs.builder() \n .name(\"GitHub Enterprise Server\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .authorizationEndpoint(\"https://auth.endpoint\")\n .tokenEndpoint(\"https://token.endpoint\")\n .userEndpoint(\"https://user.endpoint\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGithubEs\n properties:\n name: GitHub Enterprise Server\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n authorizationEndpoint: https://auth.endpoint\n tokenEndpoint: https://token.endpoint\n userEndpoint: https://user.endpoint\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGithubEs:IdpGithubEs imported '123456789012345678:1234567890123456781234567890123456787890'\n```\n\n ", + "description": "Resource representing a GitHub Enterprise IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGithubEs(\"default\", {\n name: \"GitHub Enterprise Server\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorizationEndpoint: \"https://auth.endpoint\",\n tokenEndpoint: \"https://token.endpoint\",\n userEndpoint: \"https://user.endpoint\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGithubEs(\"default\",\n name=\"GitHub Enterprise Server\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorization_endpoint=\"https://auth.endpoint\",\n token_endpoint=\"https://token.endpoint\",\n user_endpoint=\"https://user.endpoint\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGithubEs(\"default\", new()\n {\n Name = \"GitHub Enterprise Server\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n AuthorizationEndpoint = \"https://auth.endpoint\",\n TokenEndpoint = \"https://token.endpoint\",\n UserEndpoint = \"https://user.endpoint\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGithubEs(ctx, \"default\", \u0026zitadel.IdpGithubEsArgs{\n\t\t\tName: pulumi.String(\"GitHub Enterprise Server\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tAuthorizationEndpoint: pulumi.String(\"https://auth.endpoint\"),\n\t\t\tTokenEndpoint: pulumi.String(\"https://token.endpoint\"),\n\t\t\tUserEndpoint: pulumi.String(\"https://user.endpoint\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGithubEs;\nimport com.pulumi.zitadel.IdpGithubEsArgs;\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 IdpGithubEs(\"default\", IdpGithubEsArgs.builder() \n .name(\"GitHub Enterprise Server\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .authorizationEndpoint(\"https://auth.endpoint\")\n .tokenEndpoint(\"https://token.endpoint\")\n .userEndpoint(\"https://user.endpoint\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGithubEs\n properties:\n name: GitHub Enterprise Server\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n authorizationEndpoint: https://auth.endpoint\n tokenEndpoint: https://token.endpoint\n userEndpoint: https://user.endpoint\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGithubEs:IdpGithubEs imported '123456789012345678:1234567890123456781234567890123456787890'\n```\n\n ", "properties": { "authorizationEndpoint": { "type": "string", @@ -2601,7 +2613,7 @@ } }, "zitadel:index/idpGitlab:IdpGitlab": { - "description": "Resource representing a GitLab IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGitlab(\"default\", {\n name: \"GitLab\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGitlab(\"default\",\n name=\"GitLab\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGitlab(\"default\", new()\n {\n Name = \"GitLab\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGitlab(ctx, \"default\", \u0026zitadel.IdpGitlabArgs{\n\t\t\tName: pulumi.String(\"GitLab\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGitlab;\nimport com.pulumi.zitadel.IdpGitlabArgs;\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 IdpGitlab(\"default\", IdpGitlabArgs.builder() \n .name(\"GitLab\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGitlab\n properties:\n name: GitLab\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGitlab:IdpGitlab imported '123456789012345678:1234567890abcdef'\n```\n\n ", + "description": "Resource representing a GitLab IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGitlab(\"default\", {\n name: \"GitLab\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGitlab(\"default\",\n name=\"GitLab\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGitlab(\"default\", new()\n {\n Name = \"GitLab\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGitlab(ctx, \"default\", \u0026zitadel.IdpGitlabArgs{\n\t\t\tName: pulumi.String(\"GitLab\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGitlab;\nimport com.pulumi.zitadel.IdpGitlabArgs;\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 IdpGitlab(\"default\", IdpGitlabArgs.builder() \n .name(\"GitLab\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGitlab\n properties:\n name: GitLab\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGitlab:IdpGitlab imported '123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -2739,7 +2751,7 @@ } }, "zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted": { - "description": "Resource representing a GitLab Self Hosted IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGitlabSelfHosted(\"default\", {\n name: \"GitLab Self Hosted\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer: \"https://my.issuer\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGitlabSelfHosted(\"default\",\n name=\"GitLab Self Hosted\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer=\"https://my.issuer\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGitlabSelfHosted(\"default\", new()\n {\n Name = \"GitLab Self Hosted\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n Issuer = \"https://my.issuer\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGitlabSelfHosted(ctx, \"default\", \u0026zitadel.IdpGitlabSelfHostedArgs{\n\t\t\tName: pulumi.String(\"GitLab Self Hosted\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIssuer: pulumi.String(\"https://my.issuer\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGitlabSelfHosted;\nimport com.pulumi.zitadel.IdpGitlabSelfHostedArgs;\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 IdpGitlabSelfHosted(\"default\", IdpGitlabSelfHostedArgs.builder() \n .name(\"GitLab Self Hosted\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .issuer(\"https://my.issuer\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGitlabSelfHosted\n properties:\n name: GitLab Self Hosted\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n issuer: https://my.issuer\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted imported '123456789012345678:1234567890abcdef'\n```\n\n ", + "description": "Resource representing a GitLab Self Hosted IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGitlabSelfHosted(\"default\", {\n name: \"GitLab Self Hosted\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer: \"https://my.issuer\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGitlabSelfHosted(\"default\",\n name=\"GitLab Self Hosted\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer=\"https://my.issuer\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGitlabSelfHosted(\"default\", new()\n {\n Name = \"GitLab Self Hosted\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n Issuer = \"https://my.issuer\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGitlabSelfHosted(ctx, \"default\", \u0026zitadel.IdpGitlabSelfHostedArgs{\n\t\t\tName: pulumi.String(\"GitLab Self Hosted\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIssuer: pulumi.String(\"https://my.issuer\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGitlabSelfHosted;\nimport com.pulumi.zitadel.IdpGitlabSelfHostedArgs;\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 IdpGitlabSelfHosted(\"default\", IdpGitlabSelfHostedArgs.builder() \n .name(\"GitLab Self Hosted\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .issuer(\"https://my.issuer\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGitlabSelfHosted\n properties:\n name: GitLab Self Hosted\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n issuer: https://my.issuer\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted imported '123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -2891,7 +2903,7 @@ } }, "zitadel:index/idpGoogle:IdpGoogle": { - "description": "Resource representing a Google IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGoogle(\"default\", {\n name: \"Google\",\n clientId: \"182902...\",\n clientSecret: \"GOCSPX-*****\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGoogle(\"default\",\n name=\"Google\",\n client_id=\"182902...\",\n client_secret=\"GOCSPX-*****\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGoogle(\"default\", new()\n {\n Name = \"Google\",\n ClientId = \"182902...\",\n ClientSecret = \"GOCSPX-*****\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGoogle(ctx, \"default\", \u0026zitadel.IdpGoogleArgs{\n\t\t\tName: pulumi.String(\"Google\"),\n\t\t\tClientId: pulumi.String(\"182902...\"),\n\t\t\tClientSecret: pulumi.String(\"GOCSPX-*****\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGoogle;\nimport com.pulumi.zitadel.IdpGoogleArgs;\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 IdpGoogle(\"default\", IdpGoogleArgs.builder() \n .name(\"Google\")\n .clientId(\"182902...\")\n .clientSecret(\"GOCSPX-*****\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGoogle\n properties:\n name: Google\n clientId: 182902...\n clientSecret: GOCSPX-*****\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGoogle:IdpGoogle imported '123456789012345678:G1234567890123'\n```\n\n ", + "description": "Resource representing a Google IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpGoogle(\"default\", {\n name: \"Google\",\n clientId: \"182902...\",\n clientSecret: \"GOCSPX-*****\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpGoogle(\"default\",\n name=\"Google\",\n client_id=\"182902...\",\n client_secret=\"GOCSPX-*****\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpGoogle(\"default\", new()\n {\n Name = \"Google\",\n ClientId = \"182902...\",\n ClientSecret = \"GOCSPX-*****\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpGoogle(ctx, \"default\", \u0026zitadel.IdpGoogleArgs{\n\t\t\tName: pulumi.String(\"Google\"),\n\t\t\tClientId: pulumi.String(\"182902...\"),\n\t\t\tClientSecret: pulumi.String(\"GOCSPX-*****\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpGoogle;\nimport com.pulumi.zitadel.IdpGoogleArgs;\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 IdpGoogle(\"default\", IdpGoogleArgs.builder() \n .name(\"Google\")\n .clientId(\"182902...\")\n .clientSecret(\"GOCSPX-*****\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpGoogle\n properties:\n name: Google\n clientId: 182902...\n clientSecret: GOCSPX-*****\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpGoogle:IdpGoogle imported '123456789012345678:G1234567890123'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -3029,7 +3041,7 @@ } }, "zitadel:index/idpLdap:IdpLdap": { - "description": "Resource representing an LDAP IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpLdap(\"default\", {\n name: \"LDAP\",\n servers: [\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n startTls: false,\n baseDn: \"dc=example,dc=com\",\n bindDn: \"cn=admin,dc=example,dc=com\",\n bindPassword: \"Password1!\",\n userBase: \"dn\",\n userObjectClasses: [\"inetOrgPerson\"],\n userFilters: [\n \"uid\",\n \"email\",\n ],\n timeout: \"10s\",\n idAttribute: \"uid\",\n firstNameAttribute: \"firstname\",\n lastNameAttribute: \"lastname\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpLdap(\"default\",\n name=\"LDAP\",\n servers=[\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n start_tls=False,\n base_dn=\"dc=example,dc=com\",\n bind_dn=\"cn=admin,dc=example,dc=com\",\n bind_password=\"Password1!\",\n user_base=\"dn\",\n user_object_classes=[\"inetOrgPerson\"],\n user_filters=[\n \"uid\",\n \"email\",\n ],\n timeout=\"10s\",\n id_attribute=\"uid\",\n first_name_attribute=\"firstname\",\n last_name_attribute=\"lastname\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpLdap(\"default\", new()\n {\n Name = \"LDAP\",\n Servers = new[]\n {\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n },\n StartTls = false,\n BaseDn = \"dc=example,dc=com\",\n BindDn = \"cn=admin,dc=example,dc=com\",\n BindPassword = \"Password1!\",\n UserBase = \"dn\",\n UserObjectClasses = new[]\n {\n \"inetOrgPerson\",\n },\n UserFilters = new[]\n {\n \"uid\",\n \"email\",\n },\n Timeout = \"10s\",\n IdAttribute = \"uid\",\n FirstNameAttribute = \"firstname\",\n LastNameAttribute = \"lastname\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpLdap(ctx, \"default\", \u0026zitadel.IdpLdapArgs{\n\t\t\tName: pulumi.String(\"LDAP\"),\n\t\t\tServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ldaps://my.primary.server:389\"),\n\t\t\t\tpulumi.String(\"ldaps://my.secondary.server:389\"),\n\t\t\t},\n\t\t\tStartTls: pulumi.Bool(false),\n\t\t\tBaseDn: pulumi.String(\"dc=example,dc=com\"),\n\t\t\tBindDn: pulumi.String(\"cn=admin,dc=example,dc=com\"),\n\t\t\tBindPassword: pulumi.String(\"Password1!\"),\n\t\t\tUserBase: pulumi.String(\"dn\"),\n\t\t\tUserObjectClasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"inetOrgPerson\"),\n\t\t\t},\n\t\t\tUserFilters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"uid\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tTimeout: pulumi.String(\"10s\"),\n\t\t\tIdAttribute: pulumi.String(\"uid\"),\n\t\t\tFirstNameAttribute: pulumi.String(\"firstname\"),\n\t\t\tLastNameAttribute: pulumi.String(\"lastname\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpLdap;\nimport com.pulumi.zitadel.IdpLdapArgs;\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 IdpLdap(\"default\", IdpLdapArgs.builder() \n .name(\"LDAP\")\n .servers( \n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\")\n .startTls(false)\n .baseDn(\"dc=example,dc=com\")\n .bindDn(\"cn=admin,dc=example,dc=com\")\n .bindPassword(\"Password1!\")\n .userBase(\"dn\")\n .userObjectClasses(\"inetOrgPerson\")\n .userFilters( \n \"uid\",\n \"email\")\n .timeout(\"10s\")\n .idAttribute(\"uid\")\n .firstNameAttribute(\"firstname\")\n .lastNameAttribute(\"lastname\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpLdap\n properties:\n name: LDAP\n servers:\n - ldaps://my.primary.server:389\n - ldaps://my.secondary.server:389\n startTls: false\n baseDn: dc=example,dc=com\n bindDn: cn=admin,dc=example,dc=com\n bindPassword: Password1!\n userBase: dn\n userObjectClasses:\n - inetOrgPerson\n userFilters:\n - uid\n - email\n timeout: 10s\n idAttribute: uid\n firstNameAttribute: firstname\n lastNameAttribute: lastname\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:bind_password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpLdap:IdpLdap imported '123456789012345678:b1nd_p4ssw0rd'\n```\n\n ", + "description": "Resource representing an LDAP IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpLdap(\"default\", {\n name: \"LDAP\",\n servers: [\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n startTls: false,\n baseDn: \"dc=example,dc=com\",\n bindDn: \"cn=admin,dc=example,dc=com\",\n bindPassword: \"Password1!\",\n userBase: \"dn\",\n userObjectClasses: [\"inetOrgPerson\"],\n userFilters: [\n \"uid\",\n \"email\",\n ],\n timeout: \"10s\",\n idAttribute: \"uid\",\n firstNameAttribute: \"firstname\",\n lastNameAttribute: \"lastname\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpLdap(\"default\",\n name=\"LDAP\",\n servers=[\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n start_tls=False,\n base_dn=\"dc=example,dc=com\",\n bind_dn=\"cn=admin,dc=example,dc=com\",\n bind_password=\"Password1!\",\n user_base=\"dn\",\n user_object_classes=[\"inetOrgPerson\"],\n user_filters=[\n \"uid\",\n \"email\",\n ],\n timeout=\"10s\",\n id_attribute=\"uid\",\n first_name_attribute=\"firstname\",\n last_name_attribute=\"lastname\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpLdap(\"default\", new()\n {\n Name = \"LDAP\",\n Servers = new[]\n {\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n },\n StartTls = false,\n BaseDn = \"dc=example,dc=com\",\n BindDn = \"cn=admin,dc=example,dc=com\",\n BindPassword = \"Password1!\",\n UserBase = \"dn\",\n UserObjectClasses = new[]\n {\n \"inetOrgPerson\",\n },\n UserFilters = new[]\n {\n \"uid\",\n \"email\",\n },\n Timeout = \"10s\",\n IdAttribute = \"uid\",\n FirstNameAttribute = \"firstname\",\n LastNameAttribute = \"lastname\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpLdap(ctx, \"default\", \u0026zitadel.IdpLdapArgs{\n\t\t\tName: pulumi.String(\"LDAP\"),\n\t\t\tServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ldaps://my.primary.server:389\"),\n\t\t\t\tpulumi.String(\"ldaps://my.secondary.server:389\"),\n\t\t\t},\n\t\t\tStartTls: pulumi.Bool(false),\n\t\t\tBaseDn: pulumi.String(\"dc=example,dc=com\"),\n\t\t\tBindDn: pulumi.String(\"cn=admin,dc=example,dc=com\"),\n\t\t\tBindPassword: pulumi.String(\"Password1!\"),\n\t\t\tUserBase: pulumi.String(\"dn\"),\n\t\t\tUserObjectClasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"inetOrgPerson\"),\n\t\t\t},\n\t\t\tUserFilters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"uid\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tTimeout: pulumi.String(\"10s\"),\n\t\t\tIdAttribute: pulumi.String(\"uid\"),\n\t\t\tFirstNameAttribute: pulumi.String(\"firstname\"),\n\t\t\tLastNameAttribute: pulumi.String(\"lastname\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpLdap;\nimport com.pulumi.zitadel.IdpLdapArgs;\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 IdpLdap(\"default\", IdpLdapArgs.builder() \n .name(\"LDAP\")\n .servers( \n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\")\n .startTls(false)\n .baseDn(\"dc=example,dc=com\")\n .bindDn(\"cn=admin,dc=example,dc=com\")\n .bindPassword(\"Password1!\")\n .userBase(\"dn\")\n .userObjectClasses(\"inetOrgPerson\")\n .userFilters( \n \"uid\",\n \"email\")\n .timeout(\"10s\")\n .idAttribute(\"uid\")\n .firstNameAttribute(\"firstname\")\n .lastNameAttribute(\"lastname\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpLdap\n properties:\n name: LDAP\n servers:\n - ldaps://my.primary.server:389\n - ldaps://my.secondary.server:389\n startTls: false\n baseDn: dc=example,dc=com\n bindDn: cn=admin,dc=example,dc=com\n bindPassword: Password1!\n userBase: dn\n userObjectClasses:\n - inetOrgPerson\n userFilters:\n - uid\n - email\n timeout: 10s\n idAttribute: uid\n firstNameAttribute: firstname\n lastNameAttribute: lastname\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:bind_password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpLdap:IdpLdap imported '123456789012345678:b1nd_p4ssw0rd'\n```\n\n ", "properties": { "avatarUrlAttribute": { "type": "string", @@ -3426,124 +3438,442 @@ "type": "object" } }, - "zitadel:index/instanceMember:InstanceMember": { - "description": "Resource representing the membership of a user on an instance, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.InstanceMember(\"default\", {\n userId: defaultZitadelHumanUser.id,\n roles: [\"IAM_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.InstanceMember(\"default\",\n user_id=default_zitadel_human_user[\"id\"],\n roles=[\"IAM_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.InstanceMember(\"default\", new()\n {\n UserId = defaultZitadelHumanUser.Id,\n Roles = new[]\n {\n \"IAM_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewInstanceMember(ctx, \"default\", \u0026zitadel.InstanceMemberArgs{\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"IAM_OWNER\"),\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.zitadel.InstanceMember;\nimport com.pulumi.zitadel.InstanceMemberArgs;\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 InstanceMember(\"default\", InstanceMemberArgs.builder() \n .userId(defaultZitadelHumanUser.id())\n .roles(\"IAM_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:InstanceMember\n properties:\n userId: ${defaultZitadelHumanUser.id}\n roles:\n - IAM_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cuser_id\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/instanceMember:InstanceMember imported '123456789012345678'\n```\n\n ", + "zitadel:index/idpOauth:IdpOauth": { + "description": "Resource representing a generic OAuth2 IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpOauth(\"default\", {\n name: \"GitLab\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n authorizationEndpoint: \"https://accounts.google.com/o/oauth2/v2/auth\",\n tokenEndpoint: \"https://oauth2.googleapis.com/token\",\n userEndpoint: \"https://openidconnect.googleapis.com/v1/userinfo\",\n idAttribute: \"user_id\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpOauth(\"default\",\n name=\"GitLab\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n authorization_endpoint=\"https://accounts.google.com/o/oauth2/v2/auth\",\n token_endpoint=\"https://oauth2.googleapis.com/token\",\n user_endpoint=\"https://openidconnect.googleapis.com/v1/userinfo\",\n id_attribute=\"user_id\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpOauth(\"default\", new()\n {\n Name = \"GitLab\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n AuthorizationEndpoint = \"https://accounts.google.com/o/oauth2/v2/auth\",\n TokenEndpoint = \"https://oauth2.googleapis.com/token\",\n UserEndpoint = \"https://openidconnect.googleapis.com/v1/userinfo\",\n IdAttribute = \"user_id\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpOauth(ctx, \"default\", \u0026zitadel.IdpOauthArgs{\n\t\t\tName: pulumi.String(\"GitLab\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tAuthorizationEndpoint: pulumi.String(\"https://accounts.google.com/o/oauth2/v2/auth\"),\n\t\t\tTokenEndpoint: pulumi.String(\"https://oauth2.googleapis.com/token\"),\n\t\t\tUserEndpoint: pulumi.String(\"https://openidconnect.googleapis.com/v1/userinfo\"),\n\t\t\tIdAttribute: pulumi.String(\"user_id\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.IdpOauth;\nimport com.pulumi.zitadel.IdpOauthArgs;\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 IdpOauth(\"default\", IdpOauthArgs.builder() \n .name(\"GitLab\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .authorizationEndpoint(\"https://accounts.google.com/o/oauth2/v2/auth\")\n .tokenEndpoint(\"https://oauth2.googleapis.com/token\")\n .userEndpoint(\"https://openidconnect.googleapis.com/v1/userinfo\")\n .idAttribute(\"user_id\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpOauth\n properties:\n name: GitLab\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n authorizationEndpoint: https://accounts.google.com/o/oauth2/v2/auth\n tokenEndpoint: https://oauth2.googleapis.com/token\n userEndpoint: https://openidconnect.googleapis.com/v1/userinfo\n idAttribute: user_id\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpOauth:IdpOauth imported '123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { - "roles": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "scopes": { "type": "array", "items": { "type": "string" }, - "description": "List of roles granted, full list available here: https://zitadel.com/docs/guides/manage/console/managers#roles\n" + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" }, - "userId": { + "tokenEndpoint": { "type": "string", - "description": "ID of the user\n" + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" } }, "required": [ - "roles", - "userId" + "authorizationEndpoint", + "clientId", + "clientSecret", + "idAttribute", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "name", + "tokenEndpoint", + "userEndpoint" ], "inputProperties": { - "roles": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "scopes": { "type": "array", "items": { "type": "string" }, - "description": "List of roles granted, full list available here: https://zitadel.com/docs/guides/manage/console/managers#roles\n" + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" }, - "userId": { + "tokenEndpoint": { "type": "string", - "description": "ID of the user\n", - "willReplaceOnChanges": true + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" } }, "requiredInputs": [ - "roles", - "userId" + "authorizationEndpoint", + "clientId", + "clientSecret", + "idAttribute", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "tokenEndpoint", + "userEndpoint" ], "stateInputs": { - "description": "Input properties used for looking up and filtering InstanceMember resources.\n", + "description": "Input properties used for looking up and filtering IdpOauth resources.\n", "properties": { - "roles": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "scopes": { "type": "array", "items": { "type": "string" }, - "description": "List of roles granted, full list available here: https://zitadel.com/docs/guides/manage/console/managers#roles\n" + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" }, - "userId": { + "tokenEndpoint": { "type": "string", - "description": "ID of the user\n", - "willReplaceOnChanges": true + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" } }, "type": "object" } }, - "zitadel:index/labelPolicy:LabelPolicy": { - "description": "Resource representing the custom label policy of an organization.\n\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/labelPolicy:LabelPolicy imported '123456789012345678'\n```\n\n ", + "zitadel:index/idpSaml:IdpSaml": { + "description": "Resource representing a SAML IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.IdpSaml(\"default\", {\n name: \"LDAP\",\n binding: \"SAML_BINDING_POST\",\n withSignedRequest: true,\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n metadataXml: `\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n`,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.IdpSaml(\"default\",\n name=\"LDAP\",\n binding=\"SAML_BINDING_POST\",\n with_signed_request=True,\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True,\n metadata_xml=\"\"\"\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.IdpSaml(\"default\", new()\n {\n Name = \"LDAP\",\n Binding = \"SAML_BINDING_POST\",\n WithSignedRequest = true,\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n MetadataXml = @\"\u003c?xml version=\"\"1.0\"\" encoding=\"\"UTF-8\"\" standalone=\"\"no\"\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"\"urn:oasis:names:tc:SAML:2.0:metadata\"\" entityID=\"\"https://saml.example.com/entityid\"\" validUntil=\"\"2034-05-15T14:21:58.979Z\"\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"\"true\"\" protocolSupportEnumeration=\"\"urn:oasis:names:tc:SAML:2.0:protocol\"\"\u003e\n \u003cmd:KeyDescriptor use=\"\"signing\"\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"\"http://www.w3.org/2000/09/xmldsig#\"\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\" Location=\"\"https://mocksaml.com/api/saml/sso\"\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\" Location=\"\"https://mocksaml.com/api/saml/sso\"\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewIdpSaml(ctx, \"default\", \u0026zitadel.IdpSamlArgs{\n\t\t\tName: pulumi.String(\"LDAP\"),\n\t\t\tBinding: pulumi.String(\"SAML_BINDING_POST\"),\n\t\t\tWithSignedRequest: pulumi.Bool(true),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\n\t\t\tMetadataXml: pulumi.String(`\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n`),\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.zitadel.IdpSaml;\nimport com.pulumi.zitadel.IdpSamlArgs;\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 IdpSaml(\"default\", IdpSamlArgs.builder() \n .name(\"LDAP\")\n .binding(\"SAML_BINDING_POST\")\n .withSignedRequest(true)\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .metadataXml(\"\"\"\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:IdpSaml\n properties:\n name: LDAP\n binding: SAML_BINDING_POST\n withSignedRequest: true\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n metadataXml: |\n \u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n \u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\n SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\n MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\n DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\n ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\n RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\n pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\n NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\n AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\n khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\n UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\n r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\n m0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n \u003c/md:EntityDescriptor\u003e\n```\n\n{{% /example %}}\n{{% /examples %}}\n## Loading the XML Metadata\n\nIf you don't want to pass the XML metadata inline, you have plenty of options. For example:\n- local_file Data Source\n- http Data Source\n- terracurl_request Data Source\n- ...\n\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/idpSaml:IdpSaml imported '123456789012345678'\n```\n\n ", "properties": { - "backgroundColor": { - "type": "string", - "description": "hex value for background color\n" - }, - "backgroundColorDark": { + "binding": { "type": "string", - "description": "hex value for background color dark theme\n" + "description": "The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT\n" }, - "disableWatermark": { + "isAutoCreation": { "type": "boolean", - "description": "disable watermark\n" + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" }, - "fontColor": { - "type": "string", - "description": "hex value for font color\n" + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" }, - "fontColorDark": { - "type": "string", - "description": "hex value for font color dark theme\n" + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" }, - "fontHash": { - "type": "string" + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" }, - "fontPath": { - "type": "string" + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" }, - "fontUrl": { - "type": "string" + "name": { + "type": "string", + "description": "Name of the IDP\n" }, - "hideLoginNameSuffix": { + "withSignedRequest": { "type": "boolean", - "description": "hides the org suffix on the login form if the scope \"urn:zitadel:iam:org:domain:primary:{domainname}\" is set. Details about this scope in https://zitadel.com/docs/apis/openidoauth/scopes#reserved-scopes\n" - }, - "iconDarkHash": { - "type": "string" - }, - "iconDarkPath": { - "type": "string" + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "required": [ + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "metadataXml", + "name" + ], + "inputProperties": { + "binding": { + "type": "string", + "description": "The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT\n" }, - "iconHash": { - "type": "string" + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" }, - "iconPath": { - "type": "string" + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" }, - "iconUrl": { - "type": "string" + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" }, - "iconUrlDark": { - "type": "string" + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" }, - "logoDarkHash": { - "type": "string" + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" }, - "logoDarkPath": { - "type": "string" + "name": { + "type": "string", + "description": "Name of the IDP\n" }, - "logoHash": { - "type": "string" + "withSignedRequest": { + "type": "boolean", + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "requiredInputs": [ + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "metadataXml" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering IdpSaml resources.\n", + "properties": { + "binding": { + "type": "string", + "description": "The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "withSignedRequest": { + "type": "boolean", + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "type": "object" + } + }, + "zitadel:index/instanceMember:InstanceMember": { + "description": "Resource representing the membership of a user on an instance, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.InstanceMember(\"default\", {\n userId: defaultZitadelHumanUser.id,\n roles: [\"IAM_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.InstanceMember(\"default\",\n user_id=default_zitadel_human_user[\"id\"],\n roles=[\"IAM_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.InstanceMember(\"default\", new()\n {\n UserId = defaultZitadelHumanUser.Id,\n Roles = new[]\n {\n \"IAM_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewInstanceMember(ctx, \"default\", \u0026zitadel.InstanceMemberArgs{\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"IAM_OWNER\"),\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.zitadel.InstanceMember;\nimport com.pulumi.zitadel.InstanceMemberArgs;\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 InstanceMember(\"default\", InstanceMemberArgs.builder() \n .userId(defaultZitadelHumanUser.id())\n .roles(\"IAM_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:InstanceMember\n properties:\n userId: ${defaultZitadelHumanUser.id}\n roles:\n - IAM_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cuser_id\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/instanceMember:InstanceMember imported '123456789012345678'\n```\n\n ", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of roles granted, full list available here: https://zitadel.com/docs/guides/manage/console/managers#roles\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n" + } + }, + "required": [ + "roles", + "userId" + ], + "inputProperties": { + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of roles granted, full list available here: https://zitadel.com/docs/guides/manage/console/managers#roles\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "roles", + "userId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering InstanceMember resources.\n", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of roles granted, full list available here: https://zitadel.com/docs/guides/manage/console/managers#roles\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, + "zitadel:index/labelPolicy:LabelPolicy": { + "description": "Resource representing the custom label policy of an organization.\n\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/labelPolicy:LabelPolicy imported '123456789012345678'\n```\n\n ", + "properties": { + "backgroundColor": { + "type": "string", + "description": "hex value for background color\n" + }, + "backgroundColorDark": { + "type": "string", + "description": "hex value for background color dark theme\n" + }, + "disableWatermark": { + "type": "boolean", + "description": "disable watermark\n" + }, + "fontColor": { + "type": "string", + "description": "hex value for font color\n" + }, + "fontColorDark": { + "type": "string", + "description": "hex value for font color dark theme\n" + }, + "fontHash": { + "type": "string" + }, + "fontPath": { + "type": "string" + }, + "fontUrl": { + "type": "string" + }, + "hideLoginNameSuffix": { + "type": "boolean", + "description": "hides the org suffix on the login form if the scope \"urn:zitadel:iam:org:domain:primary:{domainname}\" is set. Details about this scope in https://zitadel.com/docs/apis/openidoauth/scopes#reserved-scopes\n" + }, + "iconDarkHash": { + "type": "string" + }, + "iconDarkPath": { + "type": "string" + }, + "iconHash": { + "type": "string" + }, + "iconPath": { + "type": "string" + }, + "iconUrl": { + "type": "string" + }, + "iconUrlDark": { + "type": "string" + }, + "logoDarkHash": { + "type": "string" + }, + "logoDarkPath": { + "type": "string" + }, + "logoHash": { + "type": "string" }, "logoPath": { "type": "string" @@ -3570,6 +3900,10 @@ "type": "boolean", "description": "set the label policy active after creating/updating\n" }, + "themeMode": { + "type": "string", + "description": "theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT\n" + }, "warnColor": { "type": "string", "description": "hex value for warn color\n" @@ -3668,6 +4002,10 @@ "type": "boolean", "description": "set the label policy active after creating/updating\n" }, + "themeMode": { + "type": "string", + "description": "theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT\n" + }, "warnColor": { "type": "string", "description": "hex value for warn color\n" @@ -3778,6 +4116,10 @@ "type": "boolean", "description": "set the label policy active after creating/updating\n" }, + "themeMode": { + "type": "string", + "description": "theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT\n" + }, "warnColor": { "type": "string", "description": "hex value for warn color\n" @@ -3791,7 +4133,7 @@ } }, "zitadel:index/lockoutPolicy:LockoutPolicy": { - "description": "Resource representing the custom lockout policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.LockoutPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n maxPasswordAttempts: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.LockoutPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n max_password_attempts=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.LockoutPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n MaxPasswordAttempts = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewLockoutPolicy(ctx, \"default\", \u0026zitadel.LockoutPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tMaxPasswordAttempts: pulumi.Int(5),\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.zitadel.LockoutPolicy;\nimport com.pulumi.zitadel.LockoutPolicyArgs;\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 LockoutPolicy(\"default\", LockoutPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .maxPasswordAttempts(\"5\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:LockoutPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n maxPasswordAttempts: '5'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/lockoutPolicy:LockoutPolicy imported '123456789012345678'\n```\n\n ", + "description": "Resource representing the custom lockout policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.LockoutPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n maxPasswordAttempts: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.LockoutPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n max_password_attempts=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.LockoutPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n MaxPasswordAttempts = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewLockoutPolicy(ctx, \"default\", \u0026zitadel.LockoutPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tMaxPasswordAttempts: pulumi.Int(5),\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.zitadel.LockoutPolicy;\nimport com.pulumi.zitadel.LockoutPolicyArgs;\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 LockoutPolicy(\"default\", LockoutPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .maxPasswordAttempts(\"5\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:LockoutPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n maxPasswordAttempts: '5'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/lockoutPolicy:LockoutPolicy imported '123456789012345678'\n```\n\n ", "properties": { "maxPasswordAttempts": { "type": "integer", @@ -3836,7 +4178,7 @@ } }, "zitadel:index/loginPolicy:LoginPolicy": { - "description": "Resource representing the custom login policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.LoginPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n userLogin: true,\n allowRegister: true,\n allowExternalIdp: true,\n forceMfa: false,\n forceMfaLocalOnly: false,\n passwordlessType: \"PASSWORDLESS_TYPE_ALLOWED\",\n hidePasswordReset: false,\n passwordCheckLifetime: \"240h0m0s\",\n externalLoginCheckLifetime: \"240h0m0s\",\n multiFactorCheckLifetime: \"24h0m0s\",\n mfaInitSkipLifetime: \"720h0m0s\",\n secondFactorCheckLifetime: \"24h0m0s\",\n ignoreUnknownUsernames: true,\n defaultRedirectUri: \"localhost:8080\",\n secondFactors: [\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multiFactors: [\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps: [\n defaultZitadelIdpGoogle.id,\n defaultZitadelIdpAzureAd.id,\n ],\n allowDomainDiscovery: true,\n disableLoginWithEmail: true,\n disableLoginWithPhone: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.LoginPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_login=True,\n allow_register=True,\n allow_external_idp=True,\n force_mfa=False,\n force_mfa_local_only=False,\n passwordless_type=\"PASSWORDLESS_TYPE_ALLOWED\",\n hide_password_reset=False,\n password_check_lifetime=\"240h0m0s\",\n external_login_check_lifetime=\"240h0m0s\",\n multi_factor_check_lifetime=\"24h0m0s\",\n mfa_init_skip_lifetime=\"720h0m0s\",\n second_factor_check_lifetime=\"24h0m0s\",\n ignore_unknown_usernames=True,\n default_redirect_uri=\"localhost:8080\",\n second_factors=[\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multi_factors=[\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps=[\n default_zitadel_idp_google[\"id\"],\n default_zitadel_idp_azure_ad[\"id\"],\n ],\n allow_domain_discovery=True,\n disable_login_with_email=True,\n disable_login_with_phone=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.LoginPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserLogin = true,\n AllowRegister = true,\n AllowExternalIdp = true,\n ForceMfa = false,\n ForceMfaLocalOnly = false,\n PasswordlessType = \"PASSWORDLESS_TYPE_ALLOWED\",\n HidePasswordReset = false,\n PasswordCheckLifetime = \"240h0m0s\",\n ExternalLoginCheckLifetime = \"240h0m0s\",\n MultiFactorCheckLifetime = \"24h0m0s\",\n MfaInitSkipLifetime = \"720h0m0s\",\n SecondFactorCheckLifetime = \"24h0m0s\",\n IgnoreUnknownUsernames = true,\n DefaultRedirectUri = \"localhost:8080\",\n SecondFactors = new[]\n {\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n },\n MultiFactors = new[]\n {\n \"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\",\n },\n Idps = new[]\n {\n defaultZitadelIdpGoogle.Id,\n defaultZitadelIdpAzureAd.Id,\n },\n AllowDomainDiscovery = true,\n DisableLoginWithEmail = true,\n DisableLoginWithPhone = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewLoginPolicy(ctx, \"default\", \u0026zitadel.LoginPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserLogin: pulumi.Bool(true),\n\t\t\tAllowRegister: pulumi.Bool(true),\n\t\t\tAllowExternalIdp: pulumi.Bool(true),\n\t\t\tForceMfa: pulumi.Bool(false),\n\t\t\tForceMfaLocalOnly: pulumi.Bool(false),\n\t\t\tPasswordlessType: pulumi.String(\"PASSWORDLESS_TYPE_ALLOWED\"),\n\t\t\tHidePasswordReset: pulumi.Bool(false),\n\t\t\tPasswordCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tExternalLoginCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tMultiFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tMfaInitSkipLifetime: pulumi.String(\"720h0m0s\"),\n\t\t\tSecondFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tIgnoreUnknownUsernames: pulumi.Bool(true),\n\t\t\tDefaultRedirectUri: pulumi.String(\"localhost:8080\"),\n\t\t\tSecondFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_OTP\"),\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_U2F\"),\n\t\t\t},\n\t\t\tMultiFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"),\n\t\t\t},\n\t\t\tIdps: pulumi.StringArray{\n\t\t\t\tdefaultZitadelIdpGoogle.Id,\n\t\t\t\tdefaultZitadelIdpAzureAd.Id,\n\t\t\t},\n\t\t\tAllowDomainDiscovery: pulumi.Bool(true),\n\t\t\tDisableLoginWithEmail: pulumi.Bool(true),\n\t\t\tDisableLoginWithPhone: pulumi.Bool(true),\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.zitadel.LoginPolicy;\nimport com.pulumi.zitadel.LoginPolicyArgs;\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 LoginPolicy(\"default\", LoginPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userLogin(true)\n .allowRegister(true)\n .allowExternalIdp(true)\n .forceMfa(false)\n .forceMfaLocalOnly(false)\n .passwordlessType(\"PASSWORDLESS_TYPE_ALLOWED\")\n .hidePasswordReset(\"false\")\n .passwordCheckLifetime(\"240h0m0s\")\n .externalLoginCheckLifetime(\"240h0m0s\")\n .multiFactorCheckLifetime(\"24h0m0s\")\n .mfaInitSkipLifetime(\"720h0m0s\")\n .secondFactorCheckLifetime(\"24h0m0s\")\n .ignoreUnknownUsernames(true)\n .defaultRedirectUri(\"localhost:8080\")\n .secondFactors( \n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\")\n .multiFactors(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\")\n .idps( \n defaultZitadelIdpGoogle.id(),\n defaultZitadelIdpAzureAd.id())\n .allowDomainDiscovery(true)\n .disableLoginWithEmail(true)\n .disableLoginWithPhone(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:LoginPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n userLogin: true\n allowRegister: true\n allowExternalIdp: true\n forceMfa: false\n forceMfaLocalOnly: false\n passwordlessType: PASSWORDLESS_TYPE_ALLOWED\n hidePasswordReset: 'false'\n passwordCheckLifetime: 240h0m0s\n externalLoginCheckLifetime: 240h0m0s\n multiFactorCheckLifetime: 24h0m0s\n mfaInitSkipLifetime: 720h0m0s\n secondFactorCheckLifetime: 24h0m0s\n ignoreUnknownUsernames: true\n defaultRedirectUri: localhost:8080\n secondFactors:\n - SECOND_FACTOR_TYPE_OTP\n - SECOND_FACTOR_TYPE_U2F\n multiFactors:\n - MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\n idps:\n - ${defaultZitadelIdpGoogle.id}\n - ${defaultZitadelIdpAzureAd.id}\n allowDomainDiscovery: true\n disableLoginWithEmail: true\n disableLoginWithPhone: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/loginPolicy:LoginPolicy imported '123456789012345678'\n```\n\n ", + "description": "Resource representing the custom login policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.LoginPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n userLogin: true,\n allowRegister: true,\n allowExternalIdp: true,\n forceMfa: false,\n forceMfaLocalOnly: false,\n passwordlessType: \"PASSWORDLESS_TYPE_ALLOWED\",\n hidePasswordReset: false,\n passwordCheckLifetime: \"240h0m0s\",\n externalLoginCheckLifetime: \"240h0m0s\",\n multiFactorCheckLifetime: \"24h0m0s\",\n mfaInitSkipLifetime: \"720h0m0s\",\n secondFactorCheckLifetime: \"24h0m0s\",\n ignoreUnknownUsernames: true,\n defaultRedirectUri: \"localhost:8080\",\n secondFactors: [\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multiFactors: [\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps: [\n defaultZitadelIdpGoogle.id,\n defaultZitadelIdpAzureAd.id,\n ],\n allowDomainDiscovery: true,\n disableLoginWithEmail: true,\n disableLoginWithPhone: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.LoginPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_login=True,\n allow_register=True,\n allow_external_idp=True,\n force_mfa=False,\n force_mfa_local_only=False,\n passwordless_type=\"PASSWORDLESS_TYPE_ALLOWED\",\n hide_password_reset=False,\n password_check_lifetime=\"240h0m0s\",\n external_login_check_lifetime=\"240h0m0s\",\n multi_factor_check_lifetime=\"24h0m0s\",\n mfa_init_skip_lifetime=\"720h0m0s\",\n second_factor_check_lifetime=\"24h0m0s\",\n ignore_unknown_usernames=True,\n default_redirect_uri=\"localhost:8080\",\n second_factors=[\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n ],\n multi_factors=[\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"],\n idps=[\n default_zitadel_idp_google[\"id\"],\n default_zitadel_idp_azure_ad[\"id\"],\n ],\n allow_domain_discovery=True,\n disable_login_with_email=True,\n disable_login_with_phone=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.LoginPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserLogin = true,\n AllowRegister = true,\n AllowExternalIdp = true,\n ForceMfa = false,\n ForceMfaLocalOnly = false,\n PasswordlessType = \"PASSWORDLESS_TYPE_ALLOWED\",\n HidePasswordReset = false,\n PasswordCheckLifetime = \"240h0m0s\",\n ExternalLoginCheckLifetime = \"240h0m0s\",\n MultiFactorCheckLifetime = \"24h0m0s\",\n MfaInitSkipLifetime = \"720h0m0s\",\n SecondFactorCheckLifetime = \"24h0m0s\",\n IgnoreUnknownUsernames = true,\n DefaultRedirectUri = \"localhost:8080\",\n SecondFactors = new[]\n {\n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\",\n },\n MultiFactors = new[]\n {\n \"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\",\n },\n Idps = new[]\n {\n defaultZitadelIdpGoogle.Id,\n defaultZitadelIdpAzureAd.Id,\n },\n AllowDomainDiscovery = true,\n DisableLoginWithEmail = true,\n DisableLoginWithPhone = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewLoginPolicy(ctx, \"default\", \u0026zitadel.LoginPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserLogin: pulumi.Bool(true),\n\t\t\tAllowRegister: pulumi.Bool(true),\n\t\t\tAllowExternalIdp: pulumi.Bool(true),\n\t\t\tForceMfa: pulumi.Bool(false),\n\t\t\tForceMfaLocalOnly: pulumi.Bool(false),\n\t\t\tPasswordlessType: pulumi.String(\"PASSWORDLESS_TYPE_ALLOWED\"),\n\t\t\tHidePasswordReset: pulumi.Bool(false),\n\t\t\tPasswordCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tExternalLoginCheckLifetime: pulumi.String(\"240h0m0s\"),\n\t\t\tMultiFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tMfaInitSkipLifetime: pulumi.String(\"720h0m0s\"),\n\t\t\tSecondFactorCheckLifetime: pulumi.String(\"24h0m0s\"),\n\t\t\tIgnoreUnknownUsernames: pulumi.Bool(true),\n\t\t\tDefaultRedirectUri: pulumi.String(\"localhost:8080\"),\n\t\t\tSecondFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_OTP\"),\n\t\t\t\tpulumi.String(\"SECOND_FACTOR_TYPE_U2F\"),\n\t\t\t},\n\t\t\tMultiFactors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\"),\n\t\t\t},\n\t\t\tIdps: pulumi.StringArray{\n\t\t\t\tdefaultZitadelIdpGoogle.Id,\n\t\t\t\tdefaultZitadelIdpAzureAd.Id,\n\t\t\t},\n\t\t\tAllowDomainDiscovery: pulumi.Bool(true),\n\t\t\tDisableLoginWithEmail: pulumi.Bool(true),\n\t\t\tDisableLoginWithPhone: pulumi.Bool(true),\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.zitadel.LoginPolicy;\nimport com.pulumi.zitadel.LoginPolicyArgs;\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 LoginPolicy(\"default\", LoginPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userLogin(true)\n .allowRegister(true)\n .allowExternalIdp(true)\n .forceMfa(false)\n .forceMfaLocalOnly(false)\n .passwordlessType(\"PASSWORDLESS_TYPE_ALLOWED\")\n .hidePasswordReset(\"false\")\n .passwordCheckLifetime(\"240h0m0s\")\n .externalLoginCheckLifetime(\"240h0m0s\")\n .multiFactorCheckLifetime(\"24h0m0s\")\n .mfaInitSkipLifetime(\"720h0m0s\")\n .secondFactorCheckLifetime(\"24h0m0s\")\n .ignoreUnknownUsernames(true)\n .defaultRedirectUri(\"localhost:8080\")\n .secondFactors( \n \"SECOND_FACTOR_TYPE_OTP\",\n \"SECOND_FACTOR_TYPE_U2F\")\n .multiFactors(\"MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\")\n .idps( \n defaultZitadelIdpGoogle.id(),\n defaultZitadelIdpAzureAd.id())\n .allowDomainDiscovery(true)\n .disableLoginWithEmail(true)\n .disableLoginWithPhone(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:LoginPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n userLogin: true\n allowRegister: true\n allowExternalIdp: true\n forceMfa: false\n forceMfaLocalOnly: false\n passwordlessType: PASSWORDLESS_TYPE_ALLOWED\n hidePasswordReset: 'false'\n passwordCheckLifetime: 240h0m0s\n externalLoginCheckLifetime: 240h0m0s\n multiFactorCheckLifetime: 24h0m0s\n mfaInitSkipLifetime: 720h0m0s\n secondFactorCheckLifetime: 24h0m0s\n ignoreUnknownUsernames: true\n defaultRedirectUri: localhost:8080\n secondFactors:\n - SECOND_FACTOR_TYPE_OTP\n - SECOND_FACTOR_TYPE_U2F\n multiFactors:\n - MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION\n idps:\n - ${defaultZitadelIdpGoogle.id}\n - ${defaultZitadelIdpAzureAd.id}\n allowDomainDiscovery: true\n disableLoginWithEmail: true\n disableLoginWithPhone: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/loginPolicy:LoginPolicy imported '123456789012345678'\n```\n\n ", "properties": { "allowDomainDiscovery": { "type": "boolean", @@ -4147,7 +4489,7 @@ } }, "zitadel:index/machineKey:MachineKey": { - "description": "Resource representing a machine key\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.MachineKey(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelMachineUser.id,\n keyType: \"KEY_TYPE_JSON\",\n expirationDate: \"2519-04-01T08:45:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.MachineKey(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_machine_user[\"id\"],\n key_type=\"KEY_TYPE_JSON\",\n expiration_date=\"2519-04-01T08:45:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.MachineKey(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelMachineUser.Id,\n KeyType = \"KEY_TYPE_JSON\",\n ExpirationDate = \"2519-04-01T08:45:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewMachineKey(ctx, \"default\", \u0026zitadel.MachineKeyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelMachineUser.Id),\n\t\t\tKeyType: pulumi.String(\"KEY_TYPE_JSON\"),\n\t\t\tExpirationDate: pulumi.String(\"2519-04-01T08:45:00Z\"),\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.zitadel.MachineKey;\nimport com.pulumi.zitadel.MachineKeyArgs;\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 MachineKey(\"default\", MachineKeyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelMachineUser.id())\n .keyType(\"KEY_TYPE_JSON\")\n .expirationDate(\"2519-04-01T08:45:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:MachineKey\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelMachineUser.id}\n keyType: KEY_TYPE_JSON\n expirationDate: 2519-04-01T08:45:00Z\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:user_id[:org_id][:key_details]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/machineKey:MachineKey imported '123456789012345678:123456789012345678:123456789012345678:{\"type\":\"serviceaccount\",\"keyId\":\"123456789012345678\",\"key\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIEpQ...-----END RSA PRIVATE KEY-----\\n\",\"userId\":\"123456789012345678\"}'\n```\n\n ", + "description": "Resource representing a machine key\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.MachineKey(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelMachineUser.id,\n keyType: \"KEY_TYPE_JSON\",\n expirationDate: \"2519-04-01T08:45:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.MachineKey(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_machine_user[\"id\"],\n key_type=\"KEY_TYPE_JSON\",\n expiration_date=\"2519-04-01T08:45:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.MachineKey(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelMachineUser.Id,\n KeyType = \"KEY_TYPE_JSON\",\n ExpirationDate = \"2519-04-01T08:45:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewMachineKey(ctx, \"default\", \u0026zitadel.MachineKeyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelMachineUser.Id),\n\t\t\tKeyType: pulumi.String(\"KEY_TYPE_JSON\"),\n\t\t\tExpirationDate: pulumi.String(\"2519-04-01T08:45:00Z\"),\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.zitadel.MachineKey;\nimport com.pulumi.zitadel.MachineKeyArgs;\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 MachineKey(\"default\", MachineKeyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelMachineUser.id())\n .keyType(\"KEY_TYPE_JSON\")\n .expirationDate(\"2519-04-01T08:45:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:MachineKey\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelMachineUser.id}\n keyType: KEY_TYPE_JSON\n expirationDate: 2519-04-01T08:45:00Z\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:user_id[:org_id][:key_details]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/machineKey:MachineKey imported '123456789012345678:123456789012345678:123456789012345678:{\"type\":\"serviceaccount\",\"keyId\":\"123456789012345678\",\"key\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIEpQ...-----END RSA PRIVATE KEY-----\\n\",\"userId\":\"123456789012345678\"}'\n```\n\n ", "properties": { "expirationDate": { "type": "string", @@ -4236,7 +4578,7 @@ } }, "zitadel:index/machineUser:MachineUser": { - "description": "Resource representing a serviceaccount situated under an organization, which then can be authorized through memberships or direct grants on other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.MachineUser(\"default\", {\n orgId: defaultZitadelOrg.id,\n userName: \"machine@example.com\",\n name: \"name\",\n description: \"a machine user\",\n withSecret: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.MachineUser(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_name=\"machine@example.com\",\n name=\"name\",\n description=\"a machine user\",\n with_secret=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.MachineUser(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserName = \"machine@example.com\",\n Name = \"name\",\n Description = \"a machine user\",\n WithSecret = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewMachineUser(ctx, \"default\", \u0026zitadel.MachineUserArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserName: pulumi.String(\"machine@example.com\"),\n\t\t\tName: pulumi.String(\"name\"),\n\t\t\tDescription: pulumi.String(\"a machine user\"),\n\t\t\tWithSecret: pulumi.Bool(false),\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.zitadel.MachineUser;\nimport com.pulumi.zitadel.MachineUserArgs;\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 MachineUser(\"default\", MachineUserArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userName(\"machine@example.com\")\n .name(\"name\")\n .description(\"a machine user\")\n .withSecret(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:MachineUser\n properties:\n orgId: ${defaultZitadelOrg.id}\n userName: machine@example.com\n name: name\n description: a machine user\n withSecret: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:has_secret[:org_id][:client_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/machineUser:MachineUser imported '123456789012345678:123456789012345678:true:my-machine-user:j76mh34CHVrGGoXPQOg80lch67FIxwc2qIXjBkZoB6oMbf31eGMkB6bvRyaPjR2t'\n```\n\n ", + "description": "Resource representing a serviceaccount situated under an organization, which then can be authorized through memberships or direct grants on other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.MachineUser(\"default\", {\n orgId: defaultZitadelOrg.id,\n userName: \"machine@example.com\",\n name: \"name\",\n description: \"a machine user\",\n withSecret: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.MachineUser(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_name=\"machine@example.com\",\n name=\"name\",\n description=\"a machine user\",\n with_secret=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.MachineUser(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserName = \"machine@example.com\",\n Name = \"name\",\n Description = \"a machine user\",\n WithSecret = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewMachineUser(ctx, \"default\", \u0026zitadel.MachineUserArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserName: pulumi.String(\"machine@example.com\"),\n\t\t\tName: pulumi.String(\"name\"),\n\t\t\tDescription: pulumi.String(\"a machine user\"),\n\t\t\tWithSecret: pulumi.Bool(false),\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.zitadel.MachineUser;\nimport com.pulumi.zitadel.MachineUserArgs;\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 MachineUser(\"default\", MachineUserArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userName(\"machine@example.com\")\n .name(\"name\")\n .description(\"a machine user\")\n .withSecret(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:MachineUser\n properties:\n orgId: ${defaultZitadelOrg.id}\n userName: machine@example.com\n name: name\n description: a machine user\n withSecret: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:has_secret[:org_id][:client_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/machineUser:MachineUser imported '123456789012345678:123456789012345678:true:my-machine-user:j76mh34CHVrGGoXPQOg80lch67FIxwc2qIXjBkZoB6oMbf31eGMkB6bvRyaPjR2t'\n```\n\n ", "properties": { "accessTokenType": { "type": "string", @@ -4385,7 +4727,7 @@ } }, "zitadel:index/notificationPolicy:NotificationPolicy": { - "description": "Resource representing the custom notification policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.NotificationPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n passwordChange: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.NotificationPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n password_change=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.NotificationPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n PasswordChange = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewNotificationPolicy(ctx, \"default\", \u0026zitadel.NotificationPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tPasswordChange: pulumi.Bool(false),\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.zitadel.NotificationPolicy;\nimport com.pulumi.zitadel.NotificationPolicyArgs;\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 NotificationPolicy(\"default\", NotificationPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .passwordChange(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:NotificationPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n passwordChange: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/notificationPolicy:NotificationPolicy imported '123456789012345678'\n```\n\n ", + "description": "Resource representing the custom notification policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.NotificationPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n passwordChange: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.NotificationPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n password_change=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.NotificationPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n PasswordChange = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewNotificationPolicy(ctx, \"default\", \u0026zitadel.NotificationPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tPasswordChange: pulumi.Bool(false),\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.zitadel.NotificationPolicy;\nimport com.pulumi.zitadel.NotificationPolicyArgs;\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 NotificationPolicy(\"default\", NotificationPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .passwordChange(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:NotificationPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n passwordChange: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/notificationPolicy:NotificationPolicy imported '123456789012345678'\n```\n\n ", "properties": { "orgId": { "type": "string", @@ -4430,7 +4772,7 @@ } }, "zitadel:index/org:Org": { - "description": "Resource representing an organization in ZITADEL, which is the highest level after the instance and contains several other resource including policies if the configuration differs to the default policies on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Org(\"default\", {name: \"terraform-test\"});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Org(\"default\", name=\"terraform-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Org(\"default\", new()\n {\n Name = \"terraform-test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrg(ctx, \"default\", \u0026zitadel.OrgArgs{\n\t\t\tName: pulumi.String(\"terraform-test\"),\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.zitadel.Org;\nimport com.pulumi.zitadel.OrgArgs;\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 Org(\"default\", OrgArgs.builder() \n .name(\"terraform-test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Org\n properties:\n name: terraform-test\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/org:Org imported '123456789012345678'\n```\n\n ", + "description": "Resource representing an organization in ZITADEL, which is the highest level after the instance and contains several other resource including policies if the configuration differs to the default policies on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Org(\"default\", {name: \"terraform-test\"});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Org(\"default\", name=\"terraform-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Org(\"default\", new()\n {\n Name = \"terraform-test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrg(ctx, \"default\", \u0026zitadel.OrgArgs{\n\t\t\tName: pulumi.String(\"terraform-test\"),\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.zitadel.Org;\nimport com.pulumi.zitadel.OrgArgs;\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 Org(\"default\", OrgArgs.builder() \n .name(\"terraform-test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Org\n properties:\n name: terraform-test\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/org:Org imported '123456789012345678'\n```\n\n ", "properties": { "isDefault": { "type": "boolean", @@ -4488,7 +4830,7 @@ } }, "zitadel:index/orgIdpAzureAd:OrgIdpAzureAd": { - "description": "Resource representing an Azure AD IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpAzureAd(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"Azure AD\",\n clientId: \"9065bfc8-a08a...\",\n clientSecret: \"H2n***\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenantType: \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n emailVerified: true,\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpAzureAd(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"Azure AD\",\n client_id=\"9065bfc8-a08a...\",\n client_secret=\"H2n***\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenant_type=\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n email_verified=True,\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpAzureAd(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"Azure AD\",\n ClientId = \"9065bfc8-a08a...\",\n ClientSecret = \"H2n***\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n },\n TenantType = \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n EmailVerified = true,\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpAzureAd(ctx, \"default\", \u0026zitadel.OrgIdpAzureAdArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"Azure AD\"),\n\t\t\tClientId: pulumi.String(\"9065bfc8-a08a...\"),\n\t\t\tClientSecret: pulumi.String(\"H2n***\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t\tpulumi.String(\"User.Read\"),\n\t\t\t},\n\t\t\tTenantType: pulumi.String(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\"),\n\t\t\tEmailVerified: pulumi.Bool(true),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpAzureAd;\nimport com.pulumi.zitadel.OrgIdpAzureAdArgs;\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 OrgIdpAzureAd(\"default\", OrgIdpAzureAdArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"Azure AD\")\n .clientId(\"9065bfc8-a08a...\")\n .clientSecret(\"H2n***\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\")\n .tenantType(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\")\n .emailVerified(true)\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpAzureAd\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: Azure AD\n clientId: 9065bfc8-a08a...\n clientSecret: H2n***\n scopes:\n - openid\n - profile\n - email\n - User.Read\n tenantType: AZURE_AD_TENANT_TYPE_ORGANISATIONS\n emailVerified: true\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpAzureAd:OrgIdpAzureAd imported '123456789012345678:123456789012345678:12345678-1234-1234-1234-123456789012'\n```\n\n ", + "description": "Resource representing an Azure AD IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpAzureAd(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"Azure AD\",\n clientId: \"9065bfc8-a08a...\",\n clientSecret: \"H2n***\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenantType: \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n emailVerified: true,\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpAzureAd(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"Azure AD\",\n client_id=\"9065bfc8-a08a...\",\n client_secret=\"H2n***\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n ],\n tenant_type=\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n email_verified=True,\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpAzureAd(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"Azure AD\",\n ClientId = \"9065bfc8-a08a...\",\n ClientSecret = \"H2n***\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\",\n },\n TenantType = \"AZURE_AD_TENANT_TYPE_ORGANISATIONS\",\n EmailVerified = true,\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpAzureAd(ctx, \"default\", \u0026zitadel.OrgIdpAzureAdArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"Azure AD\"),\n\t\t\tClientId: pulumi.String(\"9065bfc8-a08a...\"),\n\t\t\tClientSecret: pulumi.String(\"H2n***\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t\tpulumi.String(\"User.Read\"),\n\t\t\t},\n\t\t\tTenantType: pulumi.String(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\"),\n\t\t\tEmailVerified: pulumi.Bool(true),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpAzureAd;\nimport com.pulumi.zitadel.OrgIdpAzureAdArgs;\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 OrgIdpAzureAd(\"default\", OrgIdpAzureAdArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"Azure AD\")\n .clientId(\"9065bfc8-a08a...\")\n .clientSecret(\"H2n***\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\",\n \"User.Read\")\n .tenantType(\"AZURE_AD_TENANT_TYPE_ORGANISATIONS\")\n .emailVerified(true)\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpAzureAd\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: Azure AD\n clientId: 9065bfc8-a08a...\n clientSecret: H2n***\n scopes:\n - openid\n - profile\n - email\n - User.Read\n tenantType: AZURE_AD_TENANT_TYPE_ORGANISATIONS\n emailVerified: true\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpAzureAd:OrgIdpAzureAd imported '123456789012345678:123456789012345678:12345678-1234-1234-1234-123456789012'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -4678,7 +5020,7 @@ } }, "zitadel:index/orgIdpGithub:OrgIdpGithub": { - "description": "Resource representing a GitHub IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGithub(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitHub\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGithub(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitHub\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGithub(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitHub\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGithub(ctx, \"default\", \u0026zitadel.OrgIdpGithubArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitHub\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGithub;\nimport com.pulumi.zitadel.OrgIdpGithubArgs;\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 OrgIdpGithub(\"default\", OrgIdpGithubArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitHub\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGithub\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitHub\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGithub:OrgIdpGithub imported '123456789012345678:123456789012345678:1234567890123456781234567890123456787890'\n```\n\n ", + "description": "Resource representing a GitHub IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGithub(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitHub\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGithub(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitHub\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGithub(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitHub\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGithub(ctx, \"default\", \u0026zitadel.OrgIdpGithubArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitHub\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGithub;\nimport com.pulumi.zitadel.OrgIdpGithubArgs;\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 OrgIdpGithub(\"default\", OrgIdpGithubArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitHub\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGithub\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitHub\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGithub:OrgIdpGithub imported '123456789012345678:123456789012345678:1234567890123456781234567890123456787890'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -4830,7 +5172,7 @@ } }, "zitadel:index/orgIdpGithubEs:OrgIdpGithubEs": { - "description": "Resource representing a GitHub Enterprise IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGithubEs(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitHub Enterprise Server\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorizationEndpoint: \"https://auth.endpoint\",\n tokenEndpoint: \"https://token.endpoint\",\n userEndpoint: \"https://user.endpoint\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGithubEs(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitHub Enterprise Server\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorization_endpoint=\"https://auth.endpoint\",\n token_endpoint=\"https://token.endpoint\",\n user_endpoint=\"https://user.endpoint\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGithubEs(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitHub Enterprise Server\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n AuthorizationEndpoint = \"https://auth.endpoint\",\n TokenEndpoint = \"https://token.endpoint\",\n UserEndpoint = \"https://user.endpoint\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGithubEs(ctx, \"default\", \u0026zitadel.OrgIdpGithubEsArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitHub Enterprise Server\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tAuthorizationEndpoint: pulumi.String(\"https://auth.endpoint\"),\n\t\t\tTokenEndpoint: pulumi.String(\"https://token.endpoint\"),\n\t\t\tUserEndpoint: pulumi.String(\"https://user.endpoint\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGithubEs;\nimport com.pulumi.zitadel.OrgIdpGithubEsArgs;\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 OrgIdpGithubEs(\"default\", OrgIdpGithubEsArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitHub Enterprise Server\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .authorizationEndpoint(\"https://auth.endpoint\")\n .tokenEndpoint(\"https://token.endpoint\")\n .userEndpoint(\"https://user.endpoint\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGithubEs\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitHub Enterprise Server\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n authorizationEndpoint: https://auth.endpoint\n tokenEndpoint: https://token.endpoint\n userEndpoint: https://user.endpoint\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGithubEs:OrgIdpGithubEs imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing a GitHub Enterprise IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGithubEs(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitHub Enterprise Server\",\n clientId: \"86a165...\",\n clientSecret: \"*****afdbac18\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorizationEndpoint: \"https://auth.endpoint\",\n tokenEndpoint: \"https://token.endpoint\",\n userEndpoint: \"https://user.endpoint\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGithubEs(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitHub Enterprise Server\",\n client_id=\"86a165...\",\n client_secret=\"*****afdbac18\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n authorization_endpoint=\"https://auth.endpoint\",\n token_endpoint=\"https://token.endpoint\",\n user_endpoint=\"https://user.endpoint\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGithubEs(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitHub Enterprise Server\",\n ClientId = \"86a165...\",\n ClientSecret = \"*****afdbac18\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n AuthorizationEndpoint = \"https://auth.endpoint\",\n TokenEndpoint = \"https://token.endpoint\",\n UserEndpoint = \"https://user.endpoint\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGithubEs(ctx, \"default\", \u0026zitadel.OrgIdpGithubEsArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitHub Enterprise Server\"),\n\t\t\tClientId: pulumi.String(\"86a165...\"),\n\t\t\tClientSecret: pulumi.String(\"*****afdbac18\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tAuthorizationEndpoint: pulumi.String(\"https://auth.endpoint\"),\n\t\t\tTokenEndpoint: pulumi.String(\"https://token.endpoint\"),\n\t\t\tUserEndpoint: pulumi.String(\"https://user.endpoint\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGithubEs;\nimport com.pulumi.zitadel.OrgIdpGithubEsArgs;\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 OrgIdpGithubEs(\"default\", OrgIdpGithubEsArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitHub Enterprise Server\")\n .clientId(\"86a165...\")\n .clientSecret(\"*****afdbac18\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .authorizationEndpoint(\"https://auth.endpoint\")\n .tokenEndpoint(\"https://token.endpoint\")\n .userEndpoint(\"https://user.endpoint\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGithubEs\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitHub Enterprise Server\n clientId: 86a165...\n clientSecret: '*****afdbac18'\n scopes:\n - openid\n - profile\n - email\n authorizationEndpoint: https://auth.endpoint\n tokenEndpoint: https://token.endpoint\n userEndpoint: https://user.endpoint\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGithubEs:OrgIdpGithubEs imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", "properties": { "authorizationEndpoint": { "type": "string", @@ -5024,7 +5366,7 @@ } }, "zitadel:index/orgIdpGitlab:OrgIdpGitlab": { - "description": "Resource representing a GitLab IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGitlab(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitLab\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGitlab(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitLab\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGitlab(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitLab\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGitlab(ctx, \"default\", \u0026zitadel.OrgIdpGitlabArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitLab\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGitlab;\nimport com.pulumi.zitadel.OrgIdpGitlabArgs;\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 OrgIdpGitlab(\"default\", OrgIdpGitlabArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitLab\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGitlab\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitLab\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGitlab:OrgIdpGitlab imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", + "description": "Resource representing a GitLab IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGitlab(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitLab\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGitlab(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitLab\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGitlab(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitLab\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGitlab(ctx, \"default\", \u0026zitadel.OrgIdpGitlabArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitLab\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGitlab;\nimport com.pulumi.zitadel.OrgIdpGitlabArgs;\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 OrgIdpGitlab(\"default\", OrgIdpGitlabArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitLab\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGitlab\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitLab\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGitlab:OrgIdpGitlab imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -5176,7 +5518,7 @@ } }, "zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted": { - "description": "Resource representing a GitLab Self Hosted IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGitlabSelfHosted(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitLab Self Hosted\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer: \"https://my.issuer\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGitlabSelfHosted(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitLab Self Hosted\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer=\"https://my.issuer\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGitlabSelfHosted(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitLab Self Hosted\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n Issuer = \"https://my.issuer\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGitlabSelfHosted(ctx, \"default\", \u0026zitadel.OrgIdpGitlabSelfHostedArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitLab Self Hosted\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIssuer: pulumi.String(\"https://my.issuer\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGitlabSelfHosted;\nimport com.pulumi.zitadel.OrgIdpGitlabSelfHostedArgs;\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 OrgIdpGitlabSelfHosted(\"default\", OrgIdpGitlabSelfHostedArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitLab Self Hosted\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .issuer(\"https://my.issuer\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGitlabSelfHosted\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitLab Self Hosted\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n issuer: https://my.issuer\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", + "description": "Resource representing a GitLab Self Hosted IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGitlabSelfHosted(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitLab Self Hosted\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer: \"https://my.issuer\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGitlabSelfHosted(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitLab Self Hosted\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer=\"https://my.issuer\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGitlabSelfHosted(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitLab Self Hosted\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n Issuer = \"https://my.issuer\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGitlabSelfHosted(ctx, \"default\", \u0026zitadel.OrgIdpGitlabSelfHostedArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitLab Self Hosted\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIssuer: pulumi.String(\"https://my.issuer\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGitlabSelfHosted;\nimport com.pulumi.zitadel.OrgIdpGitlabSelfHostedArgs;\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 OrgIdpGitlabSelfHosted(\"default\", OrgIdpGitlabSelfHostedArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitLab Self Hosted\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .issuer(\"https://my.issuer\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGitlabSelfHosted\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitLab Self Hosted\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n scopes:\n - openid\n - profile\n - email\n issuer: https://my.issuer\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -5342,7 +5684,7 @@ } }, "zitadel:index/orgIdpGoogle:OrgIdpGoogle": { - "description": "Resource representing a Google IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGoogle(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"Google\",\n clientId: \"182902...\",\n clientSecret: \"GOCSPX-*****\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGoogle(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"Google\",\n client_id=\"182902...\",\n client_secret=\"GOCSPX-*****\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGoogle(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"Google\",\n ClientId = \"182902...\",\n ClientSecret = \"GOCSPX-*****\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGoogle(ctx, \"default\", \u0026zitadel.OrgIdpGoogleArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"Google\"),\n\t\t\tClientId: pulumi.String(\"182902...\"),\n\t\t\tClientSecret: pulumi.String(\"GOCSPX-*****\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGoogle;\nimport com.pulumi.zitadel.OrgIdpGoogleArgs;\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 OrgIdpGoogle(\"default\", OrgIdpGoogleArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"Google\")\n .clientId(\"182902...\")\n .clientSecret(\"GOCSPX-*****\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGoogle\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: Google\n clientId: 182902...\n clientSecret: GOCSPX-*****\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGoogle:OrgIdpGoogle imported '123456789012345678:123456789012345678:G1234567890123'\n```\n\n ", + "description": "Resource representing a Google IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpGoogle(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"Google\",\n clientId: \"182902...\",\n clientSecret: \"GOCSPX-*****\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpGoogle(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"Google\",\n client_id=\"182902...\",\n client_secret=\"GOCSPX-*****\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpGoogle(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"Google\",\n ClientId = \"182902...\",\n ClientSecret = \"GOCSPX-*****\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpGoogle(ctx, \"default\", \u0026zitadel.OrgIdpGoogleArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"Google\"),\n\t\t\tClientId: pulumi.String(\"182902...\"),\n\t\t\tClientSecret: pulumi.String(\"GOCSPX-*****\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpGoogle;\nimport com.pulumi.zitadel.OrgIdpGoogleArgs;\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 OrgIdpGoogle(\"default\", OrgIdpGoogleArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"Google\")\n .clientId(\"182902...\")\n .clientSecret(\"GOCSPX-*****\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpGoogle\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: Google\n clientId: 182902...\n clientSecret: GOCSPX-*****\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpGoogle:OrgIdpGoogle imported '123456789012345678:123456789012345678:G1234567890123'\n```\n\n ", "properties": { "clientId": { "type": "string", @@ -5494,7 +5836,7 @@ } }, "zitadel:index/orgIdpJwt:OrgIdpJwt": { - "description": "Resource representing a generic JWT IdP of the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpJwt(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"jwtidp\",\n stylingType: \"STYLING_TYPE_UNSPECIFIED\",\n jwtEndpoint: \"https://jwtendpoint.com/jwt\",\n issuer: \"https://google.com\",\n keysEndpoint: \"https://jwtendpoint.com/keys\",\n headerName: \"x-auth-token\",\n autoRegister: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpJwt(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"jwtidp\",\n styling_type=\"STYLING_TYPE_UNSPECIFIED\",\n jwt_endpoint=\"https://jwtendpoint.com/jwt\",\n issuer=\"https://google.com\",\n keys_endpoint=\"https://jwtendpoint.com/keys\",\n header_name=\"x-auth-token\",\n auto_register=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpJwt(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"jwtidp\",\n StylingType = \"STYLING_TYPE_UNSPECIFIED\",\n JwtEndpoint = \"https://jwtendpoint.com/jwt\",\n Issuer = \"https://google.com\",\n KeysEndpoint = \"https://jwtendpoint.com/keys\",\n HeaderName = \"x-auth-token\",\n AutoRegister = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpJwt(ctx, \"default\", \u0026zitadel.OrgIdpJwtArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"jwtidp\"),\n\t\t\tStylingType: pulumi.String(\"STYLING_TYPE_UNSPECIFIED\"),\n\t\t\tJwtEndpoint: pulumi.String(\"https://jwtendpoint.com/jwt\"),\n\t\t\tIssuer: pulumi.String(\"https://google.com\"),\n\t\t\tKeysEndpoint: pulumi.String(\"https://jwtendpoint.com/keys\"),\n\t\t\tHeaderName: pulumi.String(\"x-auth-token\"),\n\t\t\tAutoRegister: pulumi.Bool(false),\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.zitadel.OrgIdpJwt;\nimport com.pulumi.zitadel.OrgIdpJwtArgs;\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 OrgIdpJwt(\"default\", OrgIdpJwtArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"jwtidp\")\n .stylingType(\"STYLING_TYPE_UNSPECIFIED\")\n .jwtEndpoint(\"https://jwtendpoint.com/jwt\")\n .issuer(\"https://google.com\")\n .keysEndpoint(\"https://jwtendpoint.com/keys\")\n .headerName(\"x-auth-token\")\n .autoRegister(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpJwt\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: jwtidp\n stylingType: STYLING_TYPE_UNSPECIFIED\n jwtEndpoint: https://jwtendpoint.com/jwt\n issuer: https://google.com\n keysEndpoint: https://jwtendpoint.com/keys\n headerName: x-auth-token\n autoRegister: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpJwt:OrgIdpJwt imported '123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing a generic JWT IdP of the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpJwt(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"jwtidp\",\n stylingType: \"STYLING_TYPE_UNSPECIFIED\",\n jwtEndpoint: \"https://jwtendpoint.com/jwt\",\n issuer: \"https://google.com\",\n keysEndpoint: \"https://jwtendpoint.com/keys\",\n headerName: \"x-auth-token\",\n autoRegister: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpJwt(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"jwtidp\",\n styling_type=\"STYLING_TYPE_UNSPECIFIED\",\n jwt_endpoint=\"https://jwtendpoint.com/jwt\",\n issuer=\"https://google.com\",\n keys_endpoint=\"https://jwtendpoint.com/keys\",\n header_name=\"x-auth-token\",\n auto_register=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpJwt(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"jwtidp\",\n StylingType = \"STYLING_TYPE_UNSPECIFIED\",\n JwtEndpoint = \"https://jwtendpoint.com/jwt\",\n Issuer = \"https://google.com\",\n KeysEndpoint = \"https://jwtendpoint.com/keys\",\n HeaderName = \"x-auth-token\",\n AutoRegister = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpJwt(ctx, \"default\", \u0026zitadel.OrgIdpJwtArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"jwtidp\"),\n\t\t\tStylingType: pulumi.String(\"STYLING_TYPE_UNSPECIFIED\"),\n\t\t\tJwtEndpoint: pulumi.String(\"https://jwtendpoint.com/jwt\"),\n\t\t\tIssuer: pulumi.String(\"https://google.com\"),\n\t\t\tKeysEndpoint: pulumi.String(\"https://jwtendpoint.com/keys\"),\n\t\t\tHeaderName: pulumi.String(\"x-auth-token\"),\n\t\t\tAutoRegister: pulumi.Bool(false),\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.zitadel.OrgIdpJwt;\nimport com.pulumi.zitadel.OrgIdpJwtArgs;\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 OrgIdpJwt(\"default\", OrgIdpJwtArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"jwtidp\")\n .stylingType(\"STYLING_TYPE_UNSPECIFIED\")\n .jwtEndpoint(\"https://jwtendpoint.com/jwt\")\n .issuer(\"https://google.com\")\n .keysEndpoint(\"https://jwtendpoint.com/keys\")\n .headerName(\"x-auth-token\")\n .autoRegister(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpJwt\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: jwtidp\n stylingType: STYLING_TYPE_UNSPECIFIED\n jwtEndpoint: https://jwtendpoint.com/jwt\n issuer: https://google.com\n keysEndpoint: https://jwtendpoint.com/keys\n headerName: x-auth-token\n autoRegister: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpJwt:OrgIdpJwt imported '123456789012345678:123456789012345678'\n```\n\n ", "properties": { "autoRegister": { "type": "boolean", @@ -5622,7 +5964,7 @@ } }, "zitadel:index/orgIdpLdap:OrgIdpLdap": { - "description": "Resource representing an LDAP IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpLdap(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"LDAP\",\n servers: [\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n startTls: false,\n baseDn: \"dc=example,dc=com\",\n bindDn: \"cn=admin,dc=example,dc=com\",\n bindPassword: \"Password1!\",\n userBase: \"dn\",\n userObjectClasses: [\"inetOrgPerson\"],\n userFilters: [\n \"uid\",\n \"email\",\n ],\n timeout: \"10s\",\n idAttribute: \"uid\",\n firstNameAttribute: \"firstname\",\n lastNameAttribute: \"lastname\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpLdap(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"LDAP\",\n servers=[\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n start_tls=False,\n base_dn=\"dc=example,dc=com\",\n bind_dn=\"cn=admin,dc=example,dc=com\",\n bind_password=\"Password1!\",\n user_base=\"dn\",\n user_object_classes=[\"inetOrgPerson\"],\n user_filters=[\n \"uid\",\n \"email\",\n ],\n timeout=\"10s\",\n id_attribute=\"uid\",\n first_name_attribute=\"firstname\",\n last_name_attribute=\"lastname\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpLdap(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"LDAP\",\n Servers = new[]\n {\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n },\n StartTls = false,\n BaseDn = \"dc=example,dc=com\",\n BindDn = \"cn=admin,dc=example,dc=com\",\n BindPassword = \"Password1!\",\n UserBase = \"dn\",\n UserObjectClasses = new[]\n {\n \"inetOrgPerson\",\n },\n UserFilters = new[]\n {\n \"uid\",\n \"email\",\n },\n Timeout = \"10s\",\n IdAttribute = \"uid\",\n FirstNameAttribute = \"firstname\",\n LastNameAttribute = \"lastname\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpLdap(ctx, \"default\", \u0026zitadel.OrgIdpLdapArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"LDAP\"),\n\t\t\tServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ldaps://my.primary.server:389\"),\n\t\t\t\tpulumi.String(\"ldaps://my.secondary.server:389\"),\n\t\t\t},\n\t\t\tStartTls: pulumi.Bool(false),\n\t\t\tBaseDn: pulumi.String(\"dc=example,dc=com\"),\n\t\t\tBindDn: pulumi.String(\"cn=admin,dc=example,dc=com\"),\n\t\t\tBindPassword: pulumi.String(\"Password1!\"),\n\t\t\tUserBase: pulumi.String(\"dn\"),\n\t\t\tUserObjectClasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"inetOrgPerson\"),\n\t\t\t},\n\t\t\tUserFilters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"uid\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tTimeout: pulumi.String(\"10s\"),\n\t\t\tIdAttribute: pulumi.String(\"uid\"),\n\t\t\tFirstNameAttribute: pulumi.String(\"firstname\"),\n\t\t\tLastNameAttribute: pulumi.String(\"lastname\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpLdap;\nimport com.pulumi.zitadel.OrgIdpLdapArgs;\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 OrgIdpLdap(\"default\", OrgIdpLdapArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"LDAP\")\n .servers( \n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\")\n .startTls(false)\n .baseDn(\"dc=example,dc=com\")\n .bindDn(\"cn=admin,dc=example,dc=com\")\n .bindPassword(\"Password1!\")\n .userBase(\"dn\")\n .userObjectClasses(\"inetOrgPerson\")\n .userFilters( \n \"uid\",\n \"email\")\n .timeout(\"10s\")\n .idAttribute(\"uid\")\n .firstNameAttribute(\"firstname\")\n .lastNameAttribute(\"lastname\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpLdap\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: LDAP\n servers:\n - ldaps://my.primary.server:389\n - ldaps://my.secondary.server:389\n startTls: false\n baseDn: dc=example,dc=com\n bindDn: cn=admin,dc=example,dc=com\n bindPassword: Password1!\n userBase: dn\n userObjectClasses:\n - inetOrgPerson\n userFilters:\n - uid\n - email\n timeout: 10s\n idAttribute: uid\n firstNameAttribute: firstname\n lastNameAttribute: lastname\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:bind_password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpLdap:OrgIdpLdap imported '123456789012345678:123456789012345678:b1nd_p4ssw0rd'\n```\n\n ", + "description": "Resource representing an LDAP IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpLdap(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"LDAP\",\n servers: [\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n startTls: false,\n baseDn: \"dc=example,dc=com\",\n bindDn: \"cn=admin,dc=example,dc=com\",\n bindPassword: \"Password1!\",\n userBase: \"dn\",\n userObjectClasses: [\"inetOrgPerson\"],\n userFilters: [\n \"uid\",\n \"email\",\n ],\n timeout: \"10s\",\n idAttribute: \"uid\",\n firstNameAttribute: \"firstname\",\n lastNameAttribute: \"lastname\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpLdap(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"LDAP\",\n servers=[\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n ],\n start_tls=False,\n base_dn=\"dc=example,dc=com\",\n bind_dn=\"cn=admin,dc=example,dc=com\",\n bind_password=\"Password1!\",\n user_base=\"dn\",\n user_object_classes=[\"inetOrgPerson\"],\n user_filters=[\n \"uid\",\n \"email\",\n ],\n timeout=\"10s\",\n id_attribute=\"uid\",\n first_name_attribute=\"firstname\",\n last_name_attribute=\"lastname\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpLdap(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"LDAP\",\n Servers = new[]\n {\n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\",\n },\n StartTls = false,\n BaseDn = \"dc=example,dc=com\",\n BindDn = \"cn=admin,dc=example,dc=com\",\n BindPassword = \"Password1!\",\n UserBase = \"dn\",\n UserObjectClasses = new[]\n {\n \"inetOrgPerson\",\n },\n UserFilters = new[]\n {\n \"uid\",\n \"email\",\n },\n Timeout = \"10s\",\n IdAttribute = \"uid\",\n FirstNameAttribute = \"firstname\",\n LastNameAttribute = \"lastname\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpLdap(ctx, \"default\", \u0026zitadel.OrgIdpLdapArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"LDAP\"),\n\t\t\tServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ldaps://my.primary.server:389\"),\n\t\t\t\tpulumi.String(\"ldaps://my.secondary.server:389\"),\n\t\t\t},\n\t\t\tStartTls: pulumi.Bool(false),\n\t\t\tBaseDn: pulumi.String(\"dc=example,dc=com\"),\n\t\t\tBindDn: pulumi.String(\"cn=admin,dc=example,dc=com\"),\n\t\t\tBindPassword: pulumi.String(\"Password1!\"),\n\t\t\tUserBase: pulumi.String(\"dn\"),\n\t\t\tUserObjectClasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"inetOrgPerson\"),\n\t\t\t},\n\t\t\tUserFilters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"uid\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tTimeout: pulumi.String(\"10s\"),\n\t\t\tIdAttribute: pulumi.String(\"uid\"),\n\t\t\tFirstNameAttribute: pulumi.String(\"firstname\"),\n\t\t\tLastNameAttribute: pulumi.String(\"lastname\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpLdap;\nimport com.pulumi.zitadel.OrgIdpLdapArgs;\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 OrgIdpLdap(\"default\", OrgIdpLdapArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"LDAP\")\n .servers( \n \"ldaps://my.primary.server:389\",\n \"ldaps://my.secondary.server:389\")\n .startTls(false)\n .baseDn(\"dc=example,dc=com\")\n .bindDn(\"cn=admin,dc=example,dc=com\")\n .bindPassword(\"Password1!\")\n .userBase(\"dn\")\n .userObjectClasses(\"inetOrgPerson\")\n .userFilters( \n \"uid\",\n \"email\")\n .timeout(\"10s\")\n .idAttribute(\"uid\")\n .firstNameAttribute(\"firstname\")\n .lastNameAttribute(\"lastname\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpLdap\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: LDAP\n servers:\n - ldaps://my.primary.server:389\n - ldaps://my.secondary.server:389\n startTls: false\n baseDn: dc=example,dc=com\n bindDn: cn=admin,dc=example,dc=com\n bindPassword: Password1!\n userBase: dn\n userObjectClasses:\n - inetOrgPerson\n userFilters:\n - uid\n - email\n timeout: 10s\n idAttribute: uid\n firstNameAttribute: firstname\n lastNameAttribute: lastname\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:bind_password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpLdap:OrgIdpLdap imported '123456789012345678:123456789012345678:b1nd_p4ssw0rd'\n```\n\n ", "properties": { "avatarUrlAttribute": { "type": "string", @@ -6033,9 +6375,13 @@ "type": "object" } }, - "zitadel:index/orgIdpOidc:OrgIdpOidc": { - "description": "Resource representing a generic OIDC IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpOidc(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"My Generic OIDC IDP\",\n clientId: \"a_client_id\",\n clientSecret: \"a_client_secret\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer: \"https://example.com\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n isIdTokenMapping: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpOidc(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"My Generic OIDC IDP\",\n client_id=\"a_client_id\",\n client_secret=\"a_client_secret\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer=\"https://example.com\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True,\n is_id_token_mapping=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpOidc(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"My Generic OIDC IDP\",\n ClientId = \"a_client_id\",\n ClientSecret = \"a_client_secret\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n Issuer = \"https://example.com\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n IsIdTokenMapping = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpOidc(ctx, \"default\", \u0026zitadel.OrgIdpOidcArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"My Generic OIDC IDP\"),\n\t\t\tClientId: pulumi.String(\"a_client_id\"),\n\t\t\tClientSecret: pulumi.String(\"a_client_secret\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\n\t\t\tIsIdTokenMapping: pulumi.Bool(true),\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.zitadel.OrgIdpOidc;\nimport com.pulumi.zitadel.OrgIdpOidcArgs;\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 OrgIdpOidc(\"default\", OrgIdpOidcArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"My Generic OIDC IDP\")\n .clientId(\"a_client_id\")\n .clientSecret(\"a_client_secret\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .issuer(\"https://example.com\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .isIdTokenMapping(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpOidc\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: My Generic OIDC IDP\n clientId: a_client_id\n clientSecret: a_client_secret\n scopes:\n - openid\n - profile\n - email\n issuer: https://example.com\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n isIdTokenMapping: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpOidc:OrgIdpOidc imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", + "zitadel:index/orgIdpOauth:OrgIdpOauth": { + "description": "Resource representing a generic OAuth2 IDP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpOauth(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"GitLab\",\n clientId: \"15765e...\",\n clientSecret: \"*****abcxyz\",\n authorizationEndpoint: \"https://accounts.google.com/o/oauth2/v2/auth\",\n tokenEndpoint: \"https://oauth2.googleapis.com/token\",\n userEndpoint: \"https://openidconnect.googleapis.com/v1/userinfo\",\n idAttribute: \"user_id\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpOauth(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"GitLab\",\n client_id=\"15765e...\",\n client_secret=\"*****abcxyz\",\n authorization_endpoint=\"https://accounts.google.com/o/oauth2/v2/auth\",\n token_endpoint=\"https://oauth2.googleapis.com/token\",\n user_endpoint=\"https://openidconnect.googleapis.com/v1/userinfo\",\n id_attribute=\"user_id\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpOauth(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"GitLab\",\n ClientId = \"15765e...\",\n ClientSecret = \"*****abcxyz\",\n AuthorizationEndpoint = \"https://accounts.google.com/o/oauth2/v2/auth\",\n TokenEndpoint = \"https://oauth2.googleapis.com/token\",\n UserEndpoint = \"https://openidconnect.googleapis.com/v1/userinfo\",\n IdAttribute = \"user_id\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpOauth(ctx, \"default\", \u0026zitadel.OrgIdpOauthArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"GitLab\"),\n\t\t\tClientId: pulumi.String(\"15765e...\"),\n\t\t\tClientSecret: pulumi.String(\"*****abcxyz\"),\n\t\t\tAuthorizationEndpoint: pulumi.String(\"https://accounts.google.com/o/oauth2/v2/auth\"),\n\t\t\tTokenEndpoint: pulumi.String(\"https://oauth2.googleapis.com/token\"),\n\t\t\tUserEndpoint: pulumi.String(\"https://openidconnect.googleapis.com/v1/userinfo\"),\n\t\t\tIdAttribute: pulumi.String(\"user_id\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\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.zitadel.OrgIdpOauth;\nimport com.pulumi.zitadel.OrgIdpOauthArgs;\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 OrgIdpOauth(\"default\", OrgIdpOauthArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"GitLab\")\n .clientId(\"15765e...\")\n .clientSecret(\"*****abcxyz\")\n .authorizationEndpoint(\"https://accounts.google.com/o/oauth2/v2/auth\")\n .tokenEndpoint(\"https://oauth2.googleapis.com/token\")\n .userEndpoint(\"https://openidconnect.googleapis.com/v1/userinfo\")\n .idAttribute(\"user_id\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpOauth\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: GitLab\n clientId: 15765e...\n clientSecret: '*****abcxyz'\n authorizationEndpoint: https://accounts.google.com/o/oauth2/v2/auth\n tokenEndpoint: https://oauth2.googleapis.com/token\n userEndpoint: https://openidconnect.googleapis.com/v1/userinfo\n idAttribute: user_id\n scopes:\n - openid\n - profile\n - email\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpOauth:OrgIdpOauth imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, "clientId": { "type": "string", "description": "client id generated by the identity provider\n" @@ -6045,6 +6391,10 @@ "description": "client secret generated by the identity provider\n", "secret": true }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, "isAutoCreation": { "type": "boolean", "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" @@ -6057,18 +6407,10 @@ "type": "boolean", "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" }, - "isIdTokenMapping": { - "type": "boolean", - "description": "if true, provider information get mapped from the id token, not from the userinfo endpoint\n" - }, "isLinkingAllowed": { "type": "boolean", "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" }, - "issuer": { - "type": "string", - "description": "the issuer of the idp\n" - }, "name": { "type": "string", "description": "Name of the IDP\n" @@ -6083,20 +6425,34 @@ "type": "string" }, "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" } }, "required": [ + "authorizationEndpoint", "clientId", "clientSecret", + "idAttribute", "isAutoCreation", "isAutoUpdate", "isCreationAllowed", - "isIdTokenMapping", "isLinkingAllowed", - "issuer", - "name" + "name", + "tokenEndpoint", + "userEndpoint" ], "inputProperties": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, "clientId": { "type": "string", "description": "client id generated by the identity provider\n" @@ -6106,6 +6462,10 @@ "description": "client secret generated by the identity provider\n", "secret": true }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, "isAutoCreation": { "type": "boolean", "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" @@ -6118,18 +6478,10 @@ "type": "boolean", "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" }, - "isIdTokenMapping": { - "type": "boolean", - "description": "if true, provider information get mapped from the id token, not from the userinfo endpoint\n" - }, "isLinkingAllowed": { "type": "boolean", "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" }, - "issuer": { - "type": "string", - "description": "the issuer of the idp\n" - }, "name": { "type": "string", "description": "Name of the IDP\n" @@ -6145,21 +6497,35 @@ "type": "string" }, "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" } }, "requiredInputs": [ + "authorizationEndpoint", "clientId", "clientSecret", + "idAttribute", "isAutoCreation", "isAutoUpdate", "isCreationAllowed", - "isIdTokenMapping", "isLinkingAllowed", - "issuer" + "tokenEndpoint", + "userEndpoint" ], "stateInputs": { - "description": "Input properties used for looking up and filtering OrgIdpOidc resources.\n", + "description": "Input properties used for looking up and filtering OrgIdpOauth resources.\n", "properties": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, "clientId": { "type": "string", "description": "client id generated by the identity provider\n" @@ -6169,6 +6535,10 @@ "description": "client secret generated by the identity provider\n", "secret": true }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, "isAutoCreation": { "type": "boolean", "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" @@ -6181,18 +6551,10 @@ "type": "boolean", "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" }, - "isIdTokenMapping": { - "type": "boolean", - "description": "if true, provider information get mapped from the id token, not from the userinfo endpoint\n" - }, "isLinkingAllowed": { "type": "boolean", "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" }, - "issuer": { - "type": "string", - "description": "the issuer of the idp\n" - }, "name": { "type": "string", "description": "Name of the IDP\n" @@ -6208,30 +6570,356 @@ "type": "string" }, "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" } }, "type": "object" } }, - "zitadel:index/orgMember:OrgMember": { - "description": "Resource representing the membership of a user on an organization, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgMember(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelHumanUser.id,\n roles: [\"ORG_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgMember(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n roles=[\"ORG_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgMember(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelHumanUser.Id,\n Roles = new[]\n {\n \"ORG_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgMember(ctx, \"default\", \u0026zitadel.OrgMemberArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_OWNER\"),\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.zitadel.OrgMember;\nimport com.pulumi.zitadel.OrgMemberArgs;\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 OrgMember(\"default\", OrgMemberArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelHumanUser.id())\n .roles(\"ORG_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgMember\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelHumanUser.id}\n roles:\n - ORG_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cuser_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgMember:OrgMember imported '123456789012345678:123456789012345678'\n```\n\n ", + "zitadel:index/orgIdpOidc:OrgIdpOidc": { + "description": "Resource representing a generic OIDC IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpOidc(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"My Generic OIDC IDP\",\n clientId: \"a_client_id\",\n clientSecret: \"a_client_secret\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer: \"https://example.com\",\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n isIdTokenMapping: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpOidc(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"My Generic OIDC IDP\",\n client_id=\"a_client_id\",\n client_secret=\"a_client_secret\",\n scopes=[\n \"openid\",\n \"profile\",\n \"email\",\n ],\n issuer=\"https://example.com\",\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True,\n is_id_token_mapping=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpOidc(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"My Generic OIDC IDP\",\n ClientId = \"a_client_id\",\n ClientSecret = \"a_client_secret\",\n Scopes = new[]\n {\n \"openid\",\n \"profile\",\n \"email\",\n },\n Issuer = \"https://example.com\",\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n IsIdTokenMapping = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpOidc(ctx, \"default\", \u0026zitadel.OrgIdpOidcArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"My Generic OIDC IDP\"),\n\t\t\tClientId: pulumi.String(\"a_client_id\"),\n\t\t\tClientSecret: pulumi.String(\"a_client_secret\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"openid\"),\n\t\t\t\tpulumi.String(\"profile\"),\n\t\t\t\tpulumi.String(\"email\"),\n\t\t\t},\n\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\n\t\t\tIsIdTokenMapping: pulumi.Bool(true),\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.zitadel.OrgIdpOidc;\nimport com.pulumi.zitadel.OrgIdpOidcArgs;\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 OrgIdpOidc(\"default\", OrgIdpOidcArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"My Generic OIDC IDP\")\n .clientId(\"a_client_id\")\n .clientSecret(\"a_client_secret\")\n .scopes( \n \"openid\",\n \"profile\",\n \"email\")\n .issuer(\"https://example.com\")\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .isIdTokenMapping(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpOidc\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: My Generic OIDC IDP\n clientId: a_client_id\n clientSecret: a_client_secret\n scopes:\n - openid\n - profile\n - email\n issuer: https://example.com\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n isIdTokenMapping: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id][:client_secret]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpOidc:OrgIdpOidc imported '123456789012345678:123456789012345678:1234567890abcdef'\n```\n\n ", "properties": { - "orgId": { + "clientId": { "type": "string", - "description": "ID of the organization\n" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of roles granted\n" + "description": "client id generated by the identity provider\n" }, - "userId": { + "clientSecret": { "type": "string", - "description": "ID of the user\n" - } - }, + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isIdTokenMapping": { + "type": "boolean", + "description": "if true, provider information get mapped from the id token, not from the userinfo endpoint\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "issuer": { + "type": "string", + "description": "the issuer of the idp\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + } + }, + "required": [ + "clientId", + "clientSecret", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isIdTokenMapping", + "isLinkingAllowed", + "issuer", + "name" + ], + "inputProperties": { + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isIdTokenMapping": { + "type": "boolean", + "description": "if true, provider information get mapped from the id token, not from the userinfo endpoint\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "issuer": { + "type": "string", + "description": "the issuer of the idp\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + } + }, + "requiredInputs": [ + "clientId", + "clientSecret", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isIdTokenMapping", + "isLinkingAllowed", + "issuer" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering OrgIdpOidc resources.\n", + "properties": { + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isIdTokenMapping": { + "type": "boolean", + "description": "if true, provider information get mapped from the id token, not from the userinfo endpoint\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "issuer": { + "type": "string", + "description": "the issuer of the idp\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + } + }, + "type": "object" + } + }, + "zitadel:index/orgIdpSaml:OrgIdpSaml": { + "description": "Resource representing a SAML IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgIdpSaml(\"default\", {\n orgId: defaultZitadelOrg.id,\n name: \"LDAP\",\n binding: \"SAML_BINDING_POST\",\n withSignedRequest: true,\n isLinkingAllowed: false,\n isCreationAllowed: true,\n isAutoCreation: false,\n isAutoUpdate: true,\n metadataXml: `\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n`,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgIdpSaml(\"default\",\n org_id=default_zitadel_org[\"id\"],\n name=\"LDAP\",\n binding=\"SAML_BINDING_POST\",\n with_signed_request=True,\n is_linking_allowed=False,\n is_creation_allowed=True,\n is_auto_creation=False,\n is_auto_update=True,\n metadata_xml=\"\"\"\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgIdpSaml(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Name = \"LDAP\",\n Binding = \"SAML_BINDING_POST\",\n WithSignedRequest = true,\n IsLinkingAllowed = false,\n IsCreationAllowed = true,\n IsAutoCreation = false,\n IsAutoUpdate = true,\n MetadataXml = @\"\u003c?xml version=\"\"1.0\"\" encoding=\"\"UTF-8\"\" standalone=\"\"no\"\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"\"urn:oasis:names:tc:SAML:2.0:metadata\"\" entityID=\"\"https://saml.example.com/entityid\"\" validUntil=\"\"2034-05-15T14:21:58.979Z\"\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"\"true\"\" protocolSupportEnumeration=\"\"urn:oasis:names:tc:SAML:2.0:protocol\"\"\u003e\n \u003cmd:KeyDescriptor use=\"\"signing\"\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"\"http://www.w3.org/2000/09/xmldsig#\"\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\" Location=\"\"https://mocksaml.com/api/saml/sso\"\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\" Location=\"\"https://mocksaml.com/api/saml/sso\"\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgIdpSaml(ctx, \"default\", \u0026zitadel.OrgIdpSamlArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tName: pulumi.String(\"LDAP\"),\n\t\t\tBinding: pulumi.String(\"SAML_BINDING_POST\"),\n\t\t\tWithSignedRequest: pulumi.Bool(true),\n\t\t\tIsLinkingAllowed: pulumi.Bool(false),\n\t\t\tIsCreationAllowed: pulumi.Bool(true),\n\t\t\tIsAutoCreation: pulumi.Bool(false),\n\t\t\tIsAutoUpdate: pulumi.Bool(true),\n\t\t\tMetadataXml: pulumi.String(`\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n`),\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.zitadel.OrgIdpSaml;\nimport com.pulumi.zitadel.OrgIdpSamlArgs;\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 OrgIdpSaml(\"default\", OrgIdpSamlArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .name(\"LDAP\")\n .binding(\"SAML_BINDING_POST\")\n .withSignedRequest(true)\n .isLinkingAllowed(false)\n .isCreationAllowed(true)\n .isAutoCreation(false)\n .isAutoUpdate(true)\n .metadataXml(\"\"\"\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\nSzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\nMjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\nDAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\nRuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\npwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\nNfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\nkhuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\nUjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\nr/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\nm0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n\u003c/md:EntityDescriptor\u003e\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgIdpSaml\n properties:\n orgId: ${defaultZitadelOrg.id}\n name: LDAP\n binding: SAML_BINDING_POST\n withSignedRequest: true\n isLinkingAllowed: false\n isCreationAllowed: true\n isAutoCreation: false\n isAutoUpdate: true\n metadataXml: |\n \u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n \u003cmd:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://saml.example.com/entityid\" validUntil=\"2034-05-15T14:21:58.979Z\"\u003e\n \u003cmd:IDPSSODescriptor WantAuthnRequestsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\"\u003e\n \u003cmd:KeyDescriptor use=\"signing\"\u003e\n \u003cds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\u003e\n \u003cds:X509Data\u003e\n \u003cds:X509Certificate\u003eMIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV\n SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4\n MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK\n DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD\n ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0\n RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd\n 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V\n pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b\n 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ\n NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF\n AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW\n 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4\n khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX\n UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L\n r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M\n m0eo2USlSRTVl7QHRTuiuSThHpLKQQ==\u003c/ds:X509Certificate\u003e\n \u003c/ds:X509Data\u003e\n \u003c/ds:KeyInfo\u003e\n \u003c/md:KeyDescriptor\u003e\n \u003cmd:NameIDFormat\u003eurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\u003c/md:NameIDFormat\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003cmd:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://mocksaml.com/api/saml/sso\"/\u003e\n \u003c/md:IDPSSODescriptor\u003e\n \u003c/md:EntityDescriptor\u003e\n```\n\n{{% /example %}}\n{{% /examples %}}\n## Loading the XML Metadata\n\nIf you don't want to pass the XML metadata inline, you have plenty of options. For example:\n- local_file Data Source\n- http Data Source\n- terracurl_request Data Source\n- ...\n\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgIdpSaml:OrgIdpSaml imported '123456789012345678:123456789012345678'\n```\n\n ", + "properties": { + "binding": { + "type": "string", + "description": "The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "withSignedRequest": { + "type": "boolean", + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "required": [ + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "metadataXml", + "name" + ], + "inputProperties": { + "binding": { + "type": "string", + "description": "The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "withSignedRequest": { + "type": "boolean", + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "requiredInputs": [ + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "metadataXml" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering OrgIdpSaml resources.\n", + "properties": { + "binding": { + "type": "string", + "description": "The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enable if a new account in ZITADEL should be created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enable if a the ZITADEL account fields should be updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enable if users should be able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enable if users should be able to link an existing ZITADEL user with an external account\n" + }, + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "withSignedRequest": { + "type": "boolean", + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "type": "object" + } + }, + "zitadel:index/orgMember:OrgMember": { + "description": "Resource representing the membership of a user on an organization, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgMember(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelHumanUser.id,\n roles: [\"ORG_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgMember(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n roles=[\"ORG_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgMember(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelHumanUser.Id,\n Roles = new[]\n {\n \"ORG_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgMember(ctx, \"default\", \u0026zitadel.OrgMemberArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_OWNER\"),\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.zitadel.OrgMember;\nimport com.pulumi.zitadel.OrgMemberArgs;\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 OrgMember(\"default\", OrgMemberArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelHumanUser.id())\n .roles(\"ORG_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgMember\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelHumanUser.id}\n roles:\n - ORG_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cuser_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgMember:OrgMember imported '123456789012345678:123456789012345678'\n```\n\n ", + "properties": { + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of roles granted\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n" + } + }, "required": [ "roles", "userId" @@ -6283,6 +6971,67 @@ "type": "object" } }, + "zitadel:index/orgMetadata:OrgMetadata": { + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.OrgMetadata(\"default\", {\n orgId: defaultZitadelOrg.id,\n key: \"a_key\",\n value: \"a_value\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.OrgMetadata(\"default\",\n org_id=default_zitadel_org[\"id\"],\n key=\"a_key\",\n value=\"a_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.OrgMetadata(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n Key = \"a_key\",\n Value = \"a_value\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewOrgMetadata(ctx, \"default\", \u0026zitadel.OrgMetadataArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tKey: pulumi.String(\"a_key\"),\n\t\t\tValue: pulumi.String(\"a_value\"),\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.zitadel.OrgMetadata;\nimport com.pulumi.zitadel.OrgMetadataArgs;\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 OrgMetadata(\"default\", OrgMetadataArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .key(\"a_key\")\n .value(\"a_value\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:OrgMetadata\n properties:\n orgId: ${defaultZitadelOrg.id}\n key: a_key\n value: a_value\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003ckey[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/orgMetadata:OrgMetadata imported 'a_key:123456789012345678'\n```\n\n ", + "properties": { + "key": { + "type": "string", + "description": "The key of a metadata entry\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "value": { + "type": "string", + "description": "The string representation of a metadata entry value. For binary data, use the base64encode function.\n" + } + }, + "required": [ + "key", + "value" + ], + "inputProperties": { + "key": { + "type": "string", + "description": "The key of a metadata entry\n", + "willReplaceOnChanges": true + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "value": { + "type": "string", + "description": "The string representation of a metadata entry value. For binary data, use the base64encode function.\n" + } + }, + "requiredInputs": [ + "key", + "value" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering OrgMetadata resources.\n", + "properties": { + "key": { + "type": "string", + "description": "The key of a metadata entry\n", + "willReplaceOnChanges": true + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "value": { + "type": "string", + "description": "The string representation of a metadata entry value. For binary data, use the base64encode function.\n" + } + }, + "type": "object" + } + }, "zitadel:index/passwordComplexityPolicy:PasswordComplexityPolicy": { "description": "Resource representing the custom password complexity policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.PasswordComplexityPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n minLength: 8,\n hasUppercase: true,\n hasLowercase: true,\n hasNumber: true,\n hasSymbol: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.PasswordComplexityPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n min_length=8,\n has_uppercase=True,\n has_lowercase=True,\n has_number=True,\n has_symbol=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.PasswordComplexityPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n MinLength = 8,\n HasUppercase = true,\n HasLowercase = true,\n HasNumber = true,\n HasSymbol = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewPasswordComplexityPolicy(ctx, \"default\", \u0026zitadel.PasswordComplexityPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tMinLength: pulumi.Int(8),\n\t\t\tHasUppercase: pulumi.Bool(true),\n\t\t\tHasLowercase: pulumi.Bool(true),\n\t\t\tHasNumber: pulumi.Bool(true),\n\t\t\tHasSymbol: pulumi.Bool(true),\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.zitadel.PasswordComplexityPolicy;\nimport com.pulumi.zitadel.PasswordComplexityPolicyArgs;\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 PasswordComplexityPolicy(\"default\", PasswordComplexityPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .minLength(\"8\")\n .hasUppercase(true)\n .hasLowercase(true)\n .hasNumber(true)\n .hasSymbol(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:PasswordComplexityPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n minLength: '8'\n hasUppercase: true\n hasLowercase: true\n hasNumber: true\n hasSymbol: true\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { @@ -6385,7 +7134,7 @@ } }, "zitadel:index/personalAccessToken:PersonalAccessToken": { - "description": "Resource representing a personal access token of a user\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.PersonalAccessToken(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelMachineUser.id,\n expirationDate: \"2519-04-01T08:45:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.PersonalAccessToken(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_machine_user[\"id\"],\n expiration_date=\"2519-04-01T08:45:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.PersonalAccessToken(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelMachineUser.Id,\n ExpirationDate = \"2519-04-01T08:45:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewPersonalAccessToken(ctx, \"default\", \u0026zitadel.PersonalAccessTokenArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelMachineUser.Id),\n\t\t\tExpirationDate: pulumi.String(\"2519-04-01T08:45:00Z\"),\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.zitadel.PersonalAccessToken;\nimport com.pulumi.zitadel.PersonalAccessTokenArgs;\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 PersonalAccessToken(\"default\", PersonalAccessTokenArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelMachineUser.id())\n .expirationDate(\"2519-04-01T08:45:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:PersonalAccessToken\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelMachineUser.id}\n expirationDate: 2519-04-01T08:45:00Z\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:user_id[:org_id][:token]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/personalAccessToken:PersonalAccessToken imported '123456789012345678:123456789012345678:123456789012345678:LHt79...'\n```\n\n ", + "description": "Resource representing a personal access token of a user\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.PersonalAccessToken(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelMachineUser.id,\n expirationDate: \"2519-04-01T08:45:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.PersonalAccessToken(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_machine_user[\"id\"],\n expiration_date=\"2519-04-01T08:45:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.PersonalAccessToken(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelMachineUser.Id,\n ExpirationDate = \"2519-04-01T08:45:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewPersonalAccessToken(ctx, \"default\", \u0026zitadel.PersonalAccessTokenArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelMachineUser.Id),\n\t\t\tExpirationDate: pulumi.String(\"2519-04-01T08:45:00Z\"),\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.zitadel.PersonalAccessToken;\nimport com.pulumi.zitadel.PersonalAccessTokenArgs;\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 PersonalAccessToken(\"default\", PersonalAccessTokenArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelMachineUser.id())\n .expirationDate(\"2519-04-01T08:45:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:PersonalAccessToken\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelMachineUser.id}\n expirationDate: 2519-04-01T08:45:00Z\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:user_id[:org_id][:token]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/personalAccessToken:PersonalAccessToken imported '123456789012345678:123456789012345678:123456789012345678:LHt79...'\n```\n\n ", "properties": { "expirationDate": { "type": "string", @@ -6457,7 +7206,7 @@ } }, "zitadel:index/privacyPolicy:PrivacyPolicy": { - "description": "Resource representing the custom privacy policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.PrivacyPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n tosLink: \"https://example.com/tos\",\n privacyLink: \"https://example.com/privacy\",\n helpLink: \"https://example.com/help\",\n supportEmail: \"support@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.PrivacyPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n tos_link=\"https://example.com/tos\",\n privacy_link=\"https://example.com/privacy\",\n help_link=\"https://example.com/help\",\n support_email=\"support@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.PrivacyPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n TosLink = \"https://example.com/tos\",\n PrivacyLink = \"https://example.com/privacy\",\n HelpLink = \"https://example.com/help\",\n SupportEmail = \"support@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewPrivacyPolicy(ctx, \"default\", \u0026zitadel.PrivacyPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tTosLink: pulumi.String(\"https://example.com/tos\"),\n\t\t\tPrivacyLink: pulumi.String(\"https://example.com/privacy\"),\n\t\t\tHelpLink: pulumi.String(\"https://example.com/help\"),\n\t\t\tSupportEmail: pulumi.String(\"support@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.zitadel.PrivacyPolicy;\nimport com.pulumi.zitadel.PrivacyPolicyArgs;\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 PrivacyPolicy(\"default\", PrivacyPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .tosLink(\"https://example.com/tos\")\n .privacyLink(\"https://example.com/privacy\")\n .helpLink(\"https://example.com/help\")\n .supportEmail(\"support@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:PrivacyPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n tosLink: https://example.com/tos\n privacyLink: https://example.com/privacy\n helpLink: https://example.com/help\n supportEmail: support@example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/privacyPolicy:PrivacyPolicy imported '123456789012345678'\n```\n\n ", + "description": "Resource representing the custom privacy policy of an organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.PrivacyPolicy(\"default\", {\n orgId: defaultZitadelOrg.id,\n tosLink: \"https://example.com/tos\",\n privacyLink: \"https://example.com/privacy\",\n helpLink: \"https://example.com/help\",\n supportEmail: \"support@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.PrivacyPolicy(\"default\",\n org_id=default_zitadel_org[\"id\"],\n tos_link=\"https://example.com/tos\",\n privacy_link=\"https://example.com/privacy\",\n help_link=\"https://example.com/help\",\n support_email=\"support@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.PrivacyPolicy(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n TosLink = \"https://example.com/tos\",\n PrivacyLink = \"https://example.com/privacy\",\n HelpLink = \"https://example.com/help\",\n SupportEmail = \"support@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewPrivacyPolicy(ctx, \"default\", \u0026zitadel.PrivacyPolicyArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tTosLink: pulumi.String(\"https://example.com/tos\"),\n\t\t\tPrivacyLink: pulumi.String(\"https://example.com/privacy\"),\n\t\t\tHelpLink: pulumi.String(\"https://example.com/help\"),\n\t\t\tSupportEmail: pulumi.String(\"support@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.zitadel.PrivacyPolicy;\nimport com.pulumi.zitadel.PrivacyPolicyArgs;\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 PrivacyPolicy(\"default\", PrivacyPolicyArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .tosLink(\"https://example.com/tos\")\n .privacyLink(\"https://example.com/privacy\")\n .helpLink(\"https://example.com/help\")\n .supportEmail(\"support@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:PrivacyPolicy\n properties:\n orgId: ${defaultZitadelOrg.id}\n tosLink: https://example.com/tos\n privacyLink: https://example.com/privacy\n helpLink: https://example.com/help\n supportEmail: support@example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/privacyPolicy:PrivacyPolicy imported '123456789012345678'\n```\n\n ", "properties": { "helpLink": { "type": "string" @@ -6520,7 +7269,7 @@ } }, "zitadel:index/project:Project": { - "description": "Resource representing the project, which can then be granted to different organizations or users directly, containing different applications.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Project(\"default\", {\n name: \"projectname\",\n orgId: defaultZitadelOrg.id,\n projectRoleAssertion: true,\n projectRoleCheck: true,\n hasProjectCheck: true,\n privateLabelingSetting: \"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Project(\"default\",\n name=\"projectname\",\n org_id=default_zitadel_org[\"id\"],\n project_role_assertion=True,\n project_role_check=True,\n has_project_check=True,\n private_labeling_setting=\"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Project(\"default\", new()\n {\n Name = \"projectname\",\n OrgId = defaultZitadelOrg.Id,\n ProjectRoleAssertion = true,\n ProjectRoleCheck = true,\n HasProjectCheck = true,\n PrivateLabelingSetting = \"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProject(ctx, \"default\", \u0026zitadel.ProjectArgs{\n\t\t\tName: pulumi.String(\"projectname\"),\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectRoleAssertion: pulumi.Bool(true),\n\t\t\tProjectRoleCheck: pulumi.Bool(true),\n\t\t\tHasProjectCheck: pulumi.Bool(true),\n\t\t\tPrivateLabelingSetting: pulumi.String(\"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\"),\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.zitadel.Project;\nimport com.pulumi.zitadel.ProjectArgs;\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 Project(\"default\", ProjectArgs.builder() \n .name(\"projectname\")\n .orgId(defaultZitadelOrg.id())\n .projectRoleAssertion(true)\n .projectRoleCheck(true)\n .hasProjectCheck(true)\n .privateLabelingSetting(\"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Project\n properties:\n name: projectname\n orgId: ${defaultZitadelOrg.id}\n projectRoleAssertion: true\n projectRoleCheck: true\n hasProjectCheck: true\n privateLabelingSetting: PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/project:Project imported '123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing the project, which can then be granted to different organizations or users directly, containing different applications.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.Project(\"default\", {\n name: \"projectname\",\n orgId: defaultZitadelOrg.id,\n projectRoleAssertion: true,\n projectRoleCheck: true,\n hasProjectCheck: true,\n privateLabelingSetting: \"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.Project(\"default\",\n name=\"projectname\",\n org_id=default_zitadel_org[\"id\"],\n project_role_assertion=True,\n project_role_check=True,\n has_project_check=True,\n private_labeling_setting=\"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.Project(\"default\", new()\n {\n Name = \"projectname\",\n OrgId = defaultZitadelOrg.Id,\n ProjectRoleAssertion = true,\n ProjectRoleCheck = true,\n HasProjectCheck = true,\n PrivateLabelingSetting = \"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProject(ctx, \"default\", \u0026zitadel.ProjectArgs{\n\t\t\tName: pulumi.String(\"projectname\"),\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectRoleAssertion: pulumi.Bool(true),\n\t\t\tProjectRoleCheck: pulumi.Bool(true),\n\t\t\tHasProjectCheck: pulumi.Bool(true),\n\t\t\tPrivateLabelingSetting: pulumi.String(\"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\"),\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.zitadel.Project;\nimport com.pulumi.zitadel.ProjectArgs;\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 Project(\"default\", ProjectArgs.builder() \n .name(\"projectname\")\n .orgId(defaultZitadelOrg.id())\n .projectRoleAssertion(true)\n .projectRoleCheck(true)\n .hasProjectCheck(true)\n .privateLabelingSetting(\"PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:Project\n properties:\n name: projectname\n orgId: ${defaultZitadelOrg.id}\n projectRoleAssertion: true\n projectRoleCheck: true\n hasProjectCheck: true\n privateLabelingSetting: PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/project:Project imported '123456789012345678:123456789012345678'\n```\n\n ", "properties": { "hasProjectCheck": { "type": "boolean", @@ -6619,7 +7368,7 @@ } }, "zitadel:index/projectGrant:ProjectGrant": { - "description": "Resource representing the grant of a project to a different organization, also containing the available roles which can be given to the members of the projectgrant.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectGrant(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n grantedOrgId: grantedOrg.id,\n roleKeys: [\"super-user\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectGrant(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n granted_org_id=granted_org[\"id\"],\n role_keys=[\"super-user\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectGrant(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n GrantedOrgId = grantedOrg.Id,\n RoleKeys = new[]\n {\n \"super-user\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectGrant(ctx, \"default\", \u0026zitadel.ProjectGrantArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tGrantedOrgId: pulumi.Any(grantedOrg.Id),\n\t\t\tRoleKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"super-user\"),\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.zitadel.ProjectGrant;\nimport com.pulumi.zitadel.ProjectGrantArgs;\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 ProjectGrant(\"default\", ProjectGrantArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .grantedOrgId(grantedOrg.id())\n .roleKeys(\"super-user\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectGrant\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n grantedOrgId: ${grantedOrg.id}\n roleKeys:\n - super-user\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid:project_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectGrant:ProjectGrant imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing the grant of a project to a different organization, also containing the available roles which can be given to the members of the projectgrant.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectGrant(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n grantedOrgId: grantedOrg.id,\n roleKeys: [\"super-user\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectGrant(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n granted_org_id=granted_org[\"id\"],\n role_keys=[\"super-user\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectGrant(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n GrantedOrgId = grantedOrg.Id,\n RoleKeys = new[]\n {\n \"super-user\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectGrant(ctx, \"default\", \u0026zitadel.ProjectGrantArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tGrantedOrgId: pulumi.Any(grantedOrg.Id),\n\t\t\tRoleKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"super-user\"),\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.zitadel.ProjectGrant;\nimport com.pulumi.zitadel.ProjectGrantArgs;\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 ProjectGrant(\"default\", ProjectGrantArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .grantedOrgId(grantedOrg.id())\n .roleKeys(\"super-user\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectGrant\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n grantedOrgId: ${grantedOrg.id}\n roleKeys:\n - super-user\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid:project_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectGrant:ProjectGrant imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", "properties": { "grantedOrgId": { "type": "string", @@ -6703,7 +7452,7 @@ } }, "zitadel:index/projectGrantMember:ProjectGrantMember": { - "description": "Resource representing the membership of a user on an granted project, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectGrantMember(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n userId: defaultZitadelHumanUser.id,\n grantId: \"123456789012345678\",\n roles: [\"PROJECT_GRANT_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectGrantMember(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n grant_id=\"123456789012345678\",\n roles=[\"PROJECT_GRANT_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectGrantMember(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n UserId = defaultZitadelHumanUser.Id,\n GrantId = \"123456789012345678\",\n Roles = new[]\n {\n \"PROJECT_GRANT_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectGrantMember(ctx, \"default\", \u0026zitadel.ProjectGrantMemberArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tGrantId: pulumi.String(\"123456789012345678\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"PROJECT_GRANT_OWNER\"),\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.zitadel.ProjectGrantMember;\nimport com.pulumi.zitadel.ProjectGrantMemberArgs;\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 ProjectGrantMember(\"default\", ProjectGrantMemberArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .userId(defaultZitadelHumanUser.id())\n .grantId(\"123456789012345678\")\n .roles(\"PROJECT_GRANT_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectGrantMember\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n userId: ${defaultZitadelHumanUser.id}\n grantId: '123456789012345678'\n roles:\n - PROJECT_GRANT_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cproject_id:grant_id:user_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectGrantMember:ProjectGrantMember imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing the membership of a user on an granted project, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectGrantMember(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n userId: defaultZitadelHumanUser.id,\n grantId: \"123456789012345678\",\n roles: [\"PROJECT_GRANT_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectGrantMember(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n grant_id=\"123456789012345678\",\n roles=[\"PROJECT_GRANT_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectGrantMember(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n UserId = defaultZitadelHumanUser.Id,\n GrantId = \"123456789012345678\",\n Roles = new[]\n {\n \"PROJECT_GRANT_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectGrantMember(ctx, \"default\", \u0026zitadel.ProjectGrantMemberArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tGrantId: pulumi.String(\"123456789012345678\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"PROJECT_GRANT_OWNER\"),\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.zitadel.ProjectGrantMember;\nimport com.pulumi.zitadel.ProjectGrantMemberArgs;\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 ProjectGrantMember(\"default\", ProjectGrantMemberArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .userId(defaultZitadelHumanUser.id())\n .grantId(\"123456789012345678\")\n .roles(\"PROJECT_GRANT_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectGrantMember\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n userId: ${defaultZitadelHumanUser.id}\n grantId: '123456789012345678'\n roles:\n - PROJECT_GRANT_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cproject_id:grant_id:user_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectGrantMember:ProjectGrantMember imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", "properties": { "grantId": { "type": "string", @@ -6805,7 +7554,7 @@ } }, "zitadel:index/projectMember:ProjectMember": { - "description": "Resource representing the membership of a user on an project, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectMember(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n userId: defaultZitadelHumanUser.id,\n roles: [\"PROJECT_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectMember(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n roles=[\"PROJECT_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectMember(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n UserId = defaultZitadelHumanUser.Id,\n Roles = new[]\n {\n \"PROJECT_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectMember(ctx, \"default\", \u0026zitadel.ProjectMemberArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"PROJECT_OWNER\"),\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.zitadel.ProjectMember;\nimport com.pulumi.zitadel.ProjectMemberArgs;\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 ProjectMember(\"default\", ProjectMemberArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .userId(defaultZitadelHumanUser.id())\n .roles(\"PROJECT_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectMember\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n userId: ${defaultZitadelHumanUser.id}\n roles:\n - PROJECT_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cproject_id:user_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectMember:ProjectMember imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing the membership of a user on an project, defined with the given role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectMember(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n userId: defaultZitadelHumanUser.id,\n roles: [\"PROJECT_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectMember(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n roles=[\"PROJECT_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectMember(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n UserId = defaultZitadelHumanUser.Id,\n Roles = new[]\n {\n \"PROJECT_OWNER\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectMember(ctx, \"default\", \u0026zitadel.ProjectMemberArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"PROJECT_OWNER\"),\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.zitadel.ProjectMember;\nimport com.pulumi.zitadel.ProjectMemberArgs;\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 ProjectMember(\"default\", ProjectMemberArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .userId(defaultZitadelHumanUser.id())\n .roles(\"PROJECT_OWNER\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectMember\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n userId: ${defaultZitadelHumanUser.id}\n roles:\n - PROJECT_OWNER\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cproject_id:user_id[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectMember:ProjectMember imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", "properties": { "orgId": { "type": "string", @@ -6891,7 +7640,7 @@ } }, "zitadel:index/projectRole:ProjectRole": { - "description": "Resource representing the project roles, which can be given as authorizations to users.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectRole(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n roleKey: \"super-user\",\n displayName: \"display_name2\",\n group: \"role_group\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectRole(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n role_key=\"super-user\",\n display_name=\"display_name2\",\n group=\"role_group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectRole(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n RoleKey = \"super-user\",\n DisplayName = \"display_name2\",\n Group = \"role_group\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectRole(ctx, \"default\", \u0026zitadel.ProjectRoleArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tRoleKey: pulumi.String(\"super-user\"),\n\t\t\tDisplayName: pulumi.String(\"display_name2\"),\n\t\t\tGroup: pulumi.String(\"role_group\"),\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.zitadel.ProjectRole;\nimport com.pulumi.zitadel.ProjectRoleArgs;\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 ProjectRole(\"default\", ProjectRoleArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .roleKey(\"super-user\")\n .displayName(\"display_name2\")\n .group(\"role_group\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectRole\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n roleKey: super-user\n displayName: display_name2\n group: role_group\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cproject_id:role_key[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectRole:ProjectRole imported '123456789012345678:my-role-key:123456789012345678'\n```\n\n ", + "description": "Resource representing the project roles, which can be given as authorizations to users.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.ProjectRole(\"default\", {\n orgId: defaultZitadelOrg.id,\n projectId: defaultZitadelProject.id,\n roleKey: \"super-user\",\n displayName: \"display_name2\",\n group: \"role_group\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.ProjectRole(\"default\",\n org_id=default_zitadel_org[\"id\"],\n project_id=default_zitadel_project[\"id\"],\n role_key=\"super-user\",\n display_name=\"display_name2\",\n group=\"role_group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.ProjectRole(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n ProjectId = defaultZitadelProject.Id,\n RoleKey = \"super-user\",\n DisplayName = \"display_name2\",\n Group = \"role_group\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewProjectRole(ctx, \"default\", \u0026zitadel.ProjectRoleArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tRoleKey: pulumi.String(\"super-user\"),\n\t\t\tDisplayName: pulumi.String(\"display_name2\"),\n\t\t\tGroup: pulumi.String(\"role_group\"),\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.zitadel.ProjectRole;\nimport com.pulumi.zitadel.ProjectRoleArgs;\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 ProjectRole(\"default\", ProjectRoleArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .projectId(defaultZitadelProject.id())\n .roleKey(\"super-user\")\n .displayName(\"display_name2\")\n .group(\"role_group\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:ProjectRole\n properties:\n orgId: ${defaultZitadelOrg.id}\n projectId: ${defaultZitadelProject.id}\n roleKey: super-user\n displayName: display_name2\n group: role_group\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cproject_id:role_key[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/projectRole:ProjectRole imported '123456789012345678:my-role-key:123456789012345678'\n```\n\n ", "properties": { "displayName": { "type": "string", @@ -6980,7 +7729,7 @@ } }, "zitadel:index/smsProviderTwilio:SmsProviderTwilio": { - "description": "Resource representing the SMS provider Twilio configuration of an instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.SmsProviderTwilio(\"default\", {\n sid: \"sid\",\n senderNumber: \"019920892\",\n token: \"twilio_token\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.SmsProviderTwilio(\"default\",\n sid=\"sid\",\n sender_number=\"019920892\",\n token=\"twilio_token\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.SmsProviderTwilio(\"default\", new()\n {\n Sid = \"sid\",\n SenderNumber = \"019920892\",\n Token = \"twilio_token\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewSmsProviderTwilio(ctx, \"default\", \u0026zitadel.SmsProviderTwilioArgs{\n\t\t\tSid: pulumi.String(\"sid\"),\n\t\t\tSenderNumber: pulumi.String(\"019920892\"),\n\t\t\tToken: pulumi.String(\"twilio_token\"),\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.zitadel.SmsProviderTwilio;\nimport com.pulumi.zitadel.SmsProviderTwilioArgs;\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 SmsProviderTwilio(\"default\", SmsProviderTwilioArgs.builder() \n .sid(\"sid\")\n .senderNumber(\"019920892\")\n .token(\"twilio_token\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:SmsProviderTwilio\n properties:\n sid: sid\n senderNumber: '019920892'\n token: twilio_token\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cid[:token]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/smsProviderTwilio:SmsProviderTwilio imported '123456789012345678:12345678901234567890123456abcdef'\n```\n\n ", + "description": "Resource representing the SMS provider Twilio configuration of an instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.SmsProviderTwilio(\"default\", {\n sid: \"sid\",\n senderNumber: \"019920892\",\n token: \"twilio_token\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.SmsProviderTwilio(\"default\",\n sid=\"sid\",\n sender_number=\"019920892\",\n token=\"twilio_token\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.SmsProviderTwilio(\"default\", new()\n {\n Sid = \"sid\",\n SenderNumber = \"019920892\",\n Token = \"twilio_token\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewSmsProviderTwilio(ctx, \"default\", \u0026zitadel.SmsProviderTwilioArgs{\n\t\t\tSid: pulumi.String(\"sid\"),\n\t\t\tSenderNumber: pulumi.String(\"019920892\"),\n\t\t\tToken: pulumi.String(\"twilio_token\"),\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.zitadel.SmsProviderTwilio;\nimport com.pulumi.zitadel.SmsProviderTwilioArgs;\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 SmsProviderTwilio(\"default\", SmsProviderTwilioArgs.builder() \n .sid(\"sid\")\n .senderNumber(\"019920892\")\n .token(\"twilio_token\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:SmsProviderTwilio\n properties:\n sid: sid\n senderNumber: '019920892'\n token: twilio_token\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cid[:token]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/smsProviderTwilio:SmsProviderTwilio imported '123456789012345678:12345678901234567890123456abcdef'\n```\n\n ", "properties": { "senderNumber": { "type": "string", @@ -7042,7 +7791,7 @@ } }, "zitadel:index/smtpConfig:SmtpConfig": { - "description": "Resource representing the SMTP configuration of an instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.SmtpConfig(\"default\", {\n senderAddress: \"sender@example.com\",\n senderName: \"no-reply\",\n tls: true,\n host: \"localhost:25\",\n user: \"user\",\n password: \"secret_password\",\n replyToAddress: \"replyto@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.SmtpConfig(\"default\",\n sender_address=\"sender@example.com\",\n sender_name=\"no-reply\",\n tls=True,\n host=\"localhost:25\",\n user=\"user\",\n password=\"secret_password\",\n reply_to_address=\"replyto@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.SmtpConfig(\"default\", new()\n {\n SenderAddress = \"sender@example.com\",\n SenderName = \"no-reply\",\n Tls = true,\n Host = \"localhost:25\",\n User = \"user\",\n Password = \"secret_password\",\n ReplyToAddress = \"replyto@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewSmtpConfig(ctx, \"default\", \u0026zitadel.SmtpConfigArgs{\n\t\t\tSenderAddress: pulumi.String(\"sender@example.com\"),\n\t\t\tSenderName: pulumi.String(\"no-reply\"),\n\t\t\tTls: pulumi.Bool(true),\n\t\t\tHost: pulumi.String(\"localhost:25\"),\n\t\t\tUser: pulumi.String(\"user\"),\n\t\t\tPassword: pulumi.String(\"secret_password\"),\n\t\t\tReplyToAddress: pulumi.String(\"replyto@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.zitadel.SmtpConfig;\nimport com.pulumi.zitadel.SmtpConfigArgs;\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 SmtpConfig(\"default\", SmtpConfigArgs.builder() \n .senderAddress(\"sender@example.com\")\n .senderName(\"no-reply\")\n .tls(true)\n .host(\"localhost:25\")\n .user(\"user\")\n .password(\"secret_password\")\n .replyToAddress(\"replyto@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:SmtpConfig\n properties:\n senderAddress: sender@example.com\n senderName: no-reply\n tls: true\n host: localhost:25\n user: user\n password: secret_password\n replyToAddress: replyto@example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003c[password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/smtpConfig:SmtpConfig imported 'p4ssw0rd'\n```\n\n ", + "description": "Resource representing the SMTP configuration of an instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.SmtpConfig(\"default\", {\n senderAddress: \"sender@example.com\",\n senderName: \"no-reply\",\n tls: true,\n host: \"localhost:25\",\n user: \"user\",\n password: \"secret_password\",\n replyToAddress: \"replyto@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.SmtpConfig(\"default\",\n sender_address=\"sender@example.com\",\n sender_name=\"no-reply\",\n tls=True,\n host=\"localhost:25\",\n user=\"user\",\n password=\"secret_password\",\n reply_to_address=\"replyto@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.SmtpConfig(\"default\", new()\n {\n SenderAddress = \"sender@example.com\",\n SenderName = \"no-reply\",\n Tls = true,\n Host = \"localhost:25\",\n User = \"user\",\n Password = \"secret_password\",\n ReplyToAddress = \"replyto@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewSmtpConfig(ctx, \"default\", \u0026zitadel.SmtpConfigArgs{\n\t\t\tSenderAddress: pulumi.String(\"sender@example.com\"),\n\t\t\tSenderName: pulumi.String(\"no-reply\"),\n\t\t\tTls: pulumi.Bool(true),\n\t\t\tHost: pulumi.String(\"localhost:25\"),\n\t\t\tUser: pulumi.String(\"user\"),\n\t\t\tPassword: pulumi.String(\"secret_password\"),\n\t\t\tReplyToAddress: pulumi.String(\"replyto@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.zitadel.SmtpConfig;\nimport com.pulumi.zitadel.SmtpConfigArgs;\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 SmtpConfig(\"default\", SmtpConfigArgs.builder() \n .senderAddress(\"sender@example.com\")\n .senderName(\"no-reply\")\n .tls(true)\n .host(\"localhost:25\")\n .user(\"user\")\n .password(\"secret_password\")\n .replyToAddress(\"replyto@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:SmtpConfig\n properties:\n senderAddress: sender@example.com\n senderName: no-reply\n tls: true\n host: localhost:25\n user: user\n password: secret_password\n replyToAddress: replyto@example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003c[password]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/smtpConfig:SmtpConfig imported 'p4ssw0rd'\n```\n\n ", "properties": { "host": { "type": "string", @@ -7152,7 +7901,7 @@ } }, "zitadel:index/triggerActions:TriggerActions": { - "description": "Resource representing triggers, when actions get started\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.TriggerActions(\"default\", {\n orgId: defaultZitadelOrg.id,\n flowType: \"FLOW_TYPE_CUSTOMISE_TOKEN\",\n triggerType: \"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\",\n actionIds: [defaultZitadelAction.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.TriggerActions(\"default\",\n org_id=default_zitadel_org[\"id\"],\n flow_type=\"FLOW_TYPE_CUSTOMISE_TOKEN\",\n trigger_type=\"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\",\n action_ids=[default_zitadel_action[\"id\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.TriggerActions(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n FlowType = \"FLOW_TYPE_CUSTOMISE_TOKEN\",\n TriggerType = \"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\",\n ActionIds = new[]\n {\n defaultZitadelAction.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewTriggerActions(ctx, \"default\", \u0026zitadel.TriggerActionsArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tFlowType: pulumi.String(\"FLOW_TYPE_CUSTOMISE_TOKEN\"),\n\t\t\tTriggerType: pulumi.String(\"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\"),\n\t\t\tActionIds: pulumi.StringArray{\n\t\t\t\tdefaultZitadelAction.Id,\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.zitadel.TriggerActions;\nimport com.pulumi.zitadel.TriggerActionsArgs;\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 TriggerActions(\"default\", TriggerActionsArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .flowType(\"FLOW_TYPE_CUSTOMISE_TOKEN\")\n .triggerType(\"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\")\n .actionIds(defaultZitadelAction.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:TriggerActions\n properties:\n orgId: ${defaultZitadelOrg.id}\n flowType: FLOW_TYPE_CUSTOMISE_TOKEN\n triggerType: TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\n actionIds:\n - ${defaultZitadelAction.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cflow_type:trigger_type[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/triggerActions:TriggerActions imported 'FLOW_TYPE_EXTERNAL_AUTHENTICATION:TRIGGER_TYPE_POST_CREATION:123456789012345678'\n```\n\n ", + "description": "Resource representing triggers, when actions get started\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.TriggerActions(\"default\", {\n orgId: defaultZitadelOrg.id,\n flowType: \"FLOW_TYPE_CUSTOMISE_TOKEN\",\n triggerType: \"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\",\n actionIds: [defaultZitadelAction.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.TriggerActions(\"default\",\n org_id=default_zitadel_org[\"id\"],\n flow_type=\"FLOW_TYPE_CUSTOMISE_TOKEN\",\n trigger_type=\"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\",\n action_ids=[default_zitadel_action[\"id\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.TriggerActions(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n FlowType = \"FLOW_TYPE_CUSTOMISE_TOKEN\",\n TriggerType = \"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\",\n ActionIds = new[]\n {\n defaultZitadelAction.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewTriggerActions(ctx, \"default\", \u0026zitadel.TriggerActionsArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tFlowType: pulumi.String(\"FLOW_TYPE_CUSTOMISE_TOKEN\"),\n\t\t\tTriggerType: pulumi.String(\"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\"),\n\t\t\tActionIds: pulumi.StringArray{\n\t\t\t\tdefaultZitadelAction.Id,\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.zitadel.TriggerActions;\nimport com.pulumi.zitadel.TriggerActionsArgs;\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 TriggerActions(\"default\", TriggerActionsArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .flowType(\"FLOW_TYPE_CUSTOMISE_TOKEN\")\n .triggerType(\"TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\")\n .actionIds(defaultZitadelAction.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:TriggerActions\n properties:\n orgId: ${defaultZitadelOrg.id}\n flowType: FLOW_TYPE_CUSTOMISE_TOKEN\n triggerType: TRIGGER_TYPE_PRE_ACCESS_TOKEN_CREATION\n actionIds:\n - ${defaultZitadelAction.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cflow_type:trigger_type[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/triggerActions:TriggerActions imported 'FLOW_TYPE_EXTERNAL_AUTHENTICATION:TRIGGER_TYPE_POST_CREATION:123456789012345678'\n```\n\n ", "properties": { "actionIds": { "type": "array", @@ -7238,7 +7987,7 @@ } }, "zitadel:index/userGrant:UserGrant": { - "description": "Resource representing the authorization given to a user directly, including the given roles.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.UserGrant(\"default\", {\n projectId: defaultZitadelProject.id,\n orgId: defaultZitadelOrg.id,\n roleKeys: [\"super-user\"],\n userId: defaultZitadelHumanUser.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.UserGrant(\"default\",\n project_id=default_zitadel_project[\"id\"],\n org_id=default_zitadel_org[\"id\"],\n role_keys=[\"super-user\"],\n user_id=default_zitadel_human_user[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.UserGrant(\"default\", new()\n {\n ProjectId = defaultZitadelProject.Id,\n OrgId = defaultZitadelOrg.Id,\n RoleKeys = new[]\n {\n \"super-user\",\n },\n UserId = defaultZitadelHumanUser.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewUserGrant(ctx, \"default\", \u0026zitadel.UserGrantArgs{\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tRoleKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"super-user\"),\n\t\t\t},\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.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.zitadel.UserGrant;\nimport com.pulumi.zitadel.UserGrantArgs;\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 UserGrant(\"default\", UserGrantArgs.builder() \n .projectId(defaultZitadelProject.id())\n .orgId(defaultZitadelOrg.id())\n .roleKeys(\"super-user\")\n .userId(defaultZitadelHumanUser.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:UserGrant\n properties:\n projectId: ${defaultZitadelProject.id}\n orgId: ${defaultZitadelOrg.id}\n roleKeys:\n - super-user\n userId: ${defaultZitadelHumanUser.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nterraform The resource can be imported using the ID format `\u003cflow_type:trigger_type[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/userGrant:UserGrant imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", + "description": "Resource representing the authorization given to a user directly, including the given roles.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.UserGrant(\"default\", {\n projectId: defaultZitadelProject.id,\n orgId: defaultZitadelOrg.id,\n roleKeys: [\"super-user\"],\n userId: defaultZitadelHumanUser.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.UserGrant(\"default\",\n project_id=default_zitadel_project[\"id\"],\n org_id=default_zitadel_org[\"id\"],\n role_keys=[\"super-user\"],\n user_id=default_zitadel_human_user[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.UserGrant(\"default\", new()\n {\n ProjectId = defaultZitadelProject.Id,\n OrgId = defaultZitadelOrg.Id,\n RoleKeys = new[]\n {\n \"super-user\",\n },\n UserId = defaultZitadelHumanUser.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewUserGrant(ctx, \"default\", \u0026zitadel.UserGrantArgs{\n\t\t\tProjectId: pulumi.Any(defaultZitadelProject.Id),\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tRoleKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"super-user\"),\n\t\t\t},\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.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.zitadel.UserGrant;\nimport com.pulumi.zitadel.UserGrantArgs;\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 UserGrant(\"default\", UserGrantArgs.builder() \n .projectId(defaultZitadelProject.id())\n .orgId(defaultZitadelOrg.id())\n .roleKeys(\"super-user\")\n .userId(defaultZitadelHumanUser.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:UserGrant\n properties:\n projectId: ${defaultZitadelProject.id}\n orgId: ${defaultZitadelOrg.id}\n roleKeys:\n - super-user\n userId: ${defaultZitadelHumanUser.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cflow_type:trigger_type[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/userGrant:UserGrant imported '123456789012345678:123456789012345678:123456789012345678'\n```\n\n ", "properties": { "orgId": { "type": "string", @@ -7265,69 +8014,146 @@ } }, "required": [ - "userId" + "userId" + ], + "inputProperties": { + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "projectGrantId": { + "type": "string", + "description": "ID of the granted project\n", + "willReplaceOnChanges": true + }, + "projectId": { + "type": "string", + "description": "ID of the project\n", + "willReplaceOnChanges": true + }, + "roleKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of roles granted\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "userId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering UserGrant resources.\n", + "properties": { + "orgId": { + "type": "string", + "description": "ID of the organization\n", + "willReplaceOnChanges": true + }, + "projectGrantId": { + "type": "string", + "description": "ID of the granted project\n", + "willReplaceOnChanges": true + }, + "projectId": { + "type": "string", + "description": "ID of the project\n", + "willReplaceOnChanges": true + }, + "roleKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of roles granted\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, + "zitadel:index/userMetadata:UserMetadata": { + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumiverse/zitadel\";\n\nconst _default = new zitadel.UserMetadata(\"default\", {\n orgId: defaultZitadelOrg.id,\n userId: defaultZitadelHumanUser.id,\n key: \"a_key\",\n value: \"a_value\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_zitadel as zitadel\n\ndefault = zitadel.UserMetadata(\"default\",\n org_id=default_zitadel_org[\"id\"],\n user_id=default_zitadel_human_user[\"id\"],\n key=\"a_key\",\n value=\"a_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumiverse.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Zitadel.UserMetadata(\"default\", new()\n {\n OrgId = defaultZitadelOrg.Id,\n UserId = defaultZitadelHumanUser.Id,\n Key = \"a_key\",\n Value = \"a_value\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.NewUserMetadata(ctx, \"default\", \u0026zitadel.UserMetadataArgs{\n\t\t\tOrgId: pulumi.Any(defaultZitadelOrg.Id),\n\t\t\tUserId: pulumi.Any(defaultZitadelHumanUser.Id),\n\t\t\tKey: pulumi.String(\"a_key\"),\n\t\t\tValue: pulumi.String(\"a_value\"),\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.zitadel.UserMetadata;\nimport com.pulumi.zitadel.UserMetadataArgs;\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 UserMetadata(\"default\", UserMetadataArgs.builder() \n .orgId(defaultZitadelOrg.id())\n .userId(defaultZitadelHumanUser.id())\n .key(\"a_key\")\n .value(\"a_value\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: zitadel:UserMetadata\n properties:\n orgId: ${defaultZitadelOrg.id}\n userId: ${defaultZitadelHumanUser.id}\n key: a_key\n value: a_value\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nbash The resource can be imported using the ID format `\u003cuser_id:key[:org_id]\u003e`, e.g.\n\n```sh\n $ pulumi import zitadel:index/userMetadata:UserMetadata imported '123456789012345678:a_key:123456789012345678'\n```\n\n ", + "properties": { + "key": { + "type": "string", + "description": "The key of a metadata entry\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "userId": { + "type": "string", + "description": "ID of the user\n" + }, + "value": { + "type": "string", + "description": "The string representation of a metadata entry value. For binary data, use the base64encode function.\n" + } + }, + "required": [ + "key", + "userId", + "value" ], "inputProperties": { - "orgId": { - "type": "string", - "description": "ID of the organization\n", - "willReplaceOnChanges": true - }, - "projectGrantId": { + "key": { "type": "string", - "description": "ID of the granted project\n", + "description": "The key of a metadata entry\n", "willReplaceOnChanges": true }, - "projectId": { + "orgId": { "type": "string", - "description": "ID of the project\n", + "description": "ID of the organization\n", "willReplaceOnChanges": true }, - "roleKeys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of roles granted\n" - }, "userId": { "type": "string", "description": "ID of the user\n", "willReplaceOnChanges": true + }, + "value": { + "type": "string", + "description": "The string representation of a metadata entry value. For binary data, use the base64encode function.\n" } }, "requiredInputs": [ - "userId" + "key", + "userId", + "value" ], "stateInputs": { - "description": "Input properties used for looking up and filtering UserGrant resources.\n", + "description": "Input properties used for looking up and filtering UserMetadata resources.\n", "properties": { - "orgId": { - "type": "string", - "description": "ID of the organization\n", - "willReplaceOnChanges": true - }, - "projectGrantId": { + "key": { "type": "string", - "description": "ID of the granted project\n", + "description": "The key of a metadata entry\n", "willReplaceOnChanges": true }, - "projectId": { + "orgId": { "type": "string", - "description": "ID of the project\n", + "description": "ID of the organization\n", "willReplaceOnChanges": true }, - "roleKeys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of roles granted\n" - }, "userId": { "type": "string", "description": "ID of the user\n", "willReplaceOnChanges": true + }, + "value": { + "type": "string", + "description": "The string representation of a metadata entry value. For binary data, use the base64encode function.\n" } }, "type": "object" @@ -8552,9 +9378,243 @@ "type": "string", "description": "The ID of this resource.\n" }, - "idAttribute": { + "idAttribute": { + "type": "string", + "description": "User attribute for the id\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enabled if a new account in ZITADEL are created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enabled if a the ZITADEL account fields are updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enabled if users are able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enabled if users are able to link an existing ZITADEL user with an external account\n" + }, + "lastNameAttribute": { + "type": "string", + "description": "User attribute for the last name\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "nickNameAttribute": { + "type": "string", + "description": "User attribute for the nick name\n" + }, + "phoneAttribute": { + "type": "string", + "description": "User attribute for the phone\n" + }, + "phoneVerifiedAttribute": { + "type": "string", + "description": "User attribute for the phone verified state\n" + }, + "preferredLanguageAttribute": { + "type": "string", + "description": "User attribute for the preferred language\n" + }, + "preferredUsernameAttribute": { + "type": "string", + "description": "User attribute for the preferred username\n" + }, + "profileAttribute": { + "type": "string", + "description": "User attribute for the profile\n" + }, + "servers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Servers to try in order for establishing LDAP connections\n" + }, + "startTls": { + "type": "boolean", + "description": "Wether to use StartTLS for LDAP connections\n" + }, + "timeout": { + "type": "string", + "description": "Timeout for LDAP connections\n" + }, + "userBase": { + "type": "string", + "description": "User base for LDAP connections\n" + }, + "userFilters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User filters for LDAP connections\n" + }, + "userObjectClasses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User object classes for LDAP connections\n" + } + }, + "type": "object", + "required": [ + "avatarUrlAttribute", + "baseDn", + "bindDn", + "bindPassword", + "displayNameAttribute", + "emailAttribute", + "emailVerifiedAttribute", + "firstNameAttribute", + "id", + "idAttribute", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "lastNameAttribute", + "name", + "nickNameAttribute", + "phoneAttribute", + "phoneVerifiedAttribute", + "preferredLanguageAttribute", + "preferredUsernameAttribute", + "profileAttribute", + "servers", + "startTls", + "timeout", + "userBase", + "userFilters", + "userObjectClasses" + ] + } + }, + "zitadel:index/getIdpOauth:getIdpOauth": { + "description": "Datasource representing a generic OAuth2 IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumi/zitadel\";\n\nconst default = zitadel.getIdpOauth({\n id: \"123456789012345678\",\n});\n```\n```python\nimport pulumi\nimport pulumi_zitadel as zitadel\n\ndefault = zitadel.get_idp_oauth(id=\"123456789012345678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumi.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Zitadel.GetIdpOauth.Invoke(new()\n {\n Id = \"123456789012345678\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.LookupIdpOauth(ctx, \u0026zitadel.LookupIdpOauthArgs{\n\t\t\tId: \"123456789012345678\",\n\t\t}, nil)\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.zitadel.ZitadelFunctions;\nimport com.pulumi.zitadel.inputs.GetIdpOauthArgs;\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 final var default = ZitadelFunctions.getIdpOauth(GetIdpOauthArgs.builder()\n .id(\"123456789012345678\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: zitadel:getIdpOauth\n Arguments:\n id: '123456789012345678'\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getIdpOauth.\n", + "properties": { + "id": { + "type": "string", + "description": "The ID of this resource.\n" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "outputs": { + "description": "A collection of values returned by getIdpOauth.\n", + "properties": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "id": { + "type": "string", + "description": "The ID of this resource.\n" + }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enabled if a new account in ZITADEL are created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enabled if a the ZITADEL account fields are updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enabled if users are able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enabled if users are able to link an existing ZITADEL user with an external account\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" + } + }, + "type": "object", + "required": [ + "authorizationEndpoint", + "clientId", + "clientSecret", + "id", + "idAttribute", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "name", + "scopes", + "tokenEndpoint", + "userEndpoint" + ] + } + }, + "zitadel:index/getIdpSaml:getIdpSaml": { + "description": "Datasource representing a SAML IDP on the instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumi/zitadel\";\n\nconst default = zitadel.getIdpSaml({\n id: \"123456789012345678\",\n});\n```\n```python\nimport pulumi\nimport pulumi_zitadel as zitadel\n\ndefault = zitadel.get_idp_saml(id=\"123456789012345678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumi.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Zitadel.GetIdpSaml.Invoke(new()\n {\n Id = \"123456789012345678\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.LookupIdpSaml(ctx, \u0026zitadel.LookupIdpSamlArgs{\n\t\t\tId: \"123456789012345678\",\n\t\t}, nil)\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.zitadel.ZitadelFunctions;\nimport com.pulumi.zitadel.inputs.GetIdpSamlArgs;\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 final var default = ZitadelFunctions.getIdpSaml(GetIdpSamlArgs.builder()\n .id(\"123456789012345678\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: zitadel:getIdpSaml\n Arguments:\n id: '123456789012345678'\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getIdpSaml.\n", + "properties": { + "id": { + "type": "string", + "description": "The ID of this resource.\n" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "outputs": { + "description": "A collection of values returned by getIdpSaml.\n", + "properties": { + "binding": { + "type": "string", + "description": "The binding\n" + }, + "id": { "type": "string", - "description": "User attribute for the id\n" + "description": "The ID of this resource.\n" }, "isAutoCreation": { "type": "boolean", @@ -8572,102 +9632,30 @@ "type": "boolean", "description": "enabled if users are able to link an existing ZITADEL user with an external account\n" }, - "lastNameAttribute": { + "metadataXml": { "type": "string", - "description": "User attribute for the last name\n" + "description": "The metadata XML as plain string\n" }, "name": { "type": "string", "description": "Name of the IDP\n" }, - "nickNameAttribute": { - "type": "string", - "description": "User attribute for the nick name\n" - }, - "phoneAttribute": { - "type": "string", - "description": "User attribute for the phone\n" - }, - "phoneVerifiedAttribute": { - "type": "string", - "description": "User attribute for the phone verified state\n" - }, - "preferredLanguageAttribute": { - "type": "string", - "description": "User attribute for the preferred language\n" - }, - "preferredUsernameAttribute": { - "type": "string", - "description": "User attribute for the preferred username\n" - }, - "profileAttribute": { - "type": "string", - "description": "User attribute for the profile\n" - }, - "servers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Servers to try in order for establishing LDAP connections\n" - }, - "startTls": { - "type": "boolean", - "description": "Wether to use StartTLS for LDAP connections\n" - }, - "timeout": { - "type": "string", - "description": "Timeout for LDAP connections\n" - }, - "userBase": { + "withSignedRequest": { "type": "string", - "description": "User base for LDAP connections\n" - }, - "userFilters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User filters for LDAP connections\n" - }, - "userObjectClasses": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User object classes for LDAP connections\n" + "description": "Whether the SAML IDP requires signed requests\n" } }, "type": "object", "required": [ - "avatarUrlAttribute", - "baseDn", - "bindDn", - "bindPassword", - "displayNameAttribute", - "emailAttribute", - "emailVerifiedAttribute", - "firstNameAttribute", + "binding", "id", - "idAttribute", "isAutoCreation", "isAutoUpdate", "isCreationAllowed", "isLinkingAllowed", - "lastNameAttribute", + "metadataXml", "name", - "nickNameAttribute", - "phoneAttribute", - "phoneVerifiedAttribute", - "preferredLanguageAttribute", - "preferredUsernameAttribute", - "profileAttribute", - "servers", - "startTls", - "timeout", - "userBase", - "userFilters", - "userObjectClasses" + "withSignedRequest" ] } }, @@ -9561,6 +10549,184 @@ ] } }, + "zitadel:index/getOrgIdpOauth:getOrgIdpOauth": { + "description": "Datasource representing a generic OAuth2 IDP of the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumi/zitadel\";\n\nconst default = zitadel.getOrgIdpOauth({\n orgId: defaultZitadelOrg.id,\n id: \"123456789012345678\",\n});\n```\n```python\nimport pulumi\nimport pulumi_zitadel as zitadel\n\ndefault = zitadel.get_org_idp_oauth(org_id=default_zitadel_org[\"id\"],\n id=\"123456789012345678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumi.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Zitadel.GetOrgIdpOauth.Invoke(new()\n {\n OrgId = defaultZitadelOrg.Id,\n Id = \"123456789012345678\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.LookupOrgIdpOauth(ctx, \u0026zitadel.LookupOrgIdpOauthArgs{\n\t\t\tOrgId: pulumi.StringRef(defaultZitadelOrg.Id),\n\t\t\tId: \"123456789012345678\",\n\t\t}, nil)\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.zitadel.ZitadelFunctions;\nimport com.pulumi.zitadel.inputs.GetOrgIdpOauthArgs;\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 final var default = ZitadelFunctions.getOrgIdpOauth(GetOrgIdpOauthArgs.builder()\n .orgId(defaultZitadelOrg.id())\n .id(\"123456789012345678\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: zitadel:getOrgIdpOauth\n Arguments:\n orgId: ${defaultZitadelOrg.id}\n id: '123456789012345678'\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getOrgIdpOauth.\n", + "properties": { + "id": { + "type": "string", + "description": "The ID of this resource.\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "outputs": { + "description": "A collection of values returned by getOrgIdpOauth.\n", + "properties": { + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint\n" + }, + "clientId": { + "type": "string", + "description": "client id generated by the identity provider\n" + }, + "clientSecret": { + "type": "string", + "description": "client secret generated by the identity provider\n", + "secret": true + }, + "id": { + "type": "string", + "description": "The ID of this resource.\n" + }, + "idAttribute": { + "type": "string", + "description": "The id attribute\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enabled if a new account in ZITADEL are created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enabled if a the ZITADEL account fields are updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enabled if users are able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enabled if users are able to link an existing ZITADEL user with an external account\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "the scopes requested by ZITADEL during the request on the identity provider\n" + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint\n" + }, + "userEndpoint": { + "type": "string", + "description": "The user endpoint\n" + } + }, + "type": "object", + "required": [ + "authorizationEndpoint", + "clientId", + "clientSecret", + "id", + "idAttribute", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "name", + "scopes", + "tokenEndpoint", + "userEndpoint" + ] + } + }, + "zitadel:index/getOrgIdpSaml:getOrgIdpSaml": { + "description": "Datasource representing a SAML IdP of the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as zitadel from \"@pulumi/zitadel\";\n\nconst default = zitadel.getOrgIdpSaml({\n orgId: defaultZitadelOrg.id,\n id: \"123456789012345678\",\n});\n```\n```python\nimport pulumi\nimport pulumi_zitadel as zitadel\n\ndefault = zitadel.get_org_idp_saml(org_id=default_zitadel_org[\"id\"],\n id=\"123456789012345678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Zitadel = Pulumi.Zitadel;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Zitadel.GetOrgIdpSaml.Invoke(new()\n {\n OrgId = defaultZitadelOrg.Id,\n Id = \"123456789012345678\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := zitadel.LookupOrgIdpSaml(ctx, \u0026zitadel.LookupOrgIdpSamlArgs{\n\t\t\tOrgId: pulumi.StringRef(defaultZitadelOrg.Id),\n\t\t\tId: \"123456789012345678\",\n\t\t}, nil)\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.zitadel.ZitadelFunctions;\nimport com.pulumi.zitadel.inputs.GetOrgIdpSamlArgs;\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 final var default = ZitadelFunctions.getOrgIdpSaml(GetOrgIdpSamlArgs.builder()\n .orgId(defaultZitadelOrg.id())\n .id(\"123456789012345678\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: zitadel:getOrgIdpSaml\n Arguments:\n orgId: ${defaultZitadelOrg.id}\n id: '123456789012345678'\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getOrgIdpSaml.\n", + "properties": { + "id": { + "type": "string", + "description": "The ID of this resource.\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "outputs": { + "description": "A collection of values returned by getOrgIdpSaml.\n", + "properties": { + "binding": { + "type": "string", + "description": "The binding\n" + }, + "id": { + "type": "string", + "description": "The ID of this resource.\n" + }, + "isAutoCreation": { + "type": "boolean", + "description": "enabled if a new account in ZITADEL are created automatically on login with an external account\n" + }, + "isAutoUpdate": { + "type": "boolean", + "description": "enabled if a the ZITADEL account fields are updated automatically on each login\n" + }, + "isCreationAllowed": { + "type": "boolean", + "description": "enabled if users are able to create a new account in ZITADEL when using an external account\n" + }, + "isLinkingAllowed": { + "type": "boolean", + "description": "enabled if users are able to link an existing ZITADEL user with an external account\n" + }, + "metadataXml": { + "type": "string", + "description": "The metadata XML as plain string\n" + }, + "name": { + "type": "string", + "description": "Name of the IDP\n" + }, + "orgId": { + "type": "string", + "description": "ID of the organization\n" + }, + "withSignedRequest": { + "type": "string", + "description": "Whether the SAML IDP requires signed requests\n" + } + }, + "type": "object", + "required": [ + "binding", + "id", + "isAutoCreation", + "isAutoUpdate", + "isCreationAllowed", + "isLinkingAllowed", + "metadataXml", + "name", + "withSignedRequest" + ] + } + }, "zitadel:index/getOrgJwtIdp:getOrgJwtIdp": { "description": "Datasource representing a generic JWT IdP on the organization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.zitadel.ZitadelFunctions;\nimport com.pulumi.zitadel.inputs.GetOrgJwtIdpArgs;\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 final var default = ZitadelFunctions.getOrgJwtIdp(GetOrgJwtIdpArgs.builder()\n .orgId(defaultZitadelOrg.id())\n .id(\"123456789012345678\")\n .build());\n\n ctx.export(\"orgIdpOrgJwtIdp\", default_);\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: zitadel:getOrgJwtIdp\n Arguments:\n orgId: ${defaultZitadelOrg.id}\n id: '123456789012345678'\noutputs:\n orgIdpOrgJwtIdp: ${default}\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index 665164f..ced4cb5 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -7,7 +7,7 @@ replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraf require ( github.com/pulumi/pulumi-terraform-bridge/v3 v3.62.0 github.com/pulumi/pulumi/sdk/v3 v3.89.0 - github.com/zitadel/terraform-provider-zitadel v1.1.1 + github.com/zitadel/terraform-provider-zitadel v1.2.0 ) require ( @@ -240,14 +240,14 @@ 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.18.0 // indirect + golang.org/x/crypto v0.21.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.20.0 // indirect + golang.org/x/net v0.23.0 // indirect golang.org/x/oauth2 v0.16.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/term v0.16.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.14.0 // indirect @@ -258,7 +258,7 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect google.golang.org/grpc v1.61.0 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index ddc0cba..044fe38 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2446,8 +2446,8 @@ github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaD github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/zitadel/oidc v1.13.5 h1:7jhh68NGZitLqwLiVU9Dtwa4IraJPFF1vS+4UupO93U= github.com/zitadel/oidc v1.13.5/go.mod h1:rHs1DhU3Sv3tnI6bQRVlFa3u0lCwtR7S21WHY+yXgPA= -github.com/zitadel/terraform-provider-zitadel v1.1.1 h1:Ys0jBN9NcJtBkAEFxLDakDuLH5Z002/+Yeu75+ixvhs= -github.com/zitadel/terraform-provider-zitadel v1.1.1/go.mod h1:3hq2uZ1n6/z9M9sLo0ShBPOPQuzwrZKCU7MS9ytiyOk= +github.com/zitadel/terraform-provider-zitadel v1.2.0 h1:CLDX2RjgI3lnTjBngZJ3E7lkNfPbph1fELaSE7ArbAE= +github.com/zitadel/terraform-provider-zitadel v1.2.0/go.mod h1:rzoOhFgdh0e/Jgu7o0yqTWf/9u7ikJoETlIsUPS4RDM= github.com/zitadel/zitadel-go/v2 v2.1.8 h1:b+1SoltzphLq0ixYwSuROQBEdBXFAs/5xMGVsQ52Waw= github.com/zitadel/zitadel-go/v2 v2.1.8/go.mod h1:uHnf22GMpkAdRyFtJ/xUwaqEI5gxRbu4FnKEqpzuclA= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -2605,8 +2605,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.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= 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= @@ -2767,8 +2767,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2984,8 +2984,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.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.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= @@ -3002,8 +3002,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.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= 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= @@ -3465,8 +3465,8 @@ google.golang.org/protobuf v1.28.2-0.20230222093303-bc1253ad3743/go.mod h1:HV8QO google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/provider/resources.go b/provider/resources.go index 0e88d2d..a7ed422 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -24,6 +24,7 @@ import ( "github.com/zitadel/terraform-provider-zitadel/zitadel" "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" + tks "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge/tokens" shim "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim" shimv2 "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim/sdk-v2" "github.com/pulumi/pulumi/sdk/v3/go/common/resource" @@ -244,6 +245,7 @@ func Provider() tfbridge.ProviderInfo { MetadataInfo: tfbridge.NewProviderMetadata(metadata), } + prov.MustComputeTokens(tks.SingleModule("zitadel_", mainMod, tks.MakeStandard(mainPkg))) prov.SetAutonaming(255, "-") prov.MustApplyAutoAliases() From ceb06f4fbfddf137cc5ae7099af76944d2b344bf Mon Sep 17 00:00:00 2001 From: Ringo De Smet Date: Mon, 24 Mar 2025 14:21:35 +0100 Subject: [PATCH 2/2] make build_sdks --- sdk/dotnet/Action.cs | 2 +- sdk/dotnet/ApplicationApi.cs | 2 +- sdk/dotnet/ApplicationKey.cs | 2 +- sdk/dotnet/ApplicationOidc.cs | 2 +- sdk/dotnet/ApplicationSaml.cs | 2 +- sdk/dotnet/DefaultDomainPolicy.cs | 2 +- sdk/dotnet/DefaultLabelPolicy.cs | 20 +- sdk/dotnet/DefaultLockoutPolicy.cs | 2 +- sdk/dotnet/DefaultLoginPolicy.cs | 2 +- sdk/dotnet/DefaultNotificationPolicy.cs | 2 +- sdk/dotnet/DefaultPasswordComplexityPolicy.cs | 2 +- sdk/dotnet/DefaultPrivacyPolicy.cs | 2 +- sdk/dotnet/Domain.cs | 2 +- sdk/dotnet/DomainPolicy.cs | 2 +- sdk/dotnet/GetIdpOauth.cs | 201 ++++ sdk/dotnet/GetIdpSaml.cs | 173 ++++ sdk/dotnet/GetOrgIdpOauth.cs | 222 +++++ sdk/dotnet/GetOrgIdpSaml.cs | 194 ++++ sdk/dotnet/HumanUser.cs | 2 +- sdk/dotnet/IdpAzureAd.cs | 2 +- sdk/dotnet/IdpGithub.cs | 2 +- sdk/dotnet/IdpGithubEs.cs | 2 +- sdk/dotnet/IdpGitlab.cs | 2 +- sdk/dotnet/IdpGitlabSelfHosted.cs | 2 +- sdk/dotnet/IdpGoogle.cs | 2 +- sdk/dotnet/IdpLdap.cs | 2 +- sdk/dotnet/IdpOauth.cs | 373 +++++++ sdk/dotnet/IdpSaml.cs | 293 ++++++ sdk/dotnet/InstanceMember.cs | 2 +- sdk/dotnet/LabelPolicy.cs | 20 +- sdk/dotnet/LockoutPolicy.cs | 2 +- sdk/dotnet/LoginPolicy.cs | 2 +- sdk/dotnet/MachineKey.cs | 2 +- sdk/dotnet/MachineUser.cs | 2 +- sdk/dotnet/NotificationPolicy.cs | 2 +- sdk/dotnet/Org.cs | 2 +- sdk/dotnet/OrgIdpAzureAd.cs | 2 +- sdk/dotnet/OrgIdpGithub.cs | 2 +- sdk/dotnet/OrgIdpGithubEs.cs | 2 +- sdk/dotnet/OrgIdpGitlab.cs | 2 +- sdk/dotnet/OrgIdpGitlabSelfHosted.cs | 2 +- sdk/dotnet/OrgIdpGoogle.cs | 2 +- sdk/dotnet/OrgIdpJwt.cs | 2 +- sdk/dotnet/OrgIdpLdap.cs | 2 +- sdk/dotnet/OrgIdpOauth.cs | 392 ++++++++ sdk/dotnet/OrgIdpOidc.cs | 2 +- sdk/dotnet/OrgIdpSaml.cs | 312 ++++++ sdk/dotnet/OrgMember.cs | 2 +- sdk/dotnet/OrgMetadata.cs | 159 +++ sdk/dotnet/PersonalAccessToken.cs | 2 +- sdk/dotnet/PrivacyPolicy.cs | 2 +- sdk/dotnet/Project.cs | 2 +- sdk/dotnet/ProjectGrant.cs | 2 +- sdk/dotnet/ProjectGrantMember.cs | 2 +- sdk/dotnet/ProjectMember.cs | 2 +- sdk/dotnet/ProjectRole.cs | 2 +- sdk/dotnet/SmsProviderTwilio.cs | 2 +- sdk/dotnet/SmtpConfig.cs | 2 +- sdk/dotnet/TriggerActions.cs | 2 +- sdk/dotnet/UserGrant.cs | 2 +- sdk/dotnet/UserMetadata.cs | 178 ++++ sdk/go/zitadel/action.go | 2 +- sdk/go/zitadel/applicationApi.go | 2 +- sdk/go/zitadel/applicationKey.go | 2 +- sdk/go/zitadel/applicationOidc.go | 2 +- sdk/go/zitadel/applicationSaml.go | 2 +- sdk/go/zitadel/defaultDomainPolicy.go | 2 +- sdk/go/zitadel/defaultLabelPolicy.go | 17 +- sdk/go/zitadel/defaultLockoutPolicy.go | 2 +- sdk/go/zitadel/defaultLoginPolicy.go | 2 +- sdk/go/zitadel/defaultNotificationPolicy.go | 2 +- .../defaultPasswordComplexityPolicy.go | 2 +- sdk/go/zitadel/defaultPrivacyPolicy.go | 2 +- sdk/go/zitadel/domain.go | 2 +- sdk/go/zitadel/domainPolicy.go | 2 +- sdk/go/zitadel/getIdpOauth.go | 199 ++++ sdk/go/zitadel/getIdpSaml.go | 171 ++++ sdk/go/zitadel/getOrgIdpOauth.go | 211 ++++ sdk/go/zitadel/getOrgIdpSaml.go | 183 ++++ sdk/go/zitadel/humanUser.go | 2 +- sdk/go/zitadel/idpAzureAd.go | 2 +- sdk/go/zitadel/idpGithub.go | 2 +- sdk/go/zitadel/idpGithubEs.go | 2 +- sdk/go/zitadel/idpGitlab.go | 2 +- sdk/go/zitadel/idpGitlabSelfHosted.go | 2 +- sdk/go/zitadel/idpGoogle.go | 2 +- sdk/go/zitadel/idpLdap.go | 2 +- sdk/go/zitadel/idpOauth.go | 506 ++++++++++ sdk/go/zitadel/idpSaml.go | 459 +++++++++ sdk/go/zitadel/init.go | 42 + sdk/go/zitadel/instanceMember.go | 2 +- sdk/go/zitadel/labelPolicy.go | 17 +- sdk/go/zitadel/lockoutPolicy.go | 2 +- sdk/go/zitadel/loginPolicy.go | 2 +- sdk/go/zitadel/machineKey.go | 2 +- sdk/go/zitadel/machineUser.go | 2 +- sdk/go/zitadel/notificationPolicy.go | 2 +- sdk/go/zitadel/org.go | 2 +- sdk/go/zitadel/orgIdpAzureAd.go | 2 +- sdk/go/zitadel/orgIdpGithub.go | 2 +- sdk/go/zitadel/orgIdpGithubEs.go | 2 +- sdk/go/zitadel/orgIdpGitlab.go | 2 +- sdk/go/zitadel/orgIdpGitlabSelfHosted.go | 2 +- sdk/go/zitadel/orgIdpGoogle.go | 2 +- sdk/go/zitadel/orgIdpJwt.go | 2 +- sdk/go/zitadel/orgIdpLdap.go | 2 +- sdk/go/zitadel/orgIdpOauth.go | 522 ++++++++++ sdk/go/zitadel/orgIdpOidc.go | 2 +- sdk/go/zitadel/orgIdpSaml.go | 475 +++++++++ sdk/go/zitadel/orgMember.go | 2 +- sdk/go/zitadel/orgMetadata.go | 325 +++++++ sdk/go/zitadel/personalAccessToken.go | 2 +- sdk/go/zitadel/privacyPolicy.go | 2 +- sdk/go/zitadel/project.go | 2 +- sdk/go/zitadel/projectGrant.go | 2 +- sdk/go/zitadel/projectGrantMember.go | 2 +- sdk/go/zitadel/projectMember.go | 2 +- sdk/go/zitadel/projectRole.go | 2 +- sdk/go/zitadel/smsProviderTwilio.go | 2 +- sdk/go/zitadel/smtpConfig.go | 2 +- sdk/go/zitadel/triggerActions.go | 2 +- sdk/go/zitadel/userGrant.go | 2 +- sdk/go/zitadel/userMetadata.go | 344 +++++++ sdk/nodejs/action.ts | 2 +- sdk/nodejs/applicationApi.ts | 2 +- sdk/nodejs/applicationKey.ts | 2 +- sdk/nodejs/applicationOidc.ts | 2 +- sdk/nodejs/applicationSaml.ts | 2 +- sdk/nodejs/defaultDomainPolicy.ts | 2 +- sdk/nodejs/defaultLabelPolicy.ts | 16 +- sdk/nodejs/defaultLockoutPolicy.ts | 2 +- sdk/nodejs/defaultLoginPolicy.ts | 2 +- sdk/nodejs/defaultNotificationPolicy.ts | 2 +- sdk/nodejs/defaultPasswordComplexityPolicy.ts | 2 +- sdk/nodejs/defaultPrivacyPolicy.ts | 2 +- sdk/nodejs/domain.ts | 2 +- sdk/nodejs/domainPolicy.ts | 2 +- sdk/nodejs/getIdpOauth.ts | 122 +++ sdk/nodejs/getIdpSaml.ts | 106 ++ sdk/nodejs/getOrgIdpOauth.ts | 137 +++ sdk/nodejs/getOrgIdpSaml.ts | 121 +++ sdk/nodejs/humanUser.ts | 2 +- sdk/nodejs/idpAzureAd.ts | 2 +- sdk/nodejs/idpGithub.ts | 2 +- sdk/nodejs/idpGithubEs.ts | 2 +- sdk/nodejs/idpGitlab.ts | 2 +- sdk/nodejs/idpGitlabSelfHosted.ts | 2 +- sdk/nodejs/idpGoogle.ts | 2 +- sdk/nodejs/idpLdap.ts | 2 +- sdk/nodejs/idpOauth.ts | 304 ++++++ sdk/nodejs/idpSaml.ts | 260 +++++ sdk/nodejs/index.ts | 68 ++ sdk/nodejs/instanceMember.ts | 2 +- sdk/nodejs/labelPolicy.ts | 16 +- sdk/nodejs/lockoutPolicy.ts | 2 +- sdk/nodejs/loginPolicy.ts | 2 +- sdk/nodejs/machineKey.ts | 2 +- sdk/nodejs/machineUser.ts | 2 +- sdk/nodejs/notificationPolicy.ts | 2 +- sdk/nodejs/org.ts | 2 +- sdk/nodejs/orgIdpAzureAd.ts | 2 +- sdk/nodejs/orgIdpGithub.ts | 2 +- sdk/nodejs/orgIdpGithubEs.ts | 2 +- sdk/nodejs/orgIdpGitlab.ts | 2 +- sdk/nodejs/orgIdpGitlabSelfHosted.ts | 2 +- sdk/nodejs/orgIdpGoogle.ts | 2 +- sdk/nodejs/orgIdpJwt.ts | 2 +- sdk/nodejs/orgIdpLdap.ts | 2 +- sdk/nodejs/orgIdpOauth.ts | 319 ++++++ sdk/nodejs/orgIdpOidc.ts | 2 +- sdk/nodejs/orgIdpSaml.ts | 275 ++++++ sdk/nodejs/orgMember.ts | 2 +- sdk/nodejs/orgMetadata.ts | 137 +++ sdk/nodejs/personalAccessToken.ts | 2 +- sdk/nodejs/privacyPolicy.ts | 2 +- sdk/nodejs/project.ts | 2 +- sdk/nodejs/projectGrant.ts | 2 +- sdk/nodejs/projectGrantMember.ts | 2 +- sdk/nodejs/projectMember.ts | 2 +- sdk/nodejs/projectRole.ts | 2 +- sdk/nodejs/smsProviderTwilio.ts | 2 +- sdk/nodejs/smtpConfig.ts | 2 +- sdk/nodejs/triggerActions.ts | 2 +- sdk/nodejs/tsconfig.json | 10 + sdk/nodejs/userGrant.ts | 2 +- sdk/nodejs/userMetadata.ts | 155 +++ sdk/python/pulumiverse_zitadel/__init__.py | 58 ++ sdk/python/pulumiverse_zitadel/action.py | 4 +- .../pulumiverse_zitadel/application_api.py | 4 +- .../pulumiverse_zitadel/application_key.py | 4 +- .../pulumiverse_zitadel/application_oidc.py | 4 +- .../pulumiverse_zitadel/application_saml.py | 4 +- .../default_domain_policy.py | 4 +- .../default_label_policy.py | 61 +- .../default_lockout_policy.py | 4 +- .../default_login_policy.py | 4 +- .../default_notification_policy.py | 4 +- .../default_password_complexity_policy.py | 4 +- .../default_privacy_policy.py | 4 +- sdk/python/pulumiverse_zitadel/domain.py | 4 +- .../pulumiverse_zitadel/domain_policy.py | 4 +- .../pulumiverse_zitadel/get_idp_oauth.py | 247 +++++ .../pulumiverse_zitadel/get_idp_saml.py | 195 ++++ .../pulumiverse_zitadel/get_org_idp_oauth.py | 267 ++++++ .../pulumiverse_zitadel/get_org_idp_saml.py | 215 +++++ sdk/python/pulumiverse_zitadel/human_user.py | 4 +- .../pulumiverse_zitadel/idp_azure_ad.py | 4 +- sdk/python/pulumiverse_zitadel/idp_github.py | 4 +- .../pulumiverse_zitadel/idp_github_es.py | 4 +- sdk/python/pulumiverse_zitadel/idp_gitlab.py | 4 +- .../idp_gitlab_self_hosted.py | 4 +- sdk/python/pulumiverse_zitadel/idp_google.py | 4 +- sdk/python/pulumiverse_zitadel/idp_ldap.py | 4 +- sdk/python/pulumiverse_zitadel/idp_oauth.py | 850 ++++++++++++++++ sdk/python/pulumiverse_zitadel/idp_saml.py | 681 +++++++++++++ .../pulumiverse_zitadel/instance_member.py | 4 +- .../pulumiverse_zitadel/label_policy.py | 61 +- .../pulumiverse_zitadel/lockout_policy.py | 4 +- .../pulumiverse_zitadel/login_policy.py | 4 +- sdk/python/pulumiverse_zitadel/machine_key.py | 4 +- .../pulumiverse_zitadel/machine_user.py | 4 +- .../notification_policy.py | 4 +- sdk/python/pulumiverse_zitadel/org.py | 4 +- .../pulumiverse_zitadel/org_idp_azure_ad.py | 4 +- .../pulumiverse_zitadel/org_idp_github.py | 4 +- .../pulumiverse_zitadel/org_idp_github_es.py | 4 +- .../pulumiverse_zitadel/org_idp_gitlab.py | 4 +- .../org_idp_gitlab_self_hosted.py | 4 +- .../pulumiverse_zitadel/org_idp_google.py | 4 +- sdk/python/pulumiverse_zitadel/org_idp_jwt.py | 4 +- .../pulumiverse_zitadel/org_idp_ldap.py | 4 +- .../pulumiverse_zitadel/org_idp_oauth.py | 907 ++++++++++++++++++ .../pulumiverse_zitadel/org_idp_oidc.py | 4 +- .../pulumiverse_zitadel/org_idp_saml.py | 738 ++++++++++++++ sdk/python/pulumiverse_zitadel/org_member.py | 4 +- .../pulumiverse_zitadel/org_metadata.py | 315 ++++++ .../personal_access_token.py | 4 +- .../pulumiverse_zitadel/privacy_policy.py | 4 +- sdk/python/pulumiverse_zitadel/project.py | 4 +- .../pulumiverse_zitadel/project_grant.py | 4 +- .../project_grant_member.py | 4 +- .../pulumiverse_zitadel/project_member.py | 4 +- .../pulumiverse_zitadel/project_role.py | 4 +- .../sms_provider_twilio.py | 4 +- sdk/python/pulumiverse_zitadel/smtp_config.py | 4 +- .../pulumiverse_zitadel/trigger_actions.py | 4 +- sdk/python/pulumiverse_zitadel/user_grant.py | 4 +- .../pulumiverse_zitadel/user_metadata.py | 373 +++++++ 248 files changed, 13255 insertions(+), 257 deletions(-) create mode 100644 sdk/dotnet/GetIdpOauth.cs create mode 100644 sdk/dotnet/GetIdpSaml.cs create mode 100644 sdk/dotnet/GetOrgIdpOauth.cs create mode 100644 sdk/dotnet/GetOrgIdpSaml.cs create mode 100644 sdk/dotnet/IdpOauth.cs create mode 100644 sdk/dotnet/IdpSaml.cs create mode 100644 sdk/dotnet/OrgIdpOauth.cs create mode 100644 sdk/dotnet/OrgIdpSaml.cs create mode 100644 sdk/dotnet/OrgMetadata.cs create mode 100644 sdk/dotnet/UserMetadata.cs create mode 100644 sdk/go/zitadel/getIdpOauth.go create mode 100644 sdk/go/zitadel/getIdpSaml.go create mode 100644 sdk/go/zitadel/getOrgIdpOauth.go create mode 100644 sdk/go/zitadel/getOrgIdpSaml.go create mode 100644 sdk/go/zitadel/idpOauth.go create mode 100644 sdk/go/zitadel/idpSaml.go create mode 100644 sdk/go/zitadel/orgIdpOauth.go create mode 100644 sdk/go/zitadel/orgIdpSaml.go create mode 100644 sdk/go/zitadel/orgMetadata.go create mode 100644 sdk/go/zitadel/userMetadata.go create mode 100644 sdk/nodejs/getIdpOauth.ts create mode 100644 sdk/nodejs/getIdpSaml.ts create mode 100644 sdk/nodejs/getOrgIdpOauth.ts create mode 100644 sdk/nodejs/getOrgIdpSaml.ts create mode 100644 sdk/nodejs/idpOauth.ts create mode 100644 sdk/nodejs/idpSaml.ts create mode 100644 sdk/nodejs/orgIdpOauth.ts create mode 100644 sdk/nodejs/orgIdpSaml.ts create mode 100644 sdk/nodejs/orgMetadata.ts create mode 100644 sdk/nodejs/userMetadata.ts create mode 100644 sdk/python/pulumiverse_zitadel/get_idp_oauth.py create mode 100644 sdk/python/pulumiverse_zitadel/get_idp_saml.py create mode 100644 sdk/python/pulumiverse_zitadel/get_org_idp_oauth.py create mode 100644 sdk/python/pulumiverse_zitadel/get_org_idp_saml.py create mode 100644 sdk/python/pulumiverse_zitadel/idp_oauth.py create mode 100644 sdk/python/pulumiverse_zitadel/idp_saml.py create mode 100644 sdk/python/pulumiverse_zitadel/org_idp_oauth.py create mode 100644 sdk/python/pulumiverse_zitadel/org_idp_saml.py create mode 100644 sdk/python/pulumiverse_zitadel/org_metadata.py create mode 100644 sdk/python/pulumiverse_zitadel/user_metadata.py diff --git a/sdk/dotnet/Action.cs b/sdk/dotnet/Action.cs index 3c720a4..374b824 100644 --- a/sdk/dotnet/Action.cs +++ b/sdk/dotnet/Action.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/action:Action imported '123456789012345678:123456789012345678' diff --git a/sdk/dotnet/ApplicationApi.cs b/sdk/dotnet/ApplicationApi.cs index 63ced1d..d0a2eb6 100644 --- a/sdk/dotnet/ApplicationApi.cs +++ b/sdk/dotnet/ApplicationApi.cs @@ -36,7 +36,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:project_id[:org_id][:client_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id:project_id[:org_id][:client_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/applicationApi:ApplicationApi imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' diff --git a/sdk/dotnet/ApplicationKey.cs b/sdk/dotnet/ApplicationKey.cs index 277d8d5..3f8f614 100644 --- a/sdk/dotnet/ApplicationKey.cs +++ b/sdk/dotnet/ApplicationKey.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:project_id:app_id[:org_id][:key_details]>`. You can use __SEMICOLON__ to escape :, e.g. + /// bash The resource can be imported using the ID format `<id:project_id:app_id[:org_id][:key_details]>`. You can use __SEMICOLON__ to escape :, e.g. /// /// ```sh /// $ pulumi import zitadel:index/applicationKey:ApplicationKey imported "123456789012345678:123456789012345678:123456789012345678:123456789012345678:$(cat ~/Downloads/123456789012345678.json | sed -e 's/:/__SEMICOLON__/g')" diff --git a/sdk/dotnet/ApplicationOidc.cs b/sdk/dotnet/ApplicationOidc.cs index f332eb3..c140747 100644 --- a/sdk/dotnet/ApplicationOidc.cs +++ b/sdk/dotnet/ApplicationOidc.cs @@ -61,7 +61,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:project_id[:org_id][:client_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id:project_id[:org_id][:client_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/applicationOidc:ApplicationOidc imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' diff --git a/sdk/dotnet/ApplicationSaml.cs b/sdk/dotnet/ApplicationSaml.cs index dd5f8d1..dc0b168 100644 --- a/sdk/dotnet/ApplicationSaml.cs +++ b/sdk/dotnet/ApplicationSaml.cs @@ -48,7 +48,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:project_id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<id:project_id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/applicationSaml:ApplicationSaml imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/dotnet/DefaultDomainPolicy.cs b/sdk/dotnet/DefaultDomainPolicy.cs index fee2312..3bb244e 100644 --- a/sdk/dotnet/DefaultDomainPolicy.cs +++ b/sdk/dotnet/DefaultDomainPolicy.cs @@ -35,7 +35,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultDomainPolicy:DefaultDomainPolicy imported '' diff --git a/sdk/dotnet/DefaultLabelPolicy.cs b/sdk/dotnet/DefaultLabelPolicy.cs index ed552d3..3365fa9 100644 --- a/sdk/dotnet/DefaultLabelPolicy.cs +++ b/sdk/dotnet/DefaultLabelPolicy.cs @@ -15,7 +15,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultLabelPolicy:DefaultLabelPolicy imported '' @@ -123,6 +123,12 @@ public partial class DefaultLabelPolicy : global::Pulumi.CustomResource [Output("setActive")] public Output SetActive { get; private set; } = null!; + /// + /// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + /// + [Output("themeMode")] + public Output ThemeMode { get; private set; } = null!; + /// /// hex value for warn color /// @@ -266,6 +272,12 @@ public sealed class DefaultLabelPolicyArgs : global::Pulumi.ResourceArgs [Input("setActive")] public Input? SetActive { get; set; } + /// + /// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + /// + [Input("themeMode")] + public Input? ThemeMode { get; set; } + /// /// hex value for warn color /// @@ -385,6 +397,12 @@ public sealed class DefaultLabelPolicyState : global::Pulumi.ResourceArgs [Input("setActive")] public Input? SetActive { get; set; } + /// + /// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + /// + [Input("themeMode")] + public Input? ThemeMode { get; set; } + /// /// hex value for warn color /// diff --git a/sdk/dotnet/DefaultLockoutPolicy.cs b/sdk/dotnet/DefaultLockoutPolicy.cs index 9b433bc..9fa135d 100644 --- a/sdk/dotnet/DefaultLockoutPolicy.cs +++ b/sdk/dotnet/DefaultLockoutPolicy.cs @@ -33,7 +33,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy imported '' diff --git a/sdk/dotnet/DefaultLoginPolicy.cs b/sdk/dotnet/DefaultLoginPolicy.cs index cf9f8b5..f2c85e4 100644 --- a/sdk/dotnet/DefaultLoginPolicy.cs +++ b/sdk/dotnet/DefaultLoginPolicy.cs @@ -63,7 +63,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultLoginPolicy:DefaultLoginPolicy imported '' diff --git a/sdk/dotnet/DefaultNotificationPolicy.cs b/sdk/dotnet/DefaultNotificationPolicy.cs index 098d5a0..4133299 100644 --- a/sdk/dotnet/DefaultNotificationPolicy.cs +++ b/sdk/dotnet/DefaultNotificationPolicy.cs @@ -33,7 +33,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy imported '' diff --git a/sdk/dotnet/DefaultPasswordComplexityPolicy.cs b/sdk/dotnet/DefaultPasswordComplexityPolicy.cs index 6808ce2..677b3b9 100644 --- a/sdk/dotnet/DefaultPasswordComplexityPolicy.cs +++ b/sdk/dotnet/DefaultPasswordComplexityPolicy.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy imported '' diff --git a/sdk/dotnet/DefaultPrivacyPolicy.cs b/sdk/dotnet/DefaultPrivacyPolicy.cs index ccd2ea3..a967914 100644 --- a/sdk/dotnet/DefaultPrivacyPolicy.cs +++ b/sdk/dotnet/DefaultPrivacyPolicy.cs @@ -36,7 +36,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<>`, e.g. + /// bash The resource can be imported using the ID format `<>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy imported '' diff --git a/sdk/dotnet/Domain.cs b/sdk/dotnet/Domain.cs index d4240bf..e9133a9 100644 --- a/sdk/dotnet/Domain.cs +++ b/sdk/dotnet/Domain.cs @@ -35,7 +35,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `name[:org_id]`, e.g. + /// bash The resource can be imported using the ID format `name[:org_id]`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/domain:Domain imported 'example.com:123456789012345678' diff --git a/sdk/dotnet/DomainPolicy.cs b/sdk/dotnet/DomainPolicy.cs index 167c8fc..b548491 100644 --- a/sdk/dotnet/DomainPolicy.cs +++ b/sdk/dotnet/DomainPolicy.cs @@ -36,7 +36,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<[org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/domainPolicy:DomainPolicy imported '123456789012345678' diff --git a/sdk/dotnet/GetIdpOauth.cs b/sdk/dotnet/GetIdpOauth.cs new file mode 100644 index 0000000..a34ccfc --- /dev/null +++ b/sdk/dotnet/GetIdpOauth.cs @@ -0,0 +1,201 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + public static class GetIdpOauth + { + /// + /// Datasource representing a generic OAuth2 IDP on the instance. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetIdpOauth.Invoke(new() + /// { + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetIdpOauthArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("zitadel:index/getIdpOauth:getIdpOauth", args ?? new GetIdpOauthArgs(), options.WithDefaults()); + + /// + /// Datasource representing a generic OAuth2 IDP on the instance. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetIdpOauth.Invoke(new() + /// { + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetIdpOauthInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("zitadel:index/getIdpOauth:getIdpOauth", args ?? new GetIdpOauthInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetIdpOauthArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + public GetIdpOauthArgs() + { + } + public static new GetIdpOauthArgs Empty => new GetIdpOauthArgs(); + } + + public sealed class GetIdpOauthInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GetIdpOauthInvokeArgs() + { + } + public static new GetIdpOauthInvokeArgs Empty => new GetIdpOauthInvokeArgs(); + } + + + [OutputType] + public sealed class GetIdpOauthResult + { + /// + /// The authorization endpoint + /// + public readonly string AuthorizationEndpoint; + /// + /// client id generated by the identity provider + /// + public readonly string ClientId; + /// + /// client secret generated by the identity provider + /// + public readonly string ClientSecret; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// The id attribute + /// + public readonly string IdAttribute; + /// + /// enabled if a new account in ZITADEL are created automatically on login with an external account + /// + public readonly bool IsAutoCreation; + /// + /// enabled if a the ZITADEL account fields are updated automatically on each login + /// + public readonly bool IsAutoUpdate; + /// + /// enabled if users are able to create a new account in ZITADEL when using an external account + /// + public readonly bool IsCreationAllowed; + /// + /// enabled if users are able to link an existing ZITADEL user with an external account + /// + public readonly bool IsLinkingAllowed; + /// + /// Name of the IDP + /// + public readonly string Name; + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + public readonly ImmutableArray Scopes; + /// + /// The token endpoint + /// + public readonly string TokenEndpoint; + /// + /// The user endpoint + /// + public readonly string UserEndpoint; + + [OutputConstructor] + private GetIdpOauthResult( + string authorizationEndpoint, + + string clientId, + + string clientSecret, + + string id, + + string idAttribute, + + bool isAutoCreation, + + bool isAutoUpdate, + + bool isCreationAllowed, + + bool isLinkingAllowed, + + string name, + + ImmutableArray scopes, + + string tokenEndpoint, + + string userEndpoint) + { + AuthorizationEndpoint = authorizationEndpoint; + ClientId = clientId; + ClientSecret = clientSecret; + Id = id; + IdAttribute = idAttribute; + IsAutoCreation = isAutoCreation; + IsAutoUpdate = isAutoUpdate; + IsCreationAllowed = isCreationAllowed; + IsLinkingAllowed = isLinkingAllowed; + Name = name; + Scopes = scopes; + TokenEndpoint = tokenEndpoint; + UserEndpoint = userEndpoint; + } + } +} diff --git a/sdk/dotnet/GetIdpSaml.cs b/sdk/dotnet/GetIdpSaml.cs new file mode 100644 index 0000000..c372e0b --- /dev/null +++ b/sdk/dotnet/GetIdpSaml.cs @@ -0,0 +1,173 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + public static class GetIdpSaml + { + /// + /// Datasource representing a SAML IDP on the instance. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetIdpSaml.Invoke(new() + /// { + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetIdpSamlArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("zitadel:index/getIdpSaml:getIdpSaml", args ?? new GetIdpSamlArgs(), options.WithDefaults()); + + /// + /// Datasource representing a SAML IDP on the instance. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetIdpSaml.Invoke(new() + /// { + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetIdpSamlInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("zitadel:index/getIdpSaml:getIdpSaml", args ?? new GetIdpSamlInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetIdpSamlArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + public GetIdpSamlArgs() + { + } + public static new GetIdpSamlArgs Empty => new GetIdpSamlArgs(); + } + + public sealed class GetIdpSamlInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GetIdpSamlInvokeArgs() + { + } + public static new GetIdpSamlInvokeArgs Empty => new GetIdpSamlInvokeArgs(); + } + + + [OutputType] + public sealed class GetIdpSamlResult + { + /// + /// The binding + /// + public readonly string Binding; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// enabled if a new account in ZITADEL are created automatically on login with an external account + /// + public readonly bool IsAutoCreation; + /// + /// enabled if a the ZITADEL account fields are updated automatically on each login + /// + public readonly bool IsAutoUpdate; + /// + /// enabled if users are able to create a new account in ZITADEL when using an external account + /// + public readonly bool IsCreationAllowed; + /// + /// enabled if users are able to link an existing ZITADEL user with an external account + /// + public readonly bool IsLinkingAllowed; + /// + /// The metadata XML as plain string + /// + public readonly string MetadataXml; + /// + /// Name of the IDP + /// + public readonly string Name; + /// + /// Whether the SAML IDP requires signed requests + /// + public readonly string WithSignedRequest; + + [OutputConstructor] + private GetIdpSamlResult( + string binding, + + string id, + + bool isAutoCreation, + + bool isAutoUpdate, + + bool isCreationAllowed, + + bool isLinkingAllowed, + + string metadataXml, + + string name, + + string withSignedRequest) + { + Binding = binding; + Id = id; + IsAutoCreation = isAutoCreation; + IsAutoUpdate = isAutoUpdate; + IsCreationAllowed = isCreationAllowed; + IsLinkingAllowed = isLinkingAllowed; + MetadataXml = metadataXml; + Name = name; + WithSignedRequest = withSignedRequest; + } + } +} diff --git a/sdk/dotnet/GetOrgIdpOauth.cs b/sdk/dotnet/GetOrgIdpOauth.cs new file mode 100644 index 0000000..3087d77 --- /dev/null +++ b/sdk/dotnet/GetOrgIdpOauth.cs @@ -0,0 +1,222 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + public static class GetOrgIdpOauth + { + /// + /// Datasource representing a generic OAuth2 IDP of the organization. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetOrgIdpOauth.Invoke(new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetOrgIdpOauthArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("zitadel:index/getOrgIdpOauth:getOrgIdpOauth", args ?? new GetOrgIdpOauthArgs(), options.WithDefaults()); + + /// + /// Datasource representing a generic OAuth2 IDP of the organization. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetOrgIdpOauth.Invoke(new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetOrgIdpOauthInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("zitadel:index/getOrgIdpOauth:getOrgIdpOauth", args ?? new GetOrgIdpOauthInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetOrgIdpOauthArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + /// + /// ID of the organization + /// + [Input("orgId")] + public string? OrgId { get; set; } + + public GetOrgIdpOauthArgs() + { + } + public static new GetOrgIdpOauthArgs Empty => new GetOrgIdpOauthArgs(); + } + + public sealed class GetOrgIdpOauthInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + public GetOrgIdpOauthInvokeArgs() + { + } + public static new GetOrgIdpOauthInvokeArgs Empty => new GetOrgIdpOauthInvokeArgs(); + } + + + [OutputType] + public sealed class GetOrgIdpOauthResult + { + /// + /// The authorization endpoint + /// + public readonly string AuthorizationEndpoint; + /// + /// client id generated by the identity provider + /// + public readonly string ClientId; + /// + /// client secret generated by the identity provider + /// + public readonly string ClientSecret; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// The id attribute + /// + public readonly string IdAttribute; + /// + /// enabled if a new account in ZITADEL are created automatically on login with an external account + /// + public readonly bool IsAutoCreation; + /// + /// enabled if a the ZITADEL account fields are updated automatically on each login + /// + public readonly bool IsAutoUpdate; + /// + /// enabled if users are able to create a new account in ZITADEL when using an external account + /// + public readonly bool IsCreationAllowed; + /// + /// enabled if users are able to link an existing ZITADEL user with an external account + /// + public readonly bool IsLinkingAllowed; + /// + /// Name of the IDP + /// + public readonly string Name; + /// + /// ID of the organization + /// + public readonly string? OrgId; + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + public readonly ImmutableArray Scopes; + /// + /// The token endpoint + /// + public readonly string TokenEndpoint; + /// + /// The user endpoint + /// + public readonly string UserEndpoint; + + [OutputConstructor] + private GetOrgIdpOauthResult( + string authorizationEndpoint, + + string clientId, + + string clientSecret, + + string id, + + string idAttribute, + + bool isAutoCreation, + + bool isAutoUpdate, + + bool isCreationAllowed, + + bool isLinkingAllowed, + + string name, + + string? orgId, + + ImmutableArray scopes, + + string tokenEndpoint, + + string userEndpoint) + { + AuthorizationEndpoint = authorizationEndpoint; + ClientId = clientId; + ClientSecret = clientSecret; + Id = id; + IdAttribute = idAttribute; + IsAutoCreation = isAutoCreation; + IsAutoUpdate = isAutoUpdate; + IsCreationAllowed = isCreationAllowed; + IsLinkingAllowed = isLinkingAllowed; + Name = name; + OrgId = orgId; + Scopes = scopes; + TokenEndpoint = tokenEndpoint; + UserEndpoint = userEndpoint; + } + } +} diff --git a/sdk/dotnet/GetOrgIdpSaml.cs b/sdk/dotnet/GetOrgIdpSaml.cs new file mode 100644 index 0000000..89e15e5 --- /dev/null +++ b/sdk/dotnet/GetOrgIdpSaml.cs @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + public static class GetOrgIdpSaml + { + /// + /// Datasource representing a SAML IdP of the organization. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetOrgIdpSaml.Invoke(new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetOrgIdpSamlArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("zitadel:index/getOrgIdpSaml:getOrgIdpSaml", args ?? new GetOrgIdpSamlArgs(), options.WithDefaults()); + + /// + /// Datasource representing a SAML IdP of the organization. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumi.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Zitadel.GetOrgIdpSaml.Invoke(new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Id = "123456789012345678", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetOrgIdpSamlInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("zitadel:index/getOrgIdpSaml:getOrgIdpSaml", args ?? new GetOrgIdpSamlInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetOrgIdpSamlArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + /// + /// ID of the organization + /// + [Input("orgId")] + public string? OrgId { get; set; } + + public GetOrgIdpSamlArgs() + { + } + public static new GetOrgIdpSamlArgs Empty => new GetOrgIdpSamlArgs(); + } + + public sealed class GetOrgIdpSamlInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of this resource. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + public GetOrgIdpSamlInvokeArgs() + { + } + public static new GetOrgIdpSamlInvokeArgs Empty => new GetOrgIdpSamlInvokeArgs(); + } + + + [OutputType] + public sealed class GetOrgIdpSamlResult + { + /// + /// The binding + /// + public readonly string Binding; + /// + /// The ID of this resource. + /// + public readonly string Id; + /// + /// enabled if a new account in ZITADEL are created automatically on login with an external account + /// + public readonly bool IsAutoCreation; + /// + /// enabled if a the ZITADEL account fields are updated automatically on each login + /// + public readonly bool IsAutoUpdate; + /// + /// enabled if users are able to create a new account in ZITADEL when using an external account + /// + public readonly bool IsCreationAllowed; + /// + /// enabled if users are able to link an existing ZITADEL user with an external account + /// + public readonly bool IsLinkingAllowed; + /// + /// The metadata XML as plain string + /// + public readonly string MetadataXml; + /// + /// Name of the IDP + /// + public readonly string Name; + /// + /// ID of the organization + /// + public readonly string? OrgId; + /// + /// Whether the SAML IDP requires signed requests + /// + public readonly string WithSignedRequest; + + [OutputConstructor] + private GetOrgIdpSamlResult( + string binding, + + string id, + + bool isAutoCreation, + + bool isAutoUpdate, + + bool isCreationAllowed, + + bool isLinkingAllowed, + + string metadataXml, + + string name, + + string? orgId, + + string withSignedRequest) + { + Binding = binding; + Id = id; + IsAutoCreation = isAutoCreation; + IsAutoUpdate = isAutoUpdate; + IsCreationAllowed = isCreationAllowed; + IsLinkingAllowed = isLinkingAllowed; + MetadataXml = metadataXml; + Name = name; + OrgId = orgId; + WithSignedRequest = withSignedRequest; + } + } +} diff --git a/sdk/dotnet/HumanUser.cs b/sdk/dotnet/HumanUser.cs index 0a0313c..8c62d88 100644 --- a/sdk/dotnet/HumanUser.cs +++ b/sdk/dotnet/HumanUser.cs @@ -47,7 +47,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. + /// bash The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/humanUser:HumanUser imported '123456789012345678:123456789012345678:Password1!' diff --git a/sdk/dotnet/IdpAzureAd.cs b/sdk/dotnet/IdpAzureAd.cs index 09cd3a3..d4e1009 100644 --- a/sdk/dotnet/IdpAzureAd.cs +++ b/sdk/dotnet/IdpAzureAd.cs @@ -48,7 +48,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpAzureAd:IdpAzureAd imported '123456789012345678:12345678-1234-1234-1234-123456789012' diff --git a/sdk/dotnet/IdpGithub.cs b/sdk/dotnet/IdpGithub.cs index 5140980..2ee96d2 100644 --- a/sdk/dotnet/IdpGithub.cs +++ b/sdk/dotnet/IdpGithub.cs @@ -45,7 +45,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpGithub:IdpGithub imported '123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/dotnet/IdpGithubEs.cs b/sdk/dotnet/IdpGithubEs.cs index 4ed4e6f..7401d65 100644 --- a/sdk/dotnet/IdpGithubEs.cs +++ b/sdk/dotnet/IdpGithubEs.cs @@ -48,7 +48,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpGithubEs:IdpGithubEs imported '123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/dotnet/IdpGitlab.cs b/sdk/dotnet/IdpGitlab.cs index f1c6e77..eda8a74 100644 --- a/sdk/dotnet/IdpGitlab.cs +++ b/sdk/dotnet/IdpGitlab.cs @@ -45,7 +45,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpGitlab:IdpGitlab imported '123456789012345678:1234567890abcdef' diff --git a/sdk/dotnet/IdpGitlabSelfHosted.cs b/sdk/dotnet/IdpGitlabSelfHosted.cs index 9ee963f..8c810e5 100644 --- a/sdk/dotnet/IdpGitlabSelfHosted.cs +++ b/sdk/dotnet/IdpGitlabSelfHosted.cs @@ -46,7 +46,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted imported '123456789012345678:1234567890abcdef' diff --git a/sdk/dotnet/IdpGoogle.cs b/sdk/dotnet/IdpGoogle.cs index 0d4b656..18405c5 100644 --- a/sdk/dotnet/IdpGoogle.cs +++ b/sdk/dotnet/IdpGoogle.cs @@ -45,7 +45,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpGoogle:IdpGoogle imported '123456789012345678:G1234567890123' diff --git a/sdk/dotnet/IdpLdap.cs b/sdk/dotnet/IdpLdap.cs index f0365ed..db4258f 100644 --- a/sdk/dotnet/IdpLdap.cs +++ b/sdk/dotnet/IdpLdap.cs @@ -60,7 +60,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:bind_password]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:bind_password]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/idpLdap:IdpLdap imported '123456789012345678:b1nd_p4ssw0rd' diff --git a/sdk/dotnet/IdpOauth.cs b/sdk/dotnet/IdpOauth.cs new file mode 100644 index 0000000..b8fc829 --- /dev/null +++ b/sdk/dotnet/IdpOauth.cs @@ -0,0 +1,373 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + /// + /// Resource representing a generic OAuth2 IDP on the instance. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumiverse.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Zitadel.IdpOauth("default", new() + /// { + /// Name = "GitLab", + /// ClientId = "15765e...", + /// ClientSecret = "*****abcxyz", + /// AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth", + /// TokenEndpoint = "https://oauth2.googleapis.com/token", + /// UserEndpoint = "https://openidconnect.googleapis.com/v1/userinfo", + /// IdAttribute = "user_id", + /// Scopes = new[] + /// { + /// "openid", + /// "profile", + /// "email", + /// }, + /// IsLinkingAllowed = false, + /// IsCreationAllowed = true, + /// IsAutoCreation = false, + /// IsAutoUpdate = true, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// bash The resource can be imported using the ID format `<id[:client_secret]>`, e.g. + /// + /// ```sh + /// $ pulumi import zitadel:index/idpOauth:IdpOauth imported '123456789012345678:1234567890abcdef' + /// ``` + /// + [ZitadelResourceType("zitadel:index/idpOauth:IdpOauth")] + public partial class IdpOauth : global::Pulumi.CustomResource + { + /// + /// The authorization endpoint + /// + [Output("authorizationEndpoint")] + public Output AuthorizationEndpoint { get; private set; } = null!; + + /// + /// client id generated by the identity provider + /// + [Output("clientId")] + public Output ClientId { get; private set; } = null!; + + /// + /// client secret generated by the identity provider + /// + [Output("clientSecret")] + public Output ClientSecret { get; private set; } = null!; + + /// + /// The id attribute + /// + [Output("idAttribute")] + public Output IdAttribute { get; private set; } = null!; + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Output("isAutoCreation")] + public Output IsAutoCreation { get; private set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Output("isAutoUpdate")] + public Output IsAutoUpdate { get; private set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Output("isCreationAllowed")] + public Output IsCreationAllowed { get; private set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Output("isLinkingAllowed")] + public Output IsLinkingAllowed { get; private set; } = null!; + + /// + /// Name of the IDP + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + [Output("scopes")] + public Output> Scopes { get; private set; } = null!; + + /// + /// The token endpoint + /// + [Output("tokenEndpoint")] + public Output TokenEndpoint { get; private set; } = null!; + + /// + /// The user endpoint + /// + [Output("userEndpoint")] + public Output UserEndpoint { get; private set; } = null!; + + + /// + /// Create a IdpOauth resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public IdpOauth(string name, IdpOauthArgs args, CustomResourceOptions? options = null) + : base("zitadel:index/idpOauth:IdpOauth", name, args ?? new IdpOauthArgs(), MakeResourceOptions(options, "")) + { + } + + private IdpOauth(string name, Input id, IdpOauthState? state = null, CustomResourceOptions? options = null) + : base("zitadel:index/idpOauth:IdpOauth", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + AdditionalSecretOutputs = + { + "clientSecret", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing IdpOauth resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static IdpOauth Get(string name, Input id, IdpOauthState? state = null, CustomResourceOptions? options = null) + { + return new IdpOauth(name, id, state, options); + } + } + + public sealed class IdpOauthArgs : global::Pulumi.ResourceArgs + { + /// + /// The authorization endpoint + /// + [Input("authorizationEndpoint", required: true)] + public Input AuthorizationEndpoint { get; set; } = null!; + + /// + /// client id generated by the identity provider + /// + [Input("clientId", required: true)] + public Input ClientId { get; set; } = null!; + + [Input("clientSecret", required: true)] + private Input? _clientSecret; + + /// + /// client secret generated by the identity provider + /// + public Input? ClientSecret + { + get => _clientSecret; + set + { + var emptySecret = Output.CreateSecret(0); + _clientSecret = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The id attribute + /// + [Input("idAttribute", required: true)] + public Input IdAttribute { get; set; } = null!; + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation", required: true)] + public Input IsAutoCreation { get; set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate", required: true)] + public Input IsAutoUpdate { get; set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed", required: true)] + public Input IsCreationAllowed { get; set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed", required: true)] + public Input IsLinkingAllowed { get; set; } = null!; + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("scopes")] + private InputList? _scopes; + + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + public InputList Scopes + { + get => _scopes ?? (_scopes = new InputList()); + set => _scopes = value; + } + + /// + /// The token endpoint + /// + [Input("tokenEndpoint", required: true)] + public Input TokenEndpoint { get; set; } = null!; + + /// + /// The user endpoint + /// + [Input("userEndpoint", required: true)] + public Input UserEndpoint { get; set; } = null!; + + public IdpOauthArgs() + { + } + public static new IdpOauthArgs Empty => new IdpOauthArgs(); + } + + public sealed class IdpOauthState : global::Pulumi.ResourceArgs + { + /// + /// The authorization endpoint + /// + [Input("authorizationEndpoint")] + public Input? AuthorizationEndpoint { get; set; } + + /// + /// client id generated by the identity provider + /// + [Input("clientId")] + public Input? ClientId { get; set; } + + [Input("clientSecret")] + private Input? _clientSecret; + + /// + /// client secret generated by the identity provider + /// + public Input? ClientSecret + { + get => _clientSecret; + set + { + var emptySecret = Output.CreateSecret(0); + _clientSecret = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The id attribute + /// + [Input("idAttribute")] + public Input? IdAttribute { get; set; } + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation")] + public Input? IsAutoCreation { get; set; } + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate")] + public Input? IsAutoUpdate { get; set; } + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed")] + public Input? IsCreationAllowed { get; set; } + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed")] + public Input? IsLinkingAllowed { get; set; } + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("scopes")] + private InputList? _scopes; + + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + public InputList Scopes + { + get => _scopes ?? (_scopes = new InputList()); + set => _scopes = value; + } + + /// + /// The token endpoint + /// + [Input("tokenEndpoint")] + public Input? TokenEndpoint { get; set; } + + /// + /// The user endpoint + /// + [Input("userEndpoint")] + public Input? UserEndpoint { get; set; } + + public IdpOauthState() + { + } + public static new IdpOauthState Empty => new IdpOauthState(); + } +} diff --git a/sdk/dotnet/IdpSaml.cs b/sdk/dotnet/IdpSaml.cs new file mode 100644 index 0000000..a571aee --- /dev/null +++ b/sdk/dotnet/IdpSaml.cs @@ -0,0 +1,293 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + /// + /// Resource representing a SAML IDP on the instance. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumiverse.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Zitadel.IdpSaml("default", new() + /// { + /// Name = "LDAP", + /// Binding = "SAML_BINDING_POST", + /// WithSignedRequest = true, + /// IsLinkingAllowed = false, + /// IsCreationAllowed = true, + /// IsAutoCreation = false, + /// IsAutoUpdate = true, + /// MetadataXml = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""no""?> + /// <md:EntityDescriptor xmlns:md=""urn:oasis:names:tc:SAML:2.0:metadata"" entityID=""https://saml.example.com/entityid"" validUntil=""2034-05-15T14:21:58.979Z""> + /// <md:IDPSSODescriptor WantAuthnRequestsSigned=""true"" protocolSupportEnumeration=""urn:oasis:names:tc:SAML:2.0:protocol""> + /// <md:KeyDescriptor use=""signing""> + /// <ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#""> + /// <ds:X509Data> + /// <ds:X509Certificate>MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + /// SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + /// MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + /// DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + /// ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + /// RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + /// 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + /// pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + /// 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + /// NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + /// AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + /// 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + /// khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + /// UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + /// r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + /// m0eo2USlSRTVl7QHRTuiuSThHpLKQQ==</ds:X509Certificate> + /// </ds:X509Data> + /// </ds:KeyInfo> + /// </md:KeyDescriptor> + /// <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> + /// <md:SingleSignOnService Binding=""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"" Location=""https://mocksaml.com/api/saml/sso""/> + /// <md:SingleSignOnService Binding=""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"" Location=""https://mocksaml.com/api/saml/sso""/> + /// </md:IDPSSODescriptor> + /// </md:EntityDescriptor> + /// ", + /// }); + /// + /// }); + /// ``` + /// ## Loading the XML Metadata + /// + /// If you don't want to pass the XML metadata inline, you have plenty of options. For example: + /// - local_file Data Source + /// - http Data Source + /// - terracurl_request Data Source + /// - ... + /// + /// ## Import + /// + /// bash The resource can be imported using the ID format `<id>`, e.g. + /// + /// ```sh + /// $ pulumi import zitadel:index/idpSaml:IdpSaml imported '123456789012345678' + /// ``` + /// + [ZitadelResourceType("zitadel:index/idpSaml:IdpSaml")] + public partial class IdpSaml : global::Pulumi.CustomResource + { + /// + /// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + /// + [Output("binding")] + public Output Binding { get; private set; } = null!; + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Output("isAutoCreation")] + public Output IsAutoCreation { get; private set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Output("isAutoUpdate")] + public Output IsAutoUpdate { get; private set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Output("isCreationAllowed")] + public Output IsCreationAllowed { get; private set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Output("isLinkingAllowed")] + public Output IsLinkingAllowed { get; private set; } = null!; + + /// + /// The metadata XML as plain string + /// + [Output("metadataXml")] + public Output MetadataXml { get; private set; } = null!; + + /// + /// Name of the IDP + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Whether the SAML IDP requires signed requests + /// + [Output("withSignedRequest")] + public Output WithSignedRequest { get; private set; } = null!; + + + /// + /// Create a IdpSaml resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public IdpSaml(string name, IdpSamlArgs args, CustomResourceOptions? options = null) + : base("zitadel:index/idpSaml:IdpSaml", name, args ?? new IdpSamlArgs(), MakeResourceOptions(options, "")) + { + } + + private IdpSaml(string name, Input id, IdpSamlState? state = null, CustomResourceOptions? options = null) + : base("zitadel:index/idpSaml:IdpSaml", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing IdpSaml resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static IdpSaml Get(string name, Input id, IdpSamlState? state = null, CustomResourceOptions? options = null) + { + return new IdpSaml(name, id, state, options); + } + } + + public sealed class IdpSamlArgs : global::Pulumi.ResourceArgs + { + /// + /// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + /// + [Input("binding")] + public Input? Binding { get; set; } + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation", required: true)] + public Input IsAutoCreation { get; set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate", required: true)] + public Input IsAutoUpdate { get; set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed", required: true)] + public Input IsCreationAllowed { get; set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed", required: true)] + public Input IsLinkingAllowed { get; set; } = null!; + + /// + /// The metadata XML as plain string + /// + [Input("metadataXml", required: true)] + public Input MetadataXml { get; set; } = null!; + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Whether the SAML IDP requires signed requests + /// + [Input("withSignedRequest")] + public Input? WithSignedRequest { get; set; } + + public IdpSamlArgs() + { + } + public static new IdpSamlArgs Empty => new IdpSamlArgs(); + } + + public sealed class IdpSamlState : global::Pulumi.ResourceArgs + { + /// + /// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + /// + [Input("binding")] + public Input? Binding { get; set; } + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation")] + public Input? IsAutoCreation { get; set; } + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate")] + public Input? IsAutoUpdate { get; set; } + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed")] + public Input? IsCreationAllowed { get; set; } + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed")] + public Input? IsLinkingAllowed { get; set; } + + /// + /// The metadata XML as plain string + /// + [Input("metadataXml")] + public Input? MetadataXml { get; set; } + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Whether the SAML IDP requires signed requests + /// + [Input("withSignedRequest")] + public Input? WithSignedRequest { get; set; } + + public IdpSamlState() + { + } + public static new IdpSamlState Empty => new IdpSamlState(); + } +} diff --git a/sdk/dotnet/InstanceMember.cs b/sdk/dotnet/InstanceMember.cs index 332b9c7..31bb67e 100644 --- a/sdk/dotnet/InstanceMember.cs +++ b/sdk/dotnet/InstanceMember.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<user_id>`, e.g. + /// bash The resource can be imported using the ID format `<user_id>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/instanceMember:InstanceMember imported '123456789012345678' diff --git a/sdk/dotnet/LabelPolicy.cs b/sdk/dotnet/LabelPolicy.cs index 4247b47..0e1a686 100644 --- a/sdk/dotnet/LabelPolicy.cs +++ b/sdk/dotnet/LabelPolicy.cs @@ -15,7 +15,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<[org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/labelPolicy:LabelPolicy imported '123456789012345678' @@ -129,6 +129,12 @@ public partial class LabelPolicy : global::Pulumi.CustomResource [Output("setActive")] public Output SetActive { get; private set; } = null!; + /// + /// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + /// + [Output("themeMode")] + public Output ThemeMode { get; private set; } = null!; + /// /// hex value for warn color /// @@ -278,6 +284,12 @@ public sealed class LabelPolicyArgs : global::Pulumi.ResourceArgs [Input("setActive")] public Input? SetActive { get; set; } + /// + /// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + /// + [Input("themeMode")] + public Input? ThemeMode { get; set; } + /// /// hex value for warn color /// @@ -403,6 +415,12 @@ public sealed class LabelPolicyState : global::Pulumi.ResourceArgs [Input("setActive")] public Input? SetActive { get; set; } + /// + /// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + /// + [Input("themeMode")] + public Input? ThemeMode { get; set; } + /// /// hex value for warn color /// diff --git a/sdk/dotnet/LockoutPolicy.cs b/sdk/dotnet/LockoutPolicy.cs index 472eab3..026d35b 100644 --- a/sdk/dotnet/LockoutPolicy.cs +++ b/sdk/dotnet/LockoutPolicy.cs @@ -34,7 +34,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<[org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/lockoutPolicy:LockoutPolicy imported '123456789012345678' diff --git a/sdk/dotnet/LoginPolicy.cs b/sdk/dotnet/LoginPolicy.cs index 728df87..9a15597 100644 --- a/sdk/dotnet/LoginPolicy.cs +++ b/sdk/dotnet/LoginPolicy.cs @@ -64,7 +64,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<[org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/loginPolicy:LoginPolicy imported '123456789012345678' diff --git a/sdk/dotnet/MachineKey.cs b/sdk/dotnet/MachineKey.cs index 387368e..8199161 100644 --- a/sdk/dotnet/MachineKey.cs +++ b/sdk/dotnet/MachineKey.cs @@ -36,7 +36,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:user_id[:org_id][:key_details]>`, e.g. + /// bash The resource can be imported using the ID format `<id:user_id[:org_id][:key_details]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/machineKey:MachineKey imported '123456789012345678:123456789012345678:123456789012345678:{"type":"serviceaccount","keyId":"123456789012345678","key":"-----BEGIN RSA PRIVATE KEY-----\nMIIEpQ...-----END RSA PRIVATE KEY-----\n","userId":"123456789012345678"}' diff --git a/sdk/dotnet/MachineUser.cs b/sdk/dotnet/MachineUser.cs index f56a647..05b30aa 100644 --- a/sdk/dotnet/MachineUser.cs +++ b/sdk/dotnet/MachineUser.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:has_secret[:org_id][:client_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id:has_secret[:org_id][:client_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/machineUser:MachineUser imported '123456789012345678:123456789012345678:true:my-machine-user:j76mh34CHVrGGoXPQOg80lch67FIxwc2qIXjBkZoB6oMbf31eGMkB6bvRyaPjR2t' diff --git a/sdk/dotnet/NotificationPolicy.cs b/sdk/dotnet/NotificationPolicy.cs index 996c1d4..db03074 100644 --- a/sdk/dotnet/NotificationPolicy.cs +++ b/sdk/dotnet/NotificationPolicy.cs @@ -34,7 +34,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<[org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/notificationPolicy:NotificationPolicy imported '123456789012345678' diff --git a/sdk/dotnet/Org.cs b/sdk/dotnet/Org.cs index 302e731..fd68a2c 100644 --- a/sdk/dotnet/Org.cs +++ b/sdk/dotnet/Org.cs @@ -33,7 +33,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id>`, e.g. + /// bash The resource can be imported using the ID format `<id>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/org:Org imported '123456789012345678' diff --git a/sdk/dotnet/OrgIdpAzureAd.cs b/sdk/dotnet/OrgIdpAzureAd.cs index f18e680..4428dc2 100644 --- a/sdk/dotnet/OrgIdpAzureAd.cs +++ b/sdk/dotnet/OrgIdpAzureAd.cs @@ -49,7 +49,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpAzureAd:OrgIdpAzureAd imported '123456789012345678:123456789012345678:12345678-1234-1234-1234-123456789012' diff --git a/sdk/dotnet/OrgIdpGithub.cs b/sdk/dotnet/OrgIdpGithub.cs index 103b3d8..72e798f 100644 --- a/sdk/dotnet/OrgIdpGithub.cs +++ b/sdk/dotnet/OrgIdpGithub.cs @@ -46,7 +46,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpGithub:OrgIdpGithub imported '123456789012345678:123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/dotnet/OrgIdpGithubEs.cs b/sdk/dotnet/OrgIdpGithubEs.cs index e100d90..a8d1d90 100644 --- a/sdk/dotnet/OrgIdpGithubEs.cs +++ b/sdk/dotnet/OrgIdpGithubEs.cs @@ -49,7 +49,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpGithubEs:OrgIdpGithubEs imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/dotnet/OrgIdpGitlab.cs b/sdk/dotnet/OrgIdpGitlab.cs index 708ed34..b9e1fda 100644 --- a/sdk/dotnet/OrgIdpGitlab.cs +++ b/sdk/dotnet/OrgIdpGitlab.cs @@ -46,7 +46,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpGitlab:OrgIdpGitlab imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/dotnet/OrgIdpGitlabSelfHosted.cs b/sdk/dotnet/OrgIdpGitlabSelfHosted.cs index 4186c1b..0c0cb7a 100644 --- a/sdk/dotnet/OrgIdpGitlabSelfHosted.cs +++ b/sdk/dotnet/OrgIdpGitlabSelfHosted.cs @@ -47,7 +47,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/dotnet/OrgIdpGoogle.cs b/sdk/dotnet/OrgIdpGoogle.cs index 602e6e4..f14614b 100644 --- a/sdk/dotnet/OrgIdpGoogle.cs +++ b/sdk/dotnet/OrgIdpGoogle.cs @@ -46,7 +46,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpGoogle:OrgIdpGoogle imported '123456789012345678:123456789012345678:G1234567890123' diff --git a/sdk/dotnet/OrgIdpJwt.cs b/sdk/dotnet/OrgIdpJwt.cs index 8404f37..b6c4dbe 100644 --- a/sdk/dotnet/OrgIdpJwt.cs +++ b/sdk/dotnet/OrgIdpJwt.cs @@ -40,7 +40,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpJwt:OrgIdpJwt imported '123456789012345678:123456789012345678' diff --git a/sdk/dotnet/OrgIdpLdap.cs b/sdk/dotnet/OrgIdpLdap.cs index b461659..00e464b 100644 --- a/sdk/dotnet/OrgIdpLdap.cs +++ b/sdk/dotnet/OrgIdpLdap.cs @@ -61,7 +61,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:bind_password]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:bind_password]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpLdap:OrgIdpLdap imported '123456789012345678:123456789012345678:b1nd_p4ssw0rd' diff --git a/sdk/dotnet/OrgIdpOauth.cs b/sdk/dotnet/OrgIdpOauth.cs new file mode 100644 index 0000000..7374432 --- /dev/null +++ b/sdk/dotnet/OrgIdpOauth.cs @@ -0,0 +1,392 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + /// + /// Resource representing a generic OAuth2 IDP on the organization. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumiverse.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Zitadel.OrgIdpOauth("default", new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Name = "GitLab", + /// ClientId = "15765e...", + /// ClientSecret = "*****abcxyz", + /// AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth", + /// TokenEndpoint = "https://oauth2.googleapis.com/token", + /// UserEndpoint = "https://openidconnect.googleapis.com/v1/userinfo", + /// IdAttribute = "user_id", + /// Scopes = new[] + /// { + /// "openid", + /// "profile", + /// "email", + /// }, + /// IsLinkingAllowed = false, + /// IsCreationAllowed = true, + /// IsAutoCreation = false, + /// IsAutoUpdate = true, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// + /// ```sh + /// $ pulumi import zitadel:index/orgIdpOauth:OrgIdpOauth imported '123456789012345678:123456789012345678:1234567890abcdef' + /// ``` + /// + [ZitadelResourceType("zitadel:index/orgIdpOauth:OrgIdpOauth")] + public partial class OrgIdpOauth : global::Pulumi.CustomResource + { + /// + /// The authorization endpoint + /// + [Output("authorizationEndpoint")] + public Output AuthorizationEndpoint { get; private set; } = null!; + + /// + /// client id generated by the identity provider + /// + [Output("clientId")] + public Output ClientId { get; private set; } = null!; + + /// + /// client secret generated by the identity provider + /// + [Output("clientSecret")] + public Output ClientSecret { get; private set; } = null!; + + /// + /// The id attribute + /// + [Output("idAttribute")] + public Output IdAttribute { get; private set; } = null!; + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Output("isAutoCreation")] + public Output IsAutoCreation { get; private set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Output("isAutoUpdate")] + public Output IsAutoUpdate { get; private set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Output("isCreationAllowed")] + public Output IsCreationAllowed { get; private set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Output("isLinkingAllowed")] + public Output IsLinkingAllowed { get; private set; } = null!; + + /// + /// Name of the IDP + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// ID of the organization + /// + [Output("orgId")] + public Output OrgId { get; private set; } = null!; + + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + [Output("scopes")] + public Output> Scopes { get; private set; } = null!; + + /// + /// The token endpoint + /// + [Output("tokenEndpoint")] + public Output TokenEndpoint { get; private set; } = null!; + + /// + /// The user endpoint + /// + [Output("userEndpoint")] + public Output UserEndpoint { get; private set; } = null!; + + + /// + /// Create a OrgIdpOauth resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public OrgIdpOauth(string name, OrgIdpOauthArgs args, CustomResourceOptions? options = null) + : base("zitadel:index/orgIdpOauth:OrgIdpOauth", name, args ?? new OrgIdpOauthArgs(), MakeResourceOptions(options, "")) + { + } + + private OrgIdpOauth(string name, Input id, OrgIdpOauthState? state = null, CustomResourceOptions? options = null) + : base("zitadel:index/orgIdpOauth:OrgIdpOauth", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + AdditionalSecretOutputs = + { + "clientSecret", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing OrgIdpOauth resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static OrgIdpOauth Get(string name, Input id, OrgIdpOauthState? state = null, CustomResourceOptions? options = null) + { + return new OrgIdpOauth(name, id, state, options); + } + } + + public sealed class OrgIdpOauthArgs : global::Pulumi.ResourceArgs + { + /// + /// The authorization endpoint + /// + [Input("authorizationEndpoint", required: true)] + public Input AuthorizationEndpoint { get; set; } = null!; + + /// + /// client id generated by the identity provider + /// + [Input("clientId", required: true)] + public Input ClientId { get; set; } = null!; + + [Input("clientSecret", required: true)] + private Input? _clientSecret; + + /// + /// client secret generated by the identity provider + /// + public Input? ClientSecret + { + get => _clientSecret; + set + { + var emptySecret = Output.CreateSecret(0); + _clientSecret = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The id attribute + /// + [Input("idAttribute", required: true)] + public Input IdAttribute { get; set; } = null!; + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation", required: true)] + public Input IsAutoCreation { get; set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate", required: true)] + public Input IsAutoUpdate { get; set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed", required: true)] + public Input IsCreationAllowed { get; set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed", required: true)] + public Input IsLinkingAllowed { get; set; } = null!; + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + [Input("scopes")] + private InputList? _scopes; + + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + public InputList Scopes + { + get => _scopes ?? (_scopes = new InputList()); + set => _scopes = value; + } + + /// + /// The token endpoint + /// + [Input("tokenEndpoint", required: true)] + public Input TokenEndpoint { get; set; } = null!; + + /// + /// The user endpoint + /// + [Input("userEndpoint", required: true)] + public Input UserEndpoint { get; set; } = null!; + + public OrgIdpOauthArgs() + { + } + public static new OrgIdpOauthArgs Empty => new OrgIdpOauthArgs(); + } + + public sealed class OrgIdpOauthState : global::Pulumi.ResourceArgs + { + /// + /// The authorization endpoint + /// + [Input("authorizationEndpoint")] + public Input? AuthorizationEndpoint { get; set; } + + /// + /// client id generated by the identity provider + /// + [Input("clientId")] + public Input? ClientId { get; set; } + + [Input("clientSecret")] + private Input? _clientSecret; + + /// + /// client secret generated by the identity provider + /// + public Input? ClientSecret + { + get => _clientSecret; + set + { + var emptySecret = Output.CreateSecret(0); + _clientSecret = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The id attribute + /// + [Input("idAttribute")] + public Input? IdAttribute { get; set; } + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation")] + public Input? IsAutoCreation { get; set; } + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate")] + public Input? IsAutoUpdate { get; set; } + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed")] + public Input? IsCreationAllowed { get; set; } + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed")] + public Input? IsLinkingAllowed { get; set; } + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + [Input("scopes")] + private InputList? _scopes; + + /// + /// the scopes requested by ZITADEL during the request on the identity provider + /// + public InputList Scopes + { + get => _scopes ?? (_scopes = new InputList()); + set => _scopes = value; + } + + /// + /// The token endpoint + /// + [Input("tokenEndpoint")] + public Input? TokenEndpoint { get; set; } + + /// + /// The user endpoint + /// + [Input("userEndpoint")] + public Input? UserEndpoint { get; set; } + + public OrgIdpOauthState() + { + } + public static new OrgIdpOauthState Empty => new OrgIdpOauthState(); + } +} diff --git a/sdk/dotnet/OrgIdpOidc.cs b/sdk/dotnet/OrgIdpOidc.cs index 06dab70..1553a27 100644 --- a/sdk/dotnet/OrgIdpOidc.cs +++ b/sdk/dotnet/OrgIdpOidc.cs @@ -48,7 +48,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id][:client_secret]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgIdpOidc:OrgIdpOidc imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/dotnet/OrgIdpSaml.cs b/sdk/dotnet/OrgIdpSaml.cs new file mode 100644 index 0000000..08af6b4 --- /dev/null +++ b/sdk/dotnet/OrgIdpSaml.cs @@ -0,0 +1,312 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + /// + /// Resource representing a SAML IdP on the organization. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumiverse.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Zitadel.OrgIdpSaml("default", new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Name = "LDAP", + /// Binding = "SAML_BINDING_POST", + /// WithSignedRequest = true, + /// IsLinkingAllowed = false, + /// IsCreationAllowed = true, + /// IsAutoCreation = false, + /// IsAutoUpdate = true, + /// MetadataXml = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""no""?> + /// <md:EntityDescriptor xmlns:md=""urn:oasis:names:tc:SAML:2.0:metadata"" entityID=""https://saml.example.com/entityid"" validUntil=""2034-05-15T14:21:58.979Z""> + /// <md:IDPSSODescriptor WantAuthnRequestsSigned=""true"" protocolSupportEnumeration=""urn:oasis:names:tc:SAML:2.0:protocol""> + /// <md:KeyDescriptor use=""signing""> + /// <ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#""> + /// <ds:X509Data> + /// <ds:X509Certificate>MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + /// SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + /// MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + /// DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + /// ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + /// RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + /// 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + /// pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + /// 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + /// NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + /// AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + /// 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + /// khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + /// UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + /// r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + /// m0eo2USlSRTVl7QHRTuiuSThHpLKQQ==</ds:X509Certificate> + /// </ds:X509Data> + /// </ds:KeyInfo> + /// </md:KeyDescriptor> + /// <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> + /// <md:SingleSignOnService Binding=""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"" Location=""https://mocksaml.com/api/saml/sso""/> + /// <md:SingleSignOnService Binding=""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"" Location=""https://mocksaml.com/api/saml/sso""/> + /// </md:IDPSSODescriptor> + /// </md:EntityDescriptor> + /// ", + /// }); + /// + /// }); + /// ``` + /// ## Loading the XML Metadata + /// + /// If you don't want to pass the XML metadata inline, you have plenty of options. For example: + /// - local_file Data Source + /// - http Data Source + /// - terracurl_request Data Source + /// - ... + /// + /// ## Import + /// + /// bash The resource can be imported using the ID format `<id[:org_id]>`, e.g. + /// + /// ```sh + /// $ pulumi import zitadel:index/orgIdpSaml:OrgIdpSaml imported '123456789012345678:123456789012345678' + /// ``` + /// + [ZitadelResourceType("zitadel:index/orgIdpSaml:OrgIdpSaml")] + public partial class OrgIdpSaml : global::Pulumi.CustomResource + { + /// + /// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + /// + [Output("binding")] + public Output Binding { get; private set; } = null!; + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Output("isAutoCreation")] + public Output IsAutoCreation { get; private set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Output("isAutoUpdate")] + public Output IsAutoUpdate { get; private set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Output("isCreationAllowed")] + public Output IsCreationAllowed { get; private set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Output("isLinkingAllowed")] + public Output IsLinkingAllowed { get; private set; } = null!; + + /// + /// The metadata XML as plain string + /// + [Output("metadataXml")] + public Output MetadataXml { get; private set; } = null!; + + /// + /// Name of the IDP + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// ID of the organization + /// + [Output("orgId")] + public Output OrgId { get; private set; } = null!; + + /// + /// Whether the SAML IDP requires signed requests + /// + [Output("withSignedRequest")] + public Output WithSignedRequest { get; private set; } = null!; + + + /// + /// Create a OrgIdpSaml resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public OrgIdpSaml(string name, OrgIdpSamlArgs args, CustomResourceOptions? options = null) + : base("zitadel:index/orgIdpSaml:OrgIdpSaml", name, args ?? new OrgIdpSamlArgs(), MakeResourceOptions(options, "")) + { + } + + private OrgIdpSaml(string name, Input id, OrgIdpSamlState? state = null, CustomResourceOptions? options = null) + : base("zitadel:index/orgIdpSaml:OrgIdpSaml", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing OrgIdpSaml resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static OrgIdpSaml Get(string name, Input id, OrgIdpSamlState? state = null, CustomResourceOptions? options = null) + { + return new OrgIdpSaml(name, id, state, options); + } + } + + public sealed class OrgIdpSamlArgs : global::Pulumi.ResourceArgs + { + /// + /// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + /// + [Input("binding")] + public Input? Binding { get; set; } + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation", required: true)] + public Input IsAutoCreation { get; set; } = null!; + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate", required: true)] + public Input IsAutoUpdate { get; set; } = null!; + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed", required: true)] + public Input IsCreationAllowed { get; set; } = null!; + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed", required: true)] + public Input IsLinkingAllowed { get; set; } = null!; + + /// + /// The metadata XML as plain string + /// + [Input("metadataXml", required: true)] + public Input MetadataXml { get; set; } = null!; + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + /// + /// Whether the SAML IDP requires signed requests + /// + [Input("withSignedRequest")] + public Input? WithSignedRequest { get; set; } + + public OrgIdpSamlArgs() + { + } + public static new OrgIdpSamlArgs Empty => new OrgIdpSamlArgs(); + } + + public sealed class OrgIdpSamlState : global::Pulumi.ResourceArgs + { + /// + /// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + /// + [Input("binding")] + public Input? Binding { get; set; } + + /// + /// enable if a new account in ZITADEL should be created automatically on login with an external account + /// + [Input("isAutoCreation")] + public Input? IsAutoCreation { get; set; } + + /// + /// enable if a the ZITADEL account fields should be updated automatically on each login + /// + [Input("isAutoUpdate")] + public Input? IsAutoUpdate { get; set; } + + /// + /// enable if users should be able to create a new account in ZITADEL when using an external account + /// + [Input("isCreationAllowed")] + public Input? IsCreationAllowed { get; set; } + + /// + /// enable if users should be able to link an existing ZITADEL user with an external account + /// + [Input("isLinkingAllowed")] + public Input? IsLinkingAllowed { get; set; } + + /// + /// The metadata XML as plain string + /// + [Input("metadataXml")] + public Input? MetadataXml { get; set; } + + /// + /// Name of the IDP + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + /// + /// Whether the SAML IDP requires signed requests + /// + [Input("withSignedRequest")] + public Input? WithSignedRequest { get; set; } + + public OrgIdpSamlState() + { + } + public static new OrgIdpSamlState Empty => new OrgIdpSamlState(); + } +} diff --git a/sdk/dotnet/OrgMember.cs b/sdk/dotnet/OrgMember.cs index e75effb..864a016 100644 --- a/sdk/dotnet/OrgMember.cs +++ b/sdk/dotnet/OrgMember.cs @@ -38,7 +38,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<user_id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<user_id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/orgMember:OrgMember imported '123456789012345678:123456789012345678' diff --git a/sdk/dotnet/OrgMetadata.cs b/sdk/dotnet/OrgMetadata.cs new file mode 100644 index 0000000..71e7470 --- /dev/null +++ b/sdk/dotnet/OrgMetadata.cs @@ -0,0 +1,159 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumiverse.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Zitadel.OrgMetadata("default", new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// Key = "a_key", + /// Value = "a_value", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// bash The resource can be imported using the ID format `<key[:org_id]>`, e.g. + /// + /// ```sh + /// $ pulumi import zitadel:index/orgMetadata:OrgMetadata imported 'a_key:123456789012345678' + /// ``` + /// + [ZitadelResourceType("zitadel:index/orgMetadata:OrgMetadata")] + public partial class OrgMetadata : global::Pulumi.CustomResource + { + /// + /// The key of a metadata entry + /// + [Output("key")] + public Output Key { get; private set; } = null!; + + /// + /// ID of the organization + /// + [Output("orgId")] + public Output OrgId { get; private set; } = null!; + + /// + /// The string representation of a metadata entry value. For binary data, use the base64encode function. + /// + [Output("value")] + public Output Value { get; private set; } = null!; + + + /// + /// Create a OrgMetadata resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public OrgMetadata(string name, OrgMetadataArgs args, CustomResourceOptions? options = null) + : base("zitadel:index/orgMetadata:OrgMetadata", name, args ?? new OrgMetadataArgs(), MakeResourceOptions(options, "")) + { + } + + private OrgMetadata(string name, Input id, OrgMetadataState? state = null, CustomResourceOptions? options = null) + : base("zitadel:index/orgMetadata:OrgMetadata", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing OrgMetadata resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static OrgMetadata Get(string name, Input id, OrgMetadataState? state = null, CustomResourceOptions? options = null) + { + return new OrgMetadata(name, id, state, options); + } + } + + public sealed class OrgMetadataArgs : global::Pulumi.ResourceArgs + { + /// + /// The key of a metadata entry + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + /// + /// The string representation of a metadata entry value. For binary data, use the base64encode function. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public OrgMetadataArgs() + { + } + public static new OrgMetadataArgs Empty => new OrgMetadataArgs(); + } + + public sealed class OrgMetadataState : global::Pulumi.ResourceArgs + { + /// + /// The key of a metadata entry + /// + [Input("key")] + public Input? Key { get; set; } + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + /// + /// The string representation of a metadata entry value. For binary data, use the base64encode function. + /// + [Input("value")] + public Input? Value { get; set; } + + public OrgMetadataState() + { + } + public static new OrgMetadataState Empty => new OrgMetadataState(); + } +} diff --git a/sdk/dotnet/PersonalAccessToken.cs b/sdk/dotnet/PersonalAccessToken.cs index 032d4e1..df8e0fa 100644 --- a/sdk/dotnet/PersonalAccessToken.cs +++ b/sdk/dotnet/PersonalAccessToken.cs @@ -35,7 +35,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:user_id[:org_id][:token]>`, e.g. + /// bash The resource can be imported using the ID format `<id:user_id[:org_id][:token]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/personalAccessToken:PersonalAccessToken imported '123456789012345678:123456789012345678:123456789012345678:LHt79...' diff --git a/sdk/dotnet/PrivacyPolicy.cs b/sdk/dotnet/PrivacyPolicy.cs index 133d1e0..3feb1be 100644 --- a/sdk/dotnet/PrivacyPolicy.cs +++ b/sdk/dotnet/PrivacyPolicy.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<[org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/privacyPolicy:PrivacyPolicy imported '123456789012345678' diff --git a/sdk/dotnet/Project.cs b/sdk/dotnet/Project.cs index 66d9789..c4bec80 100644 --- a/sdk/dotnet/Project.cs +++ b/sdk/dotnet/Project.cs @@ -38,7 +38,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/project:Project imported '123456789012345678:123456789012345678' diff --git a/sdk/dotnet/ProjectGrant.cs b/sdk/dotnet/ProjectGrant.cs index 675e35a..20e0f70 100644 --- a/sdk/dotnet/ProjectGrant.cs +++ b/sdk/dotnet/ProjectGrant.cs @@ -39,7 +39,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id:project_id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<id:project_id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/projectGrant:ProjectGrant imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/dotnet/ProjectGrantMember.cs b/sdk/dotnet/ProjectGrantMember.cs index 95df20c..dad14c4 100644 --- a/sdk/dotnet/ProjectGrantMember.cs +++ b/sdk/dotnet/ProjectGrantMember.cs @@ -40,7 +40,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<project_id:grant_id:user_id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<project_id:grant_id:user_id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/projectGrantMember:ProjectGrantMember imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/dotnet/ProjectMember.cs b/sdk/dotnet/ProjectMember.cs index 70a8d00..4ecd8a8 100644 --- a/sdk/dotnet/ProjectMember.cs +++ b/sdk/dotnet/ProjectMember.cs @@ -39,7 +39,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<project_id:user_id[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<project_id:user_id[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/projectMember:ProjectMember imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/dotnet/ProjectRole.cs b/sdk/dotnet/ProjectRole.cs index 2885fa2..b92f096 100644 --- a/sdk/dotnet/ProjectRole.cs +++ b/sdk/dotnet/ProjectRole.cs @@ -37,7 +37,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<project_id:role_key[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<project_id:role_key[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/projectRole:ProjectRole imported '123456789012345678:my-role-key:123456789012345678' diff --git a/sdk/dotnet/SmsProviderTwilio.cs b/sdk/dotnet/SmsProviderTwilio.cs index a4ce93e..753232e 100644 --- a/sdk/dotnet/SmsProviderTwilio.cs +++ b/sdk/dotnet/SmsProviderTwilio.cs @@ -35,7 +35,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<id[:token]>`, e.g. + /// bash The resource can be imported using the ID format `<id[:token]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/smsProviderTwilio:SmsProviderTwilio imported '123456789012345678:12345678901234567890123456abcdef' diff --git a/sdk/dotnet/SmtpConfig.cs b/sdk/dotnet/SmtpConfig.cs index f1d78bd..fdf0c34 100644 --- a/sdk/dotnet/SmtpConfig.cs +++ b/sdk/dotnet/SmtpConfig.cs @@ -39,7 +39,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<[password]>`, e.g. + /// bash The resource can be imported using the ID format `<[password]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/smtpConfig:SmtpConfig imported 'p4ssw0rd' diff --git a/sdk/dotnet/TriggerActions.cs b/sdk/dotnet/TriggerActions.cs index ff79695..0111b44 100644 --- a/sdk/dotnet/TriggerActions.cs +++ b/sdk/dotnet/TriggerActions.cs @@ -39,7 +39,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<flow_type:trigger_type[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<flow_type:trigger_type[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/triggerActions:TriggerActions imported 'FLOW_TYPE_EXTERNAL_AUTHENTICATION:TRIGGER_TYPE_POST_CREATION:123456789012345678' diff --git a/sdk/dotnet/UserGrant.cs b/sdk/dotnet/UserGrant.cs index 57825fa..1e5c87e 100644 --- a/sdk/dotnet/UserGrant.cs +++ b/sdk/dotnet/UserGrant.cs @@ -39,7 +39,7 @@ namespace Pulumiverse.Zitadel /// /// ## Import /// - /// terraform The resource can be imported using the ID format `<flow_type:trigger_type[:org_id]>`, e.g. + /// bash The resource can be imported using the ID format `<flow_type:trigger_type[:org_id]>`, e.g. /// /// ```sh /// $ pulumi import zitadel:index/userGrant:UserGrant imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/dotnet/UserMetadata.cs b/sdk/dotnet/UserMetadata.cs new file mode 100644 index 0000000..9893303 --- /dev/null +++ b/sdk/dotnet/UserMetadata.cs @@ -0,0 +1,178 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Zitadel +{ + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Zitadel = Pulumiverse.Zitadel; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Zitadel.UserMetadata("default", new() + /// { + /// OrgId = defaultZitadelOrg.Id, + /// UserId = defaultZitadelHumanUser.Id, + /// Key = "a_key", + /// Value = "a_value", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// bash The resource can be imported using the ID format `<user_id:key[:org_id]>`, e.g. + /// + /// ```sh + /// $ pulumi import zitadel:index/userMetadata:UserMetadata imported '123456789012345678:a_key:123456789012345678' + /// ``` + /// + [ZitadelResourceType("zitadel:index/userMetadata:UserMetadata")] + public partial class UserMetadata : global::Pulumi.CustomResource + { + /// + /// The key of a metadata entry + /// + [Output("key")] + public Output Key { get; private set; } = null!; + + /// + /// ID of the organization + /// + [Output("orgId")] + public Output OrgId { get; private set; } = null!; + + /// + /// ID of the user + /// + [Output("userId")] + public Output UserId { get; private set; } = null!; + + /// + /// The string representation of a metadata entry value. For binary data, use the base64encode function. + /// + [Output("value")] + public Output Value { get; private set; } = null!; + + + /// + /// Create a UserMetadata resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public UserMetadata(string name, UserMetadataArgs args, CustomResourceOptions? options = null) + : base("zitadel:index/userMetadata:UserMetadata", name, args ?? new UserMetadataArgs(), MakeResourceOptions(options, "")) + { + } + + private UserMetadata(string name, Input id, UserMetadataState? state = null, CustomResourceOptions? options = null) + : base("zitadel:index/userMetadata:UserMetadata", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/pulumiverse", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing UserMetadata resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static UserMetadata Get(string name, Input id, UserMetadataState? state = null, CustomResourceOptions? options = null) + { + return new UserMetadata(name, id, state, options); + } + } + + public sealed class UserMetadataArgs : global::Pulumi.ResourceArgs + { + /// + /// The key of a metadata entry + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + /// + /// ID of the user + /// + [Input("userId", required: true)] + public Input UserId { get; set; } = null!; + + /// + /// The string representation of a metadata entry value. For binary data, use the base64encode function. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public UserMetadataArgs() + { + } + public static new UserMetadataArgs Empty => new UserMetadataArgs(); + } + + public sealed class UserMetadataState : global::Pulumi.ResourceArgs + { + /// + /// The key of a metadata entry + /// + [Input("key")] + public Input? Key { get; set; } + + /// + /// ID of the organization + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + /// + /// ID of the user + /// + [Input("userId")] + public Input? UserId { get; set; } + + /// + /// The string representation of a metadata entry value. For binary data, use the base64encode function. + /// + [Input("value")] + public Input? Value { get; set; } + + public UserMetadataState() + { + } + public static new UserMetadataState Empty => new UserMetadataState(); + } +} diff --git a/sdk/go/zitadel/action.go b/sdk/go/zitadel/action.go index 51e251e..6645a0d 100644 --- a/sdk/go/zitadel/action.go +++ b/sdk/go/zitadel/action.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/applicationApi.go b/sdk/go/zitadel/applicationApi.go index 9854121..fbdbd47 100644 --- a/sdk/go/zitadel/applicationApi.go +++ b/sdk/go/zitadel/applicationApi.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/applicationKey.go b/sdk/go/zitadel/applicationKey.go index d4591e0..ce52c9a 100644 --- a/sdk/go/zitadel/applicationKey.go +++ b/sdk/go/zitadel/applicationKey.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. +// bash The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. // // ```sh // diff --git a/sdk/go/zitadel/applicationOidc.go b/sdk/go/zitadel/applicationOidc.go index 2eb61f0..acc3d1a 100644 --- a/sdk/go/zitadel/applicationOidc.go +++ b/sdk/go/zitadel/applicationOidc.go @@ -67,7 +67,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/applicationSaml.go b/sdk/go/zitadel/applicationSaml.go index 1dc5cf0..089bc60 100644 --- a/sdk/go/zitadel/applicationSaml.go +++ b/sdk/go/zitadel/applicationSaml.go @@ -62,7 +62,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/defaultDomainPolicy.go b/sdk/go/zitadel/defaultDomainPolicy.go index be44257..ce2964c 100644 --- a/sdk/go/zitadel/defaultDomainPolicy.go +++ b/sdk/go/zitadel/defaultDomainPolicy.go @@ -45,7 +45,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/defaultLabelPolicy.go b/sdk/go/zitadel/defaultLabelPolicy.go index b29a1ac..3c27d1f 100644 --- a/sdk/go/zitadel/defaultLabelPolicy.go +++ b/sdk/go/zitadel/defaultLabelPolicy.go @@ -17,7 +17,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // @@ -60,6 +60,8 @@ type DefaultLabelPolicy struct { PrimaryColorDark pulumi.StringOutput `pulumi:"primaryColorDark"` // set the label policy active after creating/updating SetActive pulumi.BoolPtrOutput `pulumi:"setActive"` + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode pulumi.StringPtrOutput `pulumi:"themeMode"` // hex value for warn color WarnColor pulumi.StringOutput `pulumi:"warnColor"` // hex value for warn color dark theme @@ -159,6 +161,8 @@ type defaultLabelPolicyState struct { PrimaryColorDark *string `pulumi:"primaryColorDark"` // set the label policy active after creating/updating SetActive *bool `pulumi:"setActive"` + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode *string `pulumi:"themeMode"` // hex value for warn color WarnColor *string `pulumi:"warnColor"` // hex value for warn color dark theme @@ -199,6 +203,8 @@ type DefaultLabelPolicyState struct { PrimaryColorDark pulumi.StringPtrInput // set the label policy active after creating/updating SetActive pulumi.BoolPtrInput + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode pulumi.StringPtrInput // hex value for warn color WarnColor pulumi.StringPtrInput // hex value for warn color dark theme @@ -238,6 +244,8 @@ type defaultLabelPolicyArgs struct { PrimaryColorDark string `pulumi:"primaryColorDark"` // set the label policy active after creating/updating SetActive *bool `pulumi:"setActive"` + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode *string `pulumi:"themeMode"` // hex value for warn color WarnColor string `pulumi:"warnColor"` // hex value for warn color dark theme @@ -274,6 +282,8 @@ type DefaultLabelPolicyArgs struct { PrimaryColorDark pulumi.StringInput // set the label policy active after creating/updating SetActive pulumi.BoolPtrInput + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode pulumi.StringPtrInput // hex value for warn color WarnColor pulumi.StringInput // hex value for warn color dark theme @@ -496,6 +506,11 @@ func (o DefaultLabelPolicyOutput) SetActive() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DefaultLabelPolicy) pulumi.BoolPtrOutput { return v.SetActive }).(pulumi.BoolPtrOutput) } +// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT +func (o DefaultLabelPolicyOutput) ThemeMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultLabelPolicy) pulumi.StringPtrOutput { return v.ThemeMode }).(pulumi.StringPtrOutput) +} + // hex value for warn color func (o DefaultLabelPolicyOutput) WarnColor() pulumi.StringOutput { return o.ApplyT(func(v *DefaultLabelPolicy) pulumi.StringOutput { return v.WarnColor }).(pulumi.StringOutput) diff --git a/sdk/go/zitadel/defaultLockoutPolicy.go b/sdk/go/zitadel/defaultLockoutPolicy.go index be0720e..eda1ef5 100644 --- a/sdk/go/zitadel/defaultLockoutPolicy.go +++ b/sdk/go/zitadel/defaultLockoutPolicy.go @@ -43,7 +43,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/defaultLoginPolicy.go b/sdk/go/zitadel/defaultLoginPolicy.go index a9fb56c..42754f6 100644 --- a/sdk/go/zitadel/defaultLoginPolicy.go +++ b/sdk/go/zitadel/defaultLoginPolicy.go @@ -70,7 +70,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/defaultNotificationPolicy.go b/sdk/go/zitadel/defaultNotificationPolicy.go index a313949..03a759b 100644 --- a/sdk/go/zitadel/defaultNotificationPolicy.go +++ b/sdk/go/zitadel/defaultNotificationPolicy.go @@ -43,7 +43,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/defaultPasswordComplexityPolicy.go b/sdk/go/zitadel/defaultPasswordComplexityPolicy.go index 32e2861..7ab53fe 100644 --- a/sdk/go/zitadel/defaultPasswordComplexityPolicy.go +++ b/sdk/go/zitadel/defaultPasswordComplexityPolicy.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/defaultPrivacyPolicy.go b/sdk/go/zitadel/defaultPrivacyPolicy.go index 9b5dd40..dcad0b5 100644 --- a/sdk/go/zitadel/defaultPrivacyPolicy.go +++ b/sdk/go/zitadel/defaultPrivacyPolicy.go @@ -45,7 +45,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<>`, e.g. +// bash The resource can be imported using the ID format `<>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/domain.go b/sdk/go/zitadel/domain.go index 23f52a5..df50926 100644 --- a/sdk/go/zitadel/domain.go +++ b/sdk/go/zitadel/domain.go @@ -44,7 +44,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `name[:org_id]`, e.g. +// bash The resource can be imported using the ID format `name[:org_id]`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/domainPolicy.go b/sdk/go/zitadel/domainPolicy.go index eac56b8..2b73f57 100644 --- a/sdk/go/zitadel/domainPolicy.go +++ b/sdk/go/zitadel/domainPolicy.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. +// bash The resource can be imported using the ID format `<[org_id]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/getIdpOauth.go b/sdk/go/zitadel/getIdpOauth.go new file mode 100644 index 0000000..4ed3915 --- /dev/null +++ b/sdk/go/zitadel/getIdpOauth.go @@ -0,0 +1,199 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Datasource representing a generic OAuth2 IDP on the instance. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.LookupIdpOauth(ctx, &zitadel.LookupIdpOauthArgs{ +// Id: "123456789012345678", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupIdpOauth(ctx *pulumi.Context, args *LookupIdpOauthArgs, opts ...pulumi.InvokeOption) (*LookupIdpOauthResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupIdpOauthResult + err := ctx.Invoke("zitadel:index/getIdpOauth:getIdpOauth", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getIdpOauth. +type LookupIdpOauthArgs struct { + // The ID of this resource. + Id string `pulumi:"id"` +} + +// A collection of values returned by getIdpOauth. +type LookupIdpOauthResult struct { + // The authorization endpoint + AuthorizationEndpoint string `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId string `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret string `pulumi:"clientSecret"` + // The ID of this resource. + Id string `pulumi:"id"` + // The id attribute + IdAttribute string `pulumi:"idAttribute"` + // enabled if a new account in ZITADEL are created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enabled if a the ZITADEL account fields are updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enabled if users are able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enabled if users are able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name string `pulumi:"name"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes []string `pulumi:"scopes"` + // The token endpoint + TokenEndpoint string `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint string `pulumi:"userEndpoint"` +} + +func LookupIdpOauthOutput(ctx *pulumi.Context, args LookupIdpOauthOutputArgs, opts ...pulumi.InvokeOption) LookupIdpOauthResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupIdpOauthResult, error) { + args := v.(LookupIdpOauthArgs) + r, err := LookupIdpOauth(ctx, &args, opts...) + var s LookupIdpOauthResult + if r != nil { + s = *r + } + return s, err + }).(LookupIdpOauthResultOutput) +} + +// A collection of arguments for invoking getIdpOauth. +type LookupIdpOauthOutputArgs struct { + // The ID of this resource. + Id pulumi.StringInput `pulumi:"id"` +} + +func (LookupIdpOauthOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIdpOauthArgs)(nil)).Elem() +} + +// A collection of values returned by getIdpOauth. +type LookupIdpOauthResultOutput struct{ *pulumi.OutputState } + +func (LookupIdpOauthResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIdpOauthResult)(nil)).Elem() +} + +func (o LookupIdpOauthResultOutput) ToLookupIdpOauthResultOutput() LookupIdpOauthResultOutput { + return o +} + +func (o LookupIdpOauthResultOutput) ToLookupIdpOauthResultOutputWithContext(ctx context.Context) LookupIdpOauthResultOutput { + return o +} + +func (o LookupIdpOauthResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupIdpOauthResult] { + return pulumix.Output[LookupIdpOauthResult]{ + OutputState: o.OutputState, + } +} + +// The authorization endpoint +func (o LookupIdpOauthResultOutput) AuthorizationEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.AuthorizationEndpoint }).(pulumi.StringOutput) +} + +// client id generated by the identity provider +func (o LookupIdpOauthResultOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.ClientId }).(pulumi.StringOutput) +} + +// client secret generated by the identity provider +func (o LookupIdpOauthResultOutput) ClientSecret() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.ClientSecret }).(pulumi.StringOutput) +} + +// The ID of this resource. +func (o LookupIdpOauthResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The id attribute +func (o LookupIdpOauthResultOutput) IdAttribute() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.IdAttribute }).(pulumi.StringOutput) +} + +// enabled if a new account in ZITADEL are created automatically on login with an external account +func (o LookupIdpOauthResultOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpOauthResult) bool { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enabled if a the ZITADEL account fields are updated automatically on each login +func (o LookupIdpOauthResultOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpOauthResult) bool { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enabled if users are able to create a new account in ZITADEL when using an external account +func (o LookupIdpOauthResultOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpOauthResult) bool { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enabled if users are able to link an existing ZITADEL user with an external account +func (o LookupIdpOauthResultOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpOauthResult) bool { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// Name of the IDP +func (o LookupIdpOauthResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.Name }).(pulumi.StringOutput) +} + +// the scopes requested by ZITADEL during the request on the identity provider +func (o LookupIdpOauthResultOutput) Scopes() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupIdpOauthResult) []string { return v.Scopes }).(pulumi.StringArrayOutput) +} + +// The token endpoint +func (o LookupIdpOauthResultOutput) TokenEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.TokenEndpoint }).(pulumi.StringOutput) +} + +// The user endpoint +func (o LookupIdpOauthResultOutput) UserEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpOauthResult) string { return v.UserEndpoint }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupIdpOauthResultOutput{}) +} diff --git a/sdk/go/zitadel/getIdpSaml.go b/sdk/go/zitadel/getIdpSaml.go new file mode 100644 index 0000000..96a5078 --- /dev/null +++ b/sdk/go/zitadel/getIdpSaml.go @@ -0,0 +1,171 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Datasource representing a SAML IDP on the instance. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.LookupIdpSaml(ctx, &zitadel.LookupIdpSamlArgs{ +// Id: "123456789012345678", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupIdpSaml(ctx *pulumi.Context, args *LookupIdpSamlArgs, opts ...pulumi.InvokeOption) (*LookupIdpSamlResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupIdpSamlResult + err := ctx.Invoke("zitadel:index/getIdpSaml:getIdpSaml", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getIdpSaml. +type LookupIdpSamlArgs struct { + // The ID of this resource. + Id string `pulumi:"id"` +} + +// A collection of values returned by getIdpSaml. +type LookupIdpSamlResult struct { + // The binding + Binding string `pulumi:"binding"` + // The ID of this resource. + Id string `pulumi:"id"` + // enabled if a new account in ZITADEL are created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enabled if a the ZITADEL account fields are updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enabled if users are able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enabled if users are able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml string `pulumi:"metadataXml"` + // Name of the IDP + Name string `pulumi:"name"` + // Whether the SAML IDP requires signed requests + WithSignedRequest string `pulumi:"withSignedRequest"` +} + +func LookupIdpSamlOutput(ctx *pulumi.Context, args LookupIdpSamlOutputArgs, opts ...pulumi.InvokeOption) LookupIdpSamlResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupIdpSamlResult, error) { + args := v.(LookupIdpSamlArgs) + r, err := LookupIdpSaml(ctx, &args, opts...) + var s LookupIdpSamlResult + if r != nil { + s = *r + } + return s, err + }).(LookupIdpSamlResultOutput) +} + +// A collection of arguments for invoking getIdpSaml. +type LookupIdpSamlOutputArgs struct { + // The ID of this resource. + Id pulumi.StringInput `pulumi:"id"` +} + +func (LookupIdpSamlOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIdpSamlArgs)(nil)).Elem() +} + +// A collection of values returned by getIdpSaml. +type LookupIdpSamlResultOutput struct{ *pulumi.OutputState } + +func (LookupIdpSamlResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIdpSamlResult)(nil)).Elem() +} + +func (o LookupIdpSamlResultOutput) ToLookupIdpSamlResultOutput() LookupIdpSamlResultOutput { + return o +} + +func (o LookupIdpSamlResultOutput) ToLookupIdpSamlResultOutputWithContext(ctx context.Context) LookupIdpSamlResultOutput { + return o +} + +func (o LookupIdpSamlResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupIdpSamlResult] { + return pulumix.Output[LookupIdpSamlResult]{ + OutputState: o.OutputState, + } +} + +// The binding +func (o LookupIdpSamlResultOutput) Binding() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpSamlResult) string { return v.Binding }).(pulumi.StringOutput) +} + +// The ID of this resource. +func (o LookupIdpSamlResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpSamlResult) string { return v.Id }).(pulumi.StringOutput) +} + +// enabled if a new account in ZITADEL are created automatically on login with an external account +func (o LookupIdpSamlResultOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpSamlResult) bool { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enabled if a the ZITADEL account fields are updated automatically on each login +func (o LookupIdpSamlResultOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpSamlResult) bool { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enabled if users are able to create a new account in ZITADEL when using an external account +func (o LookupIdpSamlResultOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpSamlResult) bool { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enabled if users are able to link an existing ZITADEL user with an external account +func (o LookupIdpSamlResultOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIdpSamlResult) bool { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// The metadata XML as plain string +func (o LookupIdpSamlResultOutput) MetadataXml() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpSamlResult) string { return v.MetadataXml }).(pulumi.StringOutput) +} + +// Name of the IDP +func (o LookupIdpSamlResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpSamlResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Whether the SAML IDP requires signed requests +func (o LookupIdpSamlResultOutput) WithSignedRequest() pulumi.StringOutput { + return o.ApplyT(func(v LookupIdpSamlResult) string { return v.WithSignedRequest }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupIdpSamlResultOutput{}) +} diff --git a/sdk/go/zitadel/getOrgIdpOauth.go b/sdk/go/zitadel/getOrgIdpOauth.go new file mode 100644 index 0000000..64534d4 --- /dev/null +++ b/sdk/go/zitadel/getOrgIdpOauth.go @@ -0,0 +1,211 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Datasource representing a generic OAuth2 IDP of the organization. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.LookupOrgIdpOauth(ctx, &zitadel.LookupOrgIdpOauthArgs{ +// OrgId: pulumi.StringRef(defaultZitadelOrg.Id), +// Id: "123456789012345678", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupOrgIdpOauth(ctx *pulumi.Context, args *LookupOrgIdpOauthArgs, opts ...pulumi.InvokeOption) (*LookupOrgIdpOauthResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupOrgIdpOauthResult + err := ctx.Invoke("zitadel:index/getOrgIdpOauth:getOrgIdpOauth", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getOrgIdpOauth. +type LookupOrgIdpOauthArgs struct { + // The ID of this resource. + Id string `pulumi:"id"` + // ID of the organization + OrgId *string `pulumi:"orgId"` +} + +// A collection of values returned by getOrgIdpOauth. +type LookupOrgIdpOauthResult struct { + // The authorization endpoint + AuthorizationEndpoint string `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId string `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret string `pulumi:"clientSecret"` + // The ID of this resource. + Id string `pulumi:"id"` + // The id attribute + IdAttribute string `pulumi:"idAttribute"` + // enabled if a new account in ZITADEL are created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enabled if a the ZITADEL account fields are updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enabled if users are able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enabled if users are able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name string `pulumi:"name"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes []string `pulumi:"scopes"` + // The token endpoint + TokenEndpoint string `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint string `pulumi:"userEndpoint"` +} + +func LookupOrgIdpOauthOutput(ctx *pulumi.Context, args LookupOrgIdpOauthOutputArgs, opts ...pulumi.InvokeOption) LookupOrgIdpOauthResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupOrgIdpOauthResult, error) { + args := v.(LookupOrgIdpOauthArgs) + r, err := LookupOrgIdpOauth(ctx, &args, opts...) + var s LookupOrgIdpOauthResult + if r != nil { + s = *r + } + return s, err + }).(LookupOrgIdpOauthResultOutput) +} + +// A collection of arguments for invoking getOrgIdpOauth. +type LookupOrgIdpOauthOutputArgs struct { + // The ID of this resource. + Id pulumi.StringInput `pulumi:"id"` + // ID of the organization + OrgId pulumi.StringPtrInput `pulumi:"orgId"` +} + +func (LookupOrgIdpOauthOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOrgIdpOauthArgs)(nil)).Elem() +} + +// A collection of values returned by getOrgIdpOauth. +type LookupOrgIdpOauthResultOutput struct{ *pulumi.OutputState } + +func (LookupOrgIdpOauthResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOrgIdpOauthResult)(nil)).Elem() +} + +func (o LookupOrgIdpOauthResultOutput) ToLookupOrgIdpOauthResultOutput() LookupOrgIdpOauthResultOutput { + return o +} + +func (o LookupOrgIdpOauthResultOutput) ToLookupOrgIdpOauthResultOutputWithContext(ctx context.Context) LookupOrgIdpOauthResultOutput { + return o +} + +func (o LookupOrgIdpOauthResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupOrgIdpOauthResult] { + return pulumix.Output[LookupOrgIdpOauthResult]{ + OutputState: o.OutputState, + } +} + +// The authorization endpoint +func (o LookupOrgIdpOauthResultOutput) AuthorizationEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.AuthorizationEndpoint }).(pulumi.StringOutput) +} + +// client id generated by the identity provider +func (o LookupOrgIdpOauthResultOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.ClientId }).(pulumi.StringOutput) +} + +// client secret generated by the identity provider +func (o LookupOrgIdpOauthResultOutput) ClientSecret() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.ClientSecret }).(pulumi.StringOutput) +} + +// The ID of this resource. +func (o LookupOrgIdpOauthResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The id attribute +func (o LookupOrgIdpOauthResultOutput) IdAttribute() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.IdAttribute }).(pulumi.StringOutput) +} + +// enabled if a new account in ZITADEL are created automatically on login with an external account +func (o LookupOrgIdpOauthResultOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) bool { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enabled if a the ZITADEL account fields are updated automatically on each login +func (o LookupOrgIdpOauthResultOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) bool { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enabled if users are able to create a new account in ZITADEL when using an external account +func (o LookupOrgIdpOauthResultOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) bool { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enabled if users are able to link an existing ZITADEL user with an external account +func (o LookupOrgIdpOauthResultOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) bool { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// Name of the IDP +func (o LookupOrgIdpOauthResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.Name }).(pulumi.StringOutput) +} + +// ID of the organization +func (o LookupOrgIdpOauthResultOutput) OrgId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) *string { return v.OrgId }).(pulumi.StringPtrOutput) +} + +// the scopes requested by ZITADEL during the request on the identity provider +func (o LookupOrgIdpOauthResultOutput) Scopes() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) []string { return v.Scopes }).(pulumi.StringArrayOutput) +} + +// The token endpoint +func (o LookupOrgIdpOauthResultOutput) TokenEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.TokenEndpoint }).(pulumi.StringOutput) +} + +// The user endpoint +func (o LookupOrgIdpOauthResultOutput) UserEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpOauthResult) string { return v.UserEndpoint }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupOrgIdpOauthResultOutput{}) +} diff --git a/sdk/go/zitadel/getOrgIdpSaml.go b/sdk/go/zitadel/getOrgIdpSaml.go new file mode 100644 index 0000000..ab7df88 --- /dev/null +++ b/sdk/go/zitadel/getOrgIdpSaml.go @@ -0,0 +1,183 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Datasource representing a SAML IdP of the organization. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.LookupOrgIdpSaml(ctx, &zitadel.LookupOrgIdpSamlArgs{ +// OrgId: pulumi.StringRef(defaultZitadelOrg.Id), +// Id: "123456789012345678", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupOrgIdpSaml(ctx *pulumi.Context, args *LookupOrgIdpSamlArgs, opts ...pulumi.InvokeOption) (*LookupOrgIdpSamlResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupOrgIdpSamlResult + err := ctx.Invoke("zitadel:index/getOrgIdpSaml:getOrgIdpSaml", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getOrgIdpSaml. +type LookupOrgIdpSamlArgs struct { + // The ID of this resource. + Id string `pulumi:"id"` + // ID of the organization + OrgId *string `pulumi:"orgId"` +} + +// A collection of values returned by getOrgIdpSaml. +type LookupOrgIdpSamlResult struct { + // The binding + Binding string `pulumi:"binding"` + // The ID of this resource. + Id string `pulumi:"id"` + // enabled if a new account in ZITADEL are created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enabled if a the ZITADEL account fields are updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enabled if users are able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enabled if users are able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml string `pulumi:"metadataXml"` + // Name of the IDP + Name string `pulumi:"name"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // Whether the SAML IDP requires signed requests + WithSignedRequest string `pulumi:"withSignedRequest"` +} + +func LookupOrgIdpSamlOutput(ctx *pulumi.Context, args LookupOrgIdpSamlOutputArgs, opts ...pulumi.InvokeOption) LookupOrgIdpSamlResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupOrgIdpSamlResult, error) { + args := v.(LookupOrgIdpSamlArgs) + r, err := LookupOrgIdpSaml(ctx, &args, opts...) + var s LookupOrgIdpSamlResult + if r != nil { + s = *r + } + return s, err + }).(LookupOrgIdpSamlResultOutput) +} + +// A collection of arguments for invoking getOrgIdpSaml. +type LookupOrgIdpSamlOutputArgs struct { + // The ID of this resource. + Id pulumi.StringInput `pulumi:"id"` + // ID of the organization + OrgId pulumi.StringPtrInput `pulumi:"orgId"` +} + +func (LookupOrgIdpSamlOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOrgIdpSamlArgs)(nil)).Elem() +} + +// A collection of values returned by getOrgIdpSaml. +type LookupOrgIdpSamlResultOutput struct{ *pulumi.OutputState } + +func (LookupOrgIdpSamlResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOrgIdpSamlResult)(nil)).Elem() +} + +func (o LookupOrgIdpSamlResultOutput) ToLookupOrgIdpSamlResultOutput() LookupOrgIdpSamlResultOutput { + return o +} + +func (o LookupOrgIdpSamlResultOutput) ToLookupOrgIdpSamlResultOutputWithContext(ctx context.Context) LookupOrgIdpSamlResultOutput { + return o +} + +func (o LookupOrgIdpSamlResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupOrgIdpSamlResult] { + return pulumix.Output[LookupOrgIdpSamlResult]{ + OutputState: o.OutputState, + } +} + +// The binding +func (o LookupOrgIdpSamlResultOutput) Binding() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) string { return v.Binding }).(pulumi.StringOutput) +} + +// The ID of this resource. +func (o LookupOrgIdpSamlResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) string { return v.Id }).(pulumi.StringOutput) +} + +// enabled if a new account in ZITADEL are created automatically on login with an external account +func (o LookupOrgIdpSamlResultOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) bool { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enabled if a the ZITADEL account fields are updated automatically on each login +func (o LookupOrgIdpSamlResultOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) bool { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enabled if users are able to create a new account in ZITADEL when using an external account +func (o LookupOrgIdpSamlResultOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) bool { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enabled if users are able to link an existing ZITADEL user with an external account +func (o LookupOrgIdpSamlResultOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) bool { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// The metadata XML as plain string +func (o LookupOrgIdpSamlResultOutput) MetadataXml() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) string { return v.MetadataXml }).(pulumi.StringOutput) +} + +// Name of the IDP +func (o LookupOrgIdpSamlResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) string { return v.Name }).(pulumi.StringOutput) +} + +// ID of the organization +func (o LookupOrgIdpSamlResultOutput) OrgId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) *string { return v.OrgId }).(pulumi.StringPtrOutput) +} + +// Whether the SAML IDP requires signed requests +func (o LookupOrgIdpSamlResultOutput) WithSignedRequest() pulumi.StringOutput { + return o.ApplyT(func(v LookupOrgIdpSamlResult) string { return v.WithSignedRequest }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupOrgIdpSamlResultOutput{}) +} diff --git a/sdk/go/zitadel/humanUser.go b/sdk/go/zitadel/humanUser.go index 887d15d..40bd702 100644 --- a/sdk/go/zitadel/humanUser.go +++ b/sdk/go/zitadel/humanUser.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. +// bash The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpAzureAd.go b/sdk/go/zitadel/idpAzureAd.go index 46914ea..c6ac144 100644 --- a/sdk/go/zitadel/idpAzureAd.go +++ b/sdk/go/zitadel/idpAzureAd.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpGithub.go b/sdk/go/zitadel/idpGithub.go index eba778a..22942cf 100644 --- a/sdk/go/zitadel/idpGithub.go +++ b/sdk/go/zitadel/idpGithub.go @@ -54,7 +54,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpGithubEs.go b/sdk/go/zitadel/idpGithubEs.go index ea79bf4..e58bb16 100644 --- a/sdk/go/zitadel/idpGithubEs.go +++ b/sdk/go/zitadel/idpGithubEs.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpGitlab.go b/sdk/go/zitadel/idpGitlab.go index 5ab8c79..75244a6 100644 --- a/sdk/go/zitadel/idpGitlab.go +++ b/sdk/go/zitadel/idpGitlab.go @@ -54,7 +54,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpGitlabSelfHosted.go b/sdk/go/zitadel/idpGitlabSelfHosted.go index 8002c4c..223c355 100644 --- a/sdk/go/zitadel/idpGitlabSelfHosted.go +++ b/sdk/go/zitadel/idpGitlabSelfHosted.go @@ -55,7 +55,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpGoogle.go b/sdk/go/zitadel/idpGoogle.go index f9213e0..0964745 100644 --- a/sdk/go/zitadel/idpGoogle.go +++ b/sdk/go/zitadel/idpGoogle.go @@ -54,7 +54,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpLdap.go b/sdk/go/zitadel/idpLdap.go index 55f80b4..dd8d1f3 100644 --- a/sdk/go/zitadel/idpLdap.go +++ b/sdk/go/zitadel/idpLdap.go @@ -67,7 +67,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/idpOauth.go b/sdk/go/zitadel/idpOauth.go new file mode 100644 index 0000000..21497b2 --- /dev/null +++ b/sdk/go/zitadel/idpOauth.go @@ -0,0 +1,506 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Resource representing a generic OAuth2 IDP on the instance. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.NewIdpOauth(ctx, "default", &zitadel.IdpOauthArgs{ +// Name: pulumi.String("GitLab"), +// ClientId: pulumi.String("15765e..."), +// ClientSecret: pulumi.String("*****abcxyz"), +// AuthorizationEndpoint: pulumi.String("https://accounts.google.com/o/oauth2/v2/auth"), +// TokenEndpoint: pulumi.String("https://oauth2.googleapis.com/token"), +// UserEndpoint: pulumi.String("https://openidconnect.googleapis.com/v1/userinfo"), +// IdAttribute: pulumi.String("user_id"), +// Scopes: pulumi.StringArray{ +// pulumi.String("openid"), +// pulumi.String("profile"), +// pulumi.String("email"), +// }, +// IsLinkingAllowed: pulumi.Bool(false), +// IsCreationAllowed: pulumi.Bool(true), +// IsAutoCreation: pulumi.Bool(false), +// IsAutoUpdate: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// bash The resource can be imported using the ID format ``, e.g. +// +// ```sh +// +// $ pulumi import zitadel:index/idpOauth:IdpOauth imported '123456789012345678:1234567890abcdef' +// +// ``` +type IdpOauth struct { + pulumi.CustomResourceState + + // The authorization endpoint + AuthorizationEndpoint pulumi.StringOutput `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId pulumi.StringOutput `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret pulumi.StringOutput `pulumi:"clientSecret"` + // The id attribute + IdAttribute pulumi.StringOutput `pulumi:"idAttribute"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolOutput `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolOutput `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolOutput `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolOutput `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name pulumi.StringOutput `pulumi:"name"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes pulumi.StringArrayOutput `pulumi:"scopes"` + // The token endpoint + TokenEndpoint pulumi.StringOutput `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint pulumi.StringOutput `pulumi:"userEndpoint"` +} + +// NewIdpOauth registers a new resource with the given unique name, arguments, and options. +func NewIdpOauth(ctx *pulumi.Context, + name string, args *IdpOauthArgs, opts ...pulumi.ResourceOption) (*IdpOauth, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AuthorizationEndpoint == nil { + return nil, errors.New("invalid value for required argument 'AuthorizationEndpoint'") + } + if args.ClientId == nil { + return nil, errors.New("invalid value for required argument 'ClientId'") + } + if args.ClientSecret == nil { + return nil, errors.New("invalid value for required argument 'ClientSecret'") + } + if args.IdAttribute == nil { + return nil, errors.New("invalid value for required argument 'IdAttribute'") + } + if args.IsAutoCreation == nil { + return nil, errors.New("invalid value for required argument 'IsAutoCreation'") + } + if args.IsAutoUpdate == nil { + return nil, errors.New("invalid value for required argument 'IsAutoUpdate'") + } + if args.IsCreationAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsCreationAllowed'") + } + if args.IsLinkingAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsLinkingAllowed'") + } + if args.TokenEndpoint == nil { + return nil, errors.New("invalid value for required argument 'TokenEndpoint'") + } + if args.UserEndpoint == nil { + return nil, errors.New("invalid value for required argument 'UserEndpoint'") + } + if args.ClientSecret != nil { + args.ClientSecret = pulumi.ToSecret(args.ClientSecret).(pulumi.StringInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "clientSecret", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource IdpOauth + err := ctx.RegisterResource("zitadel:index/idpOauth:IdpOauth", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetIdpOauth gets an existing IdpOauth resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetIdpOauth(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *IdpOauthState, opts ...pulumi.ResourceOption) (*IdpOauth, error) { + var resource IdpOauth + err := ctx.ReadResource("zitadel:index/idpOauth:IdpOauth", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering IdpOauth resources. +type idpOauthState struct { + // The authorization endpoint + AuthorizationEndpoint *string `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId *string `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret *string `pulumi:"clientSecret"` + // The id attribute + IdAttribute *string `pulumi:"idAttribute"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation *bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate *bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed *bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed *bool `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name *string `pulumi:"name"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes []string `pulumi:"scopes"` + // The token endpoint + TokenEndpoint *string `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint *string `pulumi:"userEndpoint"` +} + +type IdpOauthState struct { + // The authorization endpoint + AuthorizationEndpoint pulumi.StringPtrInput + // client id generated by the identity provider + ClientId pulumi.StringPtrInput + // client secret generated by the identity provider + ClientSecret pulumi.StringPtrInput + // The id attribute + IdAttribute pulumi.StringPtrInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolPtrInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolPtrInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolPtrInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolPtrInput + // Name of the IDP + Name pulumi.StringPtrInput + // the scopes requested by ZITADEL during the request on the identity provider + Scopes pulumi.StringArrayInput + // The token endpoint + TokenEndpoint pulumi.StringPtrInput + // The user endpoint + UserEndpoint pulumi.StringPtrInput +} + +func (IdpOauthState) ElementType() reflect.Type { + return reflect.TypeOf((*idpOauthState)(nil)).Elem() +} + +type idpOauthArgs struct { + // The authorization endpoint + AuthorizationEndpoint string `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId string `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret string `pulumi:"clientSecret"` + // The id attribute + IdAttribute string `pulumi:"idAttribute"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name *string `pulumi:"name"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes []string `pulumi:"scopes"` + // The token endpoint + TokenEndpoint string `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint string `pulumi:"userEndpoint"` +} + +// The set of arguments for constructing a IdpOauth resource. +type IdpOauthArgs struct { + // The authorization endpoint + AuthorizationEndpoint pulumi.StringInput + // client id generated by the identity provider + ClientId pulumi.StringInput + // client secret generated by the identity provider + ClientSecret pulumi.StringInput + // The id attribute + IdAttribute pulumi.StringInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolInput + // Name of the IDP + Name pulumi.StringPtrInput + // the scopes requested by ZITADEL during the request on the identity provider + Scopes pulumi.StringArrayInput + // The token endpoint + TokenEndpoint pulumi.StringInput + // The user endpoint + UserEndpoint pulumi.StringInput +} + +func (IdpOauthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*idpOauthArgs)(nil)).Elem() +} + +type IdpOauthInput interface { + pulumi.Input + + ToIdpOauthOutput() IdpOauthOutput + ToIdpOauthOutputWithContext(ctx context.Context) IdpOauthOutput +} + +func (*IdpOauth) ElementType() reflect.Type { + return reflect.TypeOf((**IdpOauth)(nil)).Elem() +} + +func (i *IdpOauth) ToIdpOauthOutput() IdpOauthOutput { + return i.ToIdpOauthOutputWithContext(context.Background()) +} + +func (i *IdpOauth) ToIdpOauthOutputWithContext(ctx context.Context) IdpOauthOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdpOauthOutput) +} + +func (i *IdpOauth) ToOutput(ctx context.Context) pulumix.Output[*IdpOauth] { + return pulumix.Output[*IdpOauth]{ + OutputState: i.ToIdpOauthOutputWithContext(ctx).OutputState, + } +} + +// IdpOauthArrayInput is an input type that accepts IdpOauthArray and IdpOauthArrayOutput values. +// You can construct a concrete instance of `IdpOauthArrayInput` via: +// +// IdpOauthArray{ IdpOauthArgs{...} } +type IdpOauthArrayInput interface { + pulumi.Input + + ToIdpOauthArrayOutput() IdpOauthArrayOutput + ToIdpOauthArrayOutputWithContext(context.Context) IdpOauthArrayOutput +} + +type IdpOauthArray []IdpOauthInput + +func (IdpOauthArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*IdpOauth)(nil)).Elem() +} + +func (i IdpOauthArray) ToIdpOauthArrayOutput() IdpOauthArrayOutput { + return i.ToIdpOauthArrayOutputWithContext(context.Background()) +} + +func (i IdpOauthArray) ToIdpOauthArrayOutputWithContext(ctx context.Context) IdpOauthArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdpOauthArrayOutput) +} + +func (i IdpOauthArray) ToOutput(ctx context.Context) pulumix.Output[[]*IdpOauth] { + return pulumix.Output[[]*IdpOauth]{ + OutputState: i.ToIdpOauthArrayOutputWithContext(ctx).OutputState, + } +} + +// IdpOauthMapInput is an input type that accepts IdpOauthMap and IdpOauthMapOutput values. +// You can construct a concrete instance of `IdpOauthMapInput` via: +// +// IdpOauthMap{ "key": IdpOauthArgs{...} } +type IdpOauthMapInput interface { + pulumi.Input + + ToIdpOauthMapOutput() IdpOauthMapOutput + ToIdpOauthMapOutputWithContext(context.Context) IdpOauthMapOutput +} + +type IdpOauthMap map[string]IdpOauthInput + +func (IdpOauthMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*IdpOauth)(nil)).Elem() +} + +func (i IdpOauthMap) ToIdpOauthMapOutput() IdpOauthMapOutput { + return i.ToIdpOauthMapOutputWithContext(context.Background()) +} + +func (i IdpOauthMap) ToIdpOauthMapOutputWithContext(ctx context.Context) IdpOauthMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdpOauthMapOutput) +} + +func (i IdpOauthMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*IdpOauth] { + return pulumix.Output[map[string]*IdpOauth]{ + OutputState: i.ToIdpOauthMapOutputWithContext(ctx).OutputState, + } +} + +type IdpOauthOutput struct{ *pulumi.OutputState } + +func (IdpOauthOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdpOauth)(nil)).Elem() +} + +func (o IdpOauthOutput) ToIdpOauthOutput() IdpOauthOutput { + return o +} + +func (o IdpOauthOutput) ToIdpOauthOutputWithContext(ctx context.Context) IdpOauthOutput { + return o +} + +func (o IdpOauthOutput) ToOutput(ctx context.Context) pulumix.Output[*IdpOauth] { + return pulumix.Output[*IdpOauth]{ + OutputState: o.OutputState, + } +} + +// The authorization endpoint +func (o IdpOauthOutput) AuthorizationEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.AuthorizationEndpoint }).(pulumi.StringOutput) +} + +// client id generated by the identity provider +func (o IdpOauthOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.ClientId }).(pulumi.StringOutput) +} + +// client secret generated by the identity provider +func (o IdpOauthOutput) ClientSecret() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.ClientSecret }).(pulumi.StringOutput) +} + +// The id attribute +func (o IdpOauthOutput) IdAttribute() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.IdAttribute }).(pulumi.StringOutput) +} + +// enable if a new account in ZITADEL should be created automatically on login with an external account +func (o IdpOauthOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.BoolOutput { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enable if a the ZITADEL account fields should be updated automatically on each login +func (o IdpOauthOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.BoolOutput { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enable if users should be able to create a new account in ZITADEL when using an external account +func (o IdpOauthOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.BoolOutput { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enable if users should be able to link an existing ZITADEL user with an external account +func (o IdpOauthOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.BoolOutput { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// Name of the IDP +func (o IdpOauthOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// the scopes requested by ZITADEL during the request on the identity provider +func (o IdpOauthOutput) Scopes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringArrayOutput { return v.Scopes }).(pulumi.StringArrayOutput) +} + +// The token endpoint +func (o IdpOauthOutput) TokenEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.TokenEndpoint }).(pulumi.StringOutput) +} + +// The user endpoint +func (o IdpOauthOutput) UserEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *IdpOauth) pulumi.StringOutput { return v.UserEndpoint }).(pulumi.StringOutput) +} + +type IdpOauthArrayOutput struct{ *pulumi.OutputState } + +func (IdpOauthArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*IdpOauth)(nil)).Elem() +} + +func (o IdpOauthArrayOutput) ToIdpOauthArrayOutput() IdpOauthArrayOutput { + return o +} + +func (o IdpOauthArrayOutput) ToIdpOauthArrayOutputWithContext(ctx context.Context) IdpOauthArrayOutput { + return o +} + +func (o IdpOauthArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*IdpOauth] { + return pulumix.Output[[]*IdpOauth]{ + OutputState: o.OutputState, + } +} + +func (o IdpOauthArrayOutput) Index(i pulumi.IntInput) IdpOauthOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *IdpOauth { + return vs[0].([]*IdpOauth)[vs[1].(int)] + }).(IdpOauthOutput) +} + +type IdpOauthMapOutput struct{ *pulumi.OutputState } + +func (IdpOauthMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*IdpOauth)(nil)).Elem() +} + +func (o IdpOauthMapOutput) ToIdpOauthMapOutput() IdpOauthMapOutput { + return o +} + +func (o IdpOauthMapOutput) ToIdpOauthMapOutputWithContext(ctx context.Context) IdpOauthMapOutput { + return o +} + +func (o IdpOauthMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*IdpOauth] { + return pulumix.Output[map[string]*IdpOauth]{ + OutputState: o.OutputState, + } +} + +func (o IdpOauthMapOutput) MapIndex(k pulumi.StringInput) IdpOauthOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *IdpOauth { + return vs[0].(map[string]*IdpOauth)[vs[1].(string)] + }).(IdpOauthOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*IdpOauthInput)(nil)).Elem(), &IdpOauth{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdpOauthArrayInput)(nil)).Elem(), IdpOauthArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdpOauthMapInput)(nil)).Elem(), IdpOauthMap{}) + pulumi.RegisterOutputType(IdpOauthOutput{}) + pulumi.RegisterOutputType(IdpOauthArrayOutput{}) + pulumi.RegisterOutputType(IdpOauthMapOutput{}) +} diff --git a/sdk/go/zitadel/idpSaml.go b/sdk/go/zitadel/idpSaml.go new file mode 100644 index 0000000..d9c160f --- /dev/null +++ b/sdk/go/zitadel/idpSaml.go @@ -0,0 +1,459 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Resource representing a SAML IDP on the instance. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.NewIdpSaml(ctx, "default", &zitadel.IdpSamlArgs{ +// Name: pulumi.String("LDAP"), +// Binding: pulumi.String("SAML_BINDING_POST"), +// WithSignedRequest: pulumi.Bool(true), +// IsLinkingAllowed: pulumi.Bool(false), +// IsCreationAllowed: pulumi.Bool(true), +// IsAutoCreation: pulumi.Bool(false), +// IsAutoUpdate: pulumi.Bool(true), +// MetadataXml: pulumi.String(` +// +// +// +// +// +// +// +// MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV +// +// SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 +// MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK +// DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD +// ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 +// RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd +// 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V +// pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b +// 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ +// NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF +// AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW +// 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 +// khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX +// UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L +// r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M +// m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== +// +// +// +// +// urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress +// +// +// +// +// +// `), +// +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ## Loading the XML Metadata +// +// If you don't want to pass the XML metadata inline, you have plenty of options. For example: +// - localFile Data Source +// - http Data Source +// - terracurlRequest Data Source +// - ... +// +// ## Import +// +// bash The resource can be imported using the ID format ``, e.g. +// +// ```sh +// +// $ pulumi import zitadel:index/idpSaml:IdpSaml imported '123456789012345678' +// +// ``` +type IdpSaml struct { + pulumi.CustomResourceState + + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding pulumi.StringPtrOutput `pulumi:"binding"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolOutput `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolOutput `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolOutput `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolOutput `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml pulumi.StringOutput `pulumi:"metadataXml"` + // Name of the IDP + Name pulumi.StringOutput `pulumi:"name"` + // Whether the SAML IDP requires signed requests + WithSignedRequest pulumi.BoolPtrOutput `pulumi:"withSignedRequest"` +} + +// NewIdpSaml registers a new resource with the given unique name, arguments, and options. +func NewIdpSaml(ctx *pulumi.Context, + name string, args *IdpSamlArgs, opts ...pulumi.ResourceOption) (*IdpSaml, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.IsAutoCreation == nil { + return nil, errors.New("invalid value for required argument 'IsAutoCreation'") + } + if args.IsAutoUpdate == nil { + return nil, errors.New("invalid value for required argument 'IsAutoUpdate'") + } + if args.IsCreationAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsCreationAllowed'") + } + if args.IsLinkingAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsLinkingAllowed'") + } + if args.MetadataXml == nil { + return nil, errors.New("invalid value for required argument 'MetadataXml'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource IdpSaml + err := ctx.RegisterResource("zitadel:index/idpSaml:IdpSaml", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetIdpSaml gets an existing IdpSaml resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetIdpSaml(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *IdpSamlState, opts ...pulumi.ResourceOption) (*IdpSaml, error) { + var resource IdpSaml + err := ctx.ReadResource("zitadel:index/idpSaml:IdpSaml", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering IdpSaml resources. +type idpSamlState struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding *string `pulumi:"binding"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation *bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate *bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed *bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed *bool `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml *string `pulumi:"metadataXml"` + // Name of the IDP + Name *string `pulumi:"name"` + // Whether the SAML IDP requires signed requests + WithSignedRequest *bool `pulumi:"withSignedRequest"` +} + +type IdpSamlState struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding pulumi.StringPtrInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolPtrInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolPtrInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolPtrInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolPtrInput + // The metadata XML as plain string + MetadataXml pulumi.StringPtrInput + // Name of the IDP + Name pulumi.StringPtrInput + // Whether the SAML IDP requires signed requests + WithSignedRequest pulumi.BoolPtrInput +} + +func (IdpSamlState) ElementType() reflect.Type { + return reflect.TypeOf((*idpSamlState)(nil)).Elem() +} + +type idpSamlArgs struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding *string `pulumi:"binding"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml string `pulumi:"metadataXml"` + // Name of the IDP + Name *string `pulumi:"name"` + // Whether the SAML IDP requires signed requests + WithSignedRequest *bool `pulumi:"withSignedRequest"` +} + +// The set of arguments for constructing a IdpSaml resource. +type IdpSamlArgs struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding pulumi.StringPtrInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolInput + // The metadata XML as plain string + MetadataXml pulumi.StringInput + // Name of the IDP + Name pulumi.StringPtrInput + // Whether the SAML IDP requires signed requests + WithSignedRequest pulumi.BoolPtrInput +} + +func (IdpSamlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*idpSamlArgs)(nil)).Elem() +} + +type IdpSamlInput interface { + pulumi.Input + + ToIdpSamlOutput() IdpSamlOutput + ToIdpSamlOutputWithContext(ctx context.Context) IdpSamlOutput +} + +func (*IdpSaml) ElementType() reflect.Type { + return reflect.TypeOf((**IdpSaml)(nil)).Elem() +} + +func (i *IdpSaml) ToIdpSamlOutput() IdpSamlOutput { + return i.ToIdpSamlOutputWithContext(context.Background()) +} + +func (i *IdpSaml) ToIdpSamlOutputWithContext(ctx context.Context) IdpSamlOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdpSamlOutput) +} + +func (i *IdpSaml) ToOutput(ctx context.Context) pulumix.Output[*IdpSaml] { + return pulumix.Output[*IdpSaml]{ + OutputState: i.ToIdpSamlOutputWithContext(ctx).OutputState, + } +} + +// IdpSamlArrayInput is an input type that accepts IdpSamlArray and IdpSamlArrayOutput values. +// You can construct a concrete instance of `IdpSamlArrayInput` via: +// +// IdpSamlArray{ IdpSamlArgs{...} } +type IdpSamlArrayInput interface { + pulumi.Input + + ToIdpSamlArrayOutput() IdpSamlArrayOutput + ToIdpSamlArrayOutputWithContext(context.Context) IdpSamlArrayOutput +} + +type IdpSamlArray []IdpSamlInput + +func (IdpSamlArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*IdpSaml)(nil)).Elem() +} + +func (i IdpSamlArray) ToIdpSamlArrayOutput() IdpSamlArrayOutput { + return i.ToIdpSamlArrayOutputWithContext(context.Background()) +} + +func (i IdpSamlArray) ToIdpSamlArrayOutputWithContext(ctx context.Context) IdpSamlArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdpSamlArrayOutput) +} + +func (i IdpSamlArray) ToOutput(ctx context.Context) pulumix.Output[[]*IdpSaml] { + return pulumix.Output[[]*IdpSaml]{ + OutputState: i.ToIdpSamlArrayOutputWithContext(ctx).OutputState, + } +} + +// IdpSamlMapInput is an input type that accepts IdpSamlMap and IdpSamlMapOutput values. +// You can construct a concrete instance of `IdpSamlMapInput` via: +// +// IdpSamlMap{ "key": IdpSamlArgs{...} } +type IdpSamlMapInput interface { + pulumi.Input + + ToIdpSamlMapOutput() IdpSamlMapOutput + ToIdpSamlMapOutputWithContext(context.Context) IdpSamlMapOutput +} + +type IdpSamlMap map[string]IdpSamlInput + +func (IdpSamlMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*IdpSaml)(nil)).Elem() +} + +func (i IdpSamlMap) ToIdpSamlMapOutput() IdpSamlMapOutput { + return i.ToIdpSamlMapOutputWithContext(context.Background()) +} + +func (i IdpSamlMap) ToIdpSamlMapOutputWithContext(ctx context.Context) IdpSamlMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdpSamlMapOutput) +} + +func (i IdpSamlMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*IdpSaml] { + return pulumix.Output[map[string]*IdpSaml]{ + OutputState: i.ToIdpSamlMapOutputWithContext(ctx).OutputState, + } +} + +type IdpSamlOutput struct{ *pulumi.OutputState } + +func (IdpSamlOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdpSaml)(nil)).Elem() +} + +func (o IdpSamlOutput) ToIdpSamlOutput() IdpSamlOutput { + return o +} + +func (o IdpSamlOutput) ToIdpSamlOutputWithContext(ctx context.Context) IdpSamlOutput { + return o +} + +func (o IdpSamlOutput) ToOutput(ctx context.Context) pulumix.Output[*IdpSaml] { + return pulumix.Output[*IdpSaml]{ + OutputState: o.OutputState, + } +} + +// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT +func (o IdpSamlOutput) Binding() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.StringPtrOutput { return v.Binding }).(pulumi.StringPtrOutput) +} + +// enable if a new account in ZITADEL should be created automatically on login with an external account +func (o IdpSamlOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.BoolOutput { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enable if a the ZITADEL account fields should be updated automatically on each login +func (o IdpSamlOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.BoolOutput { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enable if users should be able to create a new account in ZITADEL when using an external account +func (o IdpSamlOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.BoolOutput { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enable if users should be able to link an existing ZITADEL user with an external account +func (o IdpSamlOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.BoolOutput { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// The metadata XML as plain string +func (o IdpSamlOutput) MetadataXml() pulumi.StringOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.StringOutput { return v.MetadataXml }).(pulumi.StringOutput) +} + +// Name of the IDP +func (o IdpSamlOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Whether the SAML IDP requires signed requests +func (o IdpSamlOutput) WithSignedRequest() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *IdpSaml) pulumi.BoolPtrOutput { return v.WithSignedRequest }).(pulumi.BoolPtrOutput) +} + +type IdpSamlArrayOutput struct{ *pulumi.OutputState } + +func (IdpSamlArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*IdpSaml)(nil)).Elem() +} + +func (o IdpSamlArrayOutput) ToIdpSamlArrayOutput() IdpSamlArrayOutput { + return o +} + +func (o IdpSamlArrayOutput) ToIdpSamlArrayOutputWithContext(ctx context.Context) IdpSamlArrayOutput { + return o +} + +func (o IdpSamlArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*IdpSaml] { + return pulumix.Output[[]*IdpSaml]{ + OutputState: o.OutputState, + } +} + +func (o IdpSamlArrayOutput) Index(i pulumi.IntInput) IdpSamlOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *IdpSaml { + return vs[0].([]*IdpSaml)[vs[1].(int)] + }).(IdpSamlOutput) +} + +type IdpSamlMapOutput struct{ *pulumi.OutputState } + +func (IdpSamlMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*IdpSaml)(nil)).Elem() +} + +func (o IdpSamlMapOutput) ToIdpSamlMapOutput() IdpSamlMapOutput { + return o +} + +func (o IdpSamlMapOutput) ToIdpSamlMapOutputWithContext(ctx context.Context) IdpSamlMapOutput { + return o +} + +func (o IdpSamlMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*IdpSaml] { + return pulumix.Output[map[string]*IdpSaml]{ + OutputState: o.OutputState, + } +} + +func (o IdpSamlMapOutput) MapIndex(k pulumi.StringInput) IdpSamlOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *IdpSaml { + return vs[0].(map[string]*IdpSaml)[vs[1].(string)] + }).(IdpSamlOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*IdpSamlInput)(nil)).Elem(), &IdpSaml{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdpSamlArrayInput)(nil)).Elem(), IdpSamlArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdpSamlMapInput)(nil)).Elem(), IdpSamlMap{}) + pulumi.RegisterOutputType(IdpSamlOutput{}) + pulumi.RegisterOutputType(IdpSamlArrayOutput{}) + pulumi.RegisterOutputType(IdpSamlMapOutput{}) +} diff --git a/sdk/go/zitadel/init.go b/sdk/go/zitadel/init.go index e419344..67ce39a 100644 --- a/sdk/go/zitadel/init.go +++ b/sdk/go/zitadel/init.go @@ -67,6 +67,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &IdpGoogle{} case "zitadel:index/idpLdap:IdpLdap": r = &IdpLdap{} + case "zitadel:index/idpOauth:IdpOauth": + r = &IdpOauth{} + case "zitadel:index/idpSaml:IdpSaml": + r = &IdpSaml{} case "zitadel:index/instanceMember:InstanceMember": r = &InstanceMember{} case "zitadel:index/labelPolicy:LabelPolicy": @@ -99,10 +103,16 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &OrgIdpJwt{} case "zitadel:index/orgIdpLdap:OrgIdpLdap": r = &OrgIdpLdap{} + case "zitadel:index/orgIdpOauth:OrgIdpOauth": + r = &OrgIdpOauth{} case "zitadel:index/orgIdpOidc:OrgIdpOidc": r = &OrgIdpOidc{} + case "zitadel:index/orgIdpSaml:OrgIdpSaml": + r = &OrgIdpSaml{} case "zitadel:index/orgMember:OrgMember": r = &OrgMember{} + case "zitadel:index/orgMetadata:OrgMetadata": + r = &OrgMetadata{} case "zitadel:index/passwordComplexityPolicy:PasswordComplexityPolicy": r = &PasswordComplexityPolicy{} case "zitadel:index/personalAccessToken:PersonalAccessToken": @@ -127,6 +137,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &TriggerActions{} case "zitadel:index/userGrant:UserGrant": r = &UserGrant{} + case "zitadel:index/userMetadata:UserMetadata": + r = &UserMetadata{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -273,6 +285,16 @@ func init() { "index/idpLdap", &module{version}, ) + pulumi.RegisterResourceModule( + "zitadel", + "index/idpOauth", + &module{version}, + ) + pulumi.RegisterResourceModule( + "zitadel", + "index/idpSaml", + &module{version}, + ) pulumi.RegisterResourceModule( "zitadel", "index/instanceMember", @@ -353,16 +375,31 @@ func init() { "index/orgIdpLdap", &module{version}, ) + pulumi.RegisterResourceModule( + "zitadel", + "index/orgIdpOauth", + &module{version}, + ) pulumi.RegisterResourceModule( "zitadel", "index/orgIdpOidc", &module{version}, ) + pulumi.RegisterResourceModule( + "zitadel", + "index/orgIdpSaml", + &module{version}, + ) pulumi.RegisterResourceModule( "zitadel", "index/orgMember", &module{version}, ) + pulumi.RegisterResourceModule( + "zitadel", + "index/orgMetadata", + &module{version}, + ) pulumi.RegisterResourceModule( "zitadel", "index/passwordComplexityPolicy", @@ -423,6 +460,11 @@ func init() { "index/userGrant", &module{version}, ) + pulumi.RegisterResourceModule( + "zitadel", + "index/userMetadata", + &module{version}, + ) pulumi.RegisterResourcePackage( "zitadel", &pkg{version}, diff --git a/sdk/go/zitadel/instanceMember.go b/sdk/go/zitadel/instanceMember.go index 036a7ad..bcfd255 100644 --- a/sdk/go/zitadel/instanceMember.go +++ b/sdk/go/zitadel/instanceMember.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/labelPolicy.go b/sdk/go/zitadel/labelPolicy.go index 6917727..8d1e006 100644 --- a/sdk/go/zitadel/labelPolicy.go +++ b/sdk/go/zitadel/labelPolicy.go @@ -17,7 +17,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. +// bash The resource can be imported using the ID format `<[org_id]>`, e.g. // // ```sh // @@ -62,6 +62,8 @@ type LabelPolicy struct { PrimaryColorDark pulumi.StringOutput `pulumi:"primaryColorDark"` // set the label policy active after creating/updating SetActive pulumi.BoolPtrOutput `pulumi:"setActive"` + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode pulumi.StringPtrOutput `pulumi:"themeMode"` // hex value for warn color WarnColor pulumi.StringOutput `pulumi:"warnColor"` // hex value for warn color dark theme @@ -163,6 +165,8 @@ type labelPolicyState struct { PrimaryColorDark *string `pulumi:"primaryColorDark"` // set the label policy active after creating/updating SetActive *bool `pulumi:"setActive"` + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode *string `pulumi:"themeMode"` // hex value for warn color WarnColor *string `pulumi:"warnColor"` // hex value for warn color dark theme @@ -205,6 +209,8 @@ type LabelPolicyState struct { PrimaryColorDark pulumi.StringPtrInput // set the label policy active after creating/updating SetActive pulumi.BoolPtrInput + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode pulumi.StringPtrInput // hex value for warn color WarnColor pulumi.StringPtrInput // hex value for warn color dark theme @@ -246,6 +252,8 @@ type labelPolicyArgs struct { PrimaryColorDark string `pulumi:"primaryColorDark"` // set the label policy active after creating/updating SetActive *bool `pulumi:"setActive"` + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode *string `pulumi:"themeMode"` // hex value for warn color WarnColor string `pulumi:"warnColor"` // hex value for warn color dark theme @@ -284,6 +292,8 @@ type LabelPolicyArgs struct { PrimaryColorDark pulumi.StringInput // set the label policy active after creating/updating SetActive pulumi.BoolPtrInput + // theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + ThemeMode pulumi.StringPtrInput // hex value for warn color WarnColor pulumi.StringInput // hex value for warn color dark theme @@ -511,6 +521,11 @@ func (o LabelPolicyOutput) SetActive() pulumi.BoolPtrOutput { return o.ApplyT(func(v *LabelPolicy) pulumi.BoolPtrOutput { return v.SetActive }).(pulumi.BoolPtrOutput) } +// theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT +func (o LabelPolicyOutput) ThemeMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LabelPolicy) pulumi.StringPtrOutput { return v.ThemeMode }).(pulumi.StringPtrOutput) +} + // hex value for warn color func (o LabelPolicyOutput) WarnColor() pulumi.StringOutput { return o.ApplyT(func(v *LabelPolicy) pulumi.StringOutput { return v.WarnColor }).(pulumi.StringOutput) diff --git a/sdk/go/zitadel/lockoutPolicy.go b/sdk/go/zitadel/lockoutPolicy.go index e79e57d..c46bb3e 100644 --- a/sdk/go/zitadel/lockoutPolicy.go +++ b/sdk/go/zitadel/lockoutPolicy.go @@ -44,7 +44,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. +// bash The resource can be imported using the ID format `<[org_id]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/loginPolicy.go b/sdk/go/zitadel/loginPolicy.go index ef46845..714118f 100644 --- a/sdk/go/zitadel/loginPolicy.go +++ b/sdk/go/zitadel/loginPolicy.go @@ -71,7 +71,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. +// bash The resource can be imported using the ID format `<[org_id]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/machineKey.go b/sdk/go/zitadel/machineKey.go index dc71625..66dec42 100644 --- a/sdk/go/zitadel/machineKey.go +++ b/sdk/go/zitadel/machineKey.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/machineUser.go b/sdk/go/zitadel/machineUser.go index 7552058..50d682d 100644 --- a/sdk/go/zitadel/machineUser.go +++ b/sdk/go/zitadel/machineUser.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/notificationPolicy.go b/sdk/go/zitadel/notificationPolicy.go index 229203e..ddbc238 100644 --- a/sdk/go/zitadel/notificationPolicy.go +++ b/sdk/go/zitadel/notificationPolicy.go @@ -44,7 +44,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. +// bash The resource can be imported using the ID format `<[org_id]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/org.go b/sdk/go/zitadel/org.go index 21c3fa7..877e0f7 100644 --- a/sdk/go/zitadel/org.go +++ b/sdk/go/zitadel/org.go @@ -42,7 +42,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpAzureAd.go b/sdk/go/zitadel/orgIdpAzureAd.go index 28d9a04..838e8b7 100644 --- a/sdk/go/zitadel/orgIdpAzureAd.go +++ b/sdk/go/zitadel/orgIdpAzureAd.go @@ -58,7 +58,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpGithub.go b/sdk/go/zitadel/orgIdpGithub.go index a793e2c..abf3e27 100644 --- a/sdk/go/zitadel/orgIdpGithub.go +++ b/sdk/go/zitadel/orgIdpGithub.go @@ -55,7 +55,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpGithubEs.go b/sdk/go/zitadel/orgIdpGithubEs.go index 0bb37a6..a0f4aae 100644 --- a/sdk/go/zitadel/orgIdpGithubEs.go +++ b/sdk/go/zitadel/orgIdpGithubEs.go @@ -58,7 +58,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpGitlab.go b/sdk/go/zitadel/orgIdpGitlab.go index e80c681..10fb6e0 100644 --- a/sdk/go/zitadel/orgIdpGitlab.go +++ b/sdk/go/zitadel/orgIdpGitlab.go @@ -55,7 +55,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpGitlabSelfHosted.go b/sdk/go/zitadel/orgIdpGitlabSelfHosted.go index 35ec27e..a995fd9 100644 --- a/sdk/go/zitadel/orgIdpGitlabSelfHosted.go +++ b/sdk/go/zitadel/orgIdpGitlabSelfHosted.go @@ -56,7 +56,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpGoogle.go b/sdk/go/zitadel/orgIdpGoogle.go index 967f67e..2f7f092 100644 --- a/sdk/go/zitadel/orgIdpGoogle.go +++ b/sdk/go/zitadel/orgIdpGoogle.go @@ -55,7 +55,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpJwt.go b/sdk/go/zitadel/orgIdpJwt.go index 92bdab6..9ea38bc 100644 --- a/sdk/go/zitadel/orgIdpJwt.go +++ b/sdk/go/zitadel/orgIdpJwt.go @@ -50,7 +50,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpLdap.go b/sdk/go/zitadel/orgIdpLdap.go index e0158c1..d47c864 100644 --- a/sdk/go/zitadel/orgIdpLdap.go +++ b/sdk/go/zitadel/orgIdpLdap.go @@ -68,7 +68,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpOauth.go b/sdk/go/zitadel/orgIdpOauth.go new file mode 100644 index 0000000..a2b7e27 --- /dev/null +++ b/sdk/go/zitadel/orgIdpOauth.go @@ -0,0 +1,522 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Resource representing a generic OAuth2 IDP on the organization. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.NewOrgIdpOauth(ctx, "default", &zitadel.OrgIdpOauthArgs{ +// OrgId: pulumi.Any(defaultZitadelOrg.Id), +// Name: pulumi.String("GitLab"), +// ClientId: pulumi.String("15765e..."), +// ClientSecret: pulumi.String("*****abcxyz"), +// AuthorizationEndpoint: pulumi.String("https://accounts.google.com/o/oauth2/v2/auth"), +// TokenEndpoint: pulumi.String("https://oauth2.googleapis.com/token"), +// UserEndpoint: pulumi.String("https://openidconnect.googleapis.com/v1/userinfo"), +// IdAttribute: pulumi.String("user_id"), +// Scopes: pulumi.StringArray{ +// pulumi.String("openid"), +// pulumi.String("profile"), +// pulumi.String("email"), +// }, +// IsLinkingAllowed: pulumi.Bool(false), +// IsCreationAllowed: pulumi.Bool(true), +// IsAutoCreation: pulumi.Bool(false), +// IsAutoUpdate: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// bash The resource can be imported using the ID format ``, e.g. +// +// ```sh +// +// $ pulumi import zitadel:index/orgIdpOauth:OrgIdpOauth imported '123456789012345678:123456789012345678:1234567890abcdef' +// +// ``` +type OrgIdpOauth struct { + pulumi.CustomResourceState + + // The authorization endpoint + AuthorizationEndpoint pulumi.StringOutput `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId pulumi.StringOutput `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret pulumi.StringOutput `pulumi:"clientSecret"` + // The id attribute + IdAttribute pulumi.StringOutput `pulumi:"idAttribute"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolOutput `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolOutput `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolOutput `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolOutput `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name pulumi.StringOutput `pulumi:"name"` + // ID of the organization + OrgId pulumi.StringPtrOutput `pulumi:"orgId"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes pulumi.StringArrayOutput `pulumi:"scopes"` + // The token endpoint + TokenEndpoint pulumi.StringOutput `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint pulumi.StringOutput `pulumi:"userEndpoint"` +} + +// NewOrgIdpOauth registers a new resource with the given unique name, arguments, and options. +func NewOrgIdpOauth(ctx *pulumi.Context, + name string, args *OrgIdpOauthArgs, opts ...pulumi.ResourceOption) (*OrgIdpOauth, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AuthorizationEndpoint == nil { + return nil, errors.New("invalid value for required argument 'AuthorizationEndpoint'") + } + if args.ClientId == nil { + return nil, errors.New("invalid value for required argument 'ClientId'") + } + if args.ClientSecret == nil { + return nil, errors.New("invalid value for required argument 'ClientSecret'") + } + if args.IdAttribute == nil { + return nil, errors.New("invalid value for required argument 'IdAttribute'") + } + if args.IsAutoCreation == nil { + return nil, errors.New("invalid value for required argument 'IsAutoCreation'") + } + if args.IsAutoUpdate == nil { + return nil, errors.New("invalid value for required argument 'IsAutoUpdate'") + } + if args.IsCreationAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsCreationAllowed'") + } + if args.IsLinkingAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsLinkingAllowed'") + } + if args.TokenEndpoint == nil { + return nil, errors.New("invalid value for required argument 'TokenEndpoint'") + } + if args.UserEndpoint == nil { + return nil, errors.New("invalid value for required argument 'UserEndpoint'") + } + if args.ClientSecret != nil { + args.ClientSecret = pulumi.ToSecret(args.ClientSecret).(pulumi.StringInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "clientSecret", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource OrgIdpOauth + err := ctx.RegisterResource("zitadel:index/orgIdpOauth:OrgIdpOauth", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetOrgIdpOauth gets an existing OrgIdpOauth resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetOrgIdpOauth(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *OrgIdpOauthState, opts ...pulumi.ResourceOption) (*OrgIdpOauth, error) { + var resource OrgIdpOauth + err := ctx.ReadResource("zitadel:index/orgIdpOauth:OrgIdpOauth", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering OrgIdpOauth resources. +type orgIdpOauthState struct { + // The authorization endpoint + AuthorizationEndpoint *string `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId *string `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret *string `pulumi:"clientSecret"` + // The id attribute + IdAttribute *string `pulumi:"idAttribute"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation *bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate *bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed *bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed *bool `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name *string `pulumi:"name"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes []string `pulumi:"scopes"` + // The token endpoint + TokenEndpoint *string `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint *string `pulumi:"userEndpoint"` +} + +type OrgIdpOauthState struct { + // The authorization endpoint + AuthorizationEndpoint pulumi.StringPtrInput + // client id generated by the identity provider + ClientId pulumi.StringPtrInput + // client secret generated by the identity provider + ClientSecret pulumi.StringPtrInput + // The id attribute + IdAttribute pulumi.StringPtrInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolPtrInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolPtrInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolPtrInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolPtrInput + // Name of the IDP + Name pulumi.StringPtrInput + // ID of the organization + OrgId pulumi.StringPtrInput + // the scopes requested by ZITADEL during the request on the identity provider + Scopes pulumi.StringArrayInput + // The token endpoint + TokenEndpoint pulumi.StringPtrInput + // The user endpoint + UserEndpoint pulumi.StringPtrInput +} + +func (OrgIdpOauthState) ElementType() reflect.Type { + return reflect.TypeOf((*orgIdpOauthState)(nil)).Elem() +} + +type orgIdpOauthArgs struct { + // The authorization endpoint + AuthorizationEndpoint string `pulumi:"authorizationEndpoint"` + // client id generated by the identity provider + ClientId string `pulumi:"clientId"` + // client secret generated by the identity provider + ClientSecret string `pulumi:"clientSecret"` + // The id attribute + IdAttribute string `pulumi:"idAttribute"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // Name of the IDP + Name *string `pulumi:"name"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // the scopes requested by ZITADEL during the request on the identity provider + Scopes []string `pulumi:"scopes"` + // The token endpoint + TokenEndpoint string `pulumi:"tokenEndpoint"` + // The user endpoint + UserEndpoint string `pulumi:"userEndpoint"` +} + +// The set of arguments for constructing a OrgIdpOauth resource. +type OrgIdpOauthArgs struct { + // The authorization endpoint + AuthorizationEndpoint pulumi.StringInput + // client id generated by the identity provider + ClientId pulumi.StringInput + // client secret generated by the identity provider + ClientSecret pulumi.StringInput + // The id attribute + IdAttribute pulumi.StringInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolInput + // Name of the IDP + Name pulumi.StringPtrInput + // ID of the organization + OrgId pulumi.StringPtrInput + // the scopes requested by ZITADEL during the request on the identity provider + Scopes pulumi.StringArrayInput + // The token endpoint + TokenEndpoint pulumi.StringInput + // The user endpoint + UserEndpoint pulumi.StringInput +} + +func (OrgIdpOauthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*orgIdpOauthArgs)(nil)).Elem() +} + +type OrgIdpOauthInput interface { + pulumi.Input + + ToOrgIdpOauthOutput() OrgIdpOauthOutput + ToOrgIdpOauthOutputWithContext(ctx context.Context) OrgIdpOauthOutput +} + +func (*OrgIdpOauth) ElementType() reflect.Type { + return reflect.TypeOf((**OrgIdpOauth)(nil)).Elem() +} + +func (i *OrgIdpOauth) ToOrgIdpOauthOutput() OrgIdpOauthOutput { + return i.ToOrgIdpOauthOutputWithContext(context.Background()) +} + +func (i *OrgIdpOauth) ToOrgIdpOauthOutputWithContext(ctx context.Context) OrgIdpOauthOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgIdpOauthOutput) +} + +func (i *OrgIdpOauth) ToOutput(ctx context.Context) pulumix.Output[*OrgIdpOauth] { + return pulumix.Output[*OrgIdpOauth]{ + OutputState: i.ToOrgIdpOauthOutputWithContext(ctx).OutputState, + } +} + +// OrgIdpOauthArrayInput is an input type that accepts OrgIdpOauthArray and OrgIdpOauthArrayOutput values. +// You can construct a concrete instance of `OrgIdpOauthArrayInput` via: +// +// OrgIdpOauthArray{ OrgIdpOauthArgs{...} } +type OrgIdpOauthArrayInput interface { + pulumi.Input + + ToOrgIdpOauthArrayOutput() OrgIdpOauthArrayOutput + ToOrgIdpOauthArrayOutputWithContext(context.Context) OrgIdpOauthArrayOutput +} + +type OrgIdpOauthArray []OrgIdpOauthInput + +func (OrgIdpOauthArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrgIdpOauth)(nil)).Elem() +} + +func (i OrgIdpOauthArray) ToOrgIdpOauthArrayOutput() OrgIdpOauthArrayOutput { + return i.ToOrgIdpOauthArrayOutputWithContext(context.Background()) +} + +func (i OrgIdpOauthArray) ToOrgIdpOauthArrayOutputWithContext(ctx context.Context) OrgIdpOauthArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgIdpOauthArrayOutput) +} + +func (i OrgIdpOauthArray) ToOutput(ctx context.Context) pulumix.Output[[]*OrgIdpOauth] { + return pulumix.Output[[]*OrgIdpOauth]{ + OutputState: i.ToOrgIdpOauthArrayOutputWithContext(ctx).OutputState, + } +} + +// OrgIdpOauthMapInput is an input type that accepts OrgIdpOauthMap and OrgIdpOauthMapOutput values. +// You can construct a concrete instance of `OrgIdpOauthMapInput` via: +// +// OrgIdpOauthMap{ "key": OrgIdpOauthArgs{...} } +type OrgIdpOauthMapInput interface { + pulumi.Input + + ToOrgIdpOauthMapOutput() OrgIdpOauthMapOutput + ToOrgIdpOauthMapOutputWithContext(context.Context) OrgIdpOauthMapOutput +} + +type OrgIdpOauthMap map[string]OrgIdpOauthInput + +func (OrgIdpOauthMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrgIdpOauth)(nil)).Elem() +} + +func (i OrgIdpOauthMap) ToOrgIdpOauthMapOutput() OrgIdpOauthMapOutput { + return i.ToOrgIdpOauthMapOutputWithContext(context.Background()) +} + +func (i OrgIdpOauthMap) ToOrgIdpOauthMapOutputWithContext(ctx context.Context) OrgIdpOauthMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgIdpOauthMapOutput) +} + +func (i OrgIdpOauthMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*OrgIdpOauth] { + return pulumix.Output[map[string]*OrgIdpOauth]{ + OutputState: i.ToOrgIdpOauthMapOutputWithContext(ctx).OutputState, + } +} + +type OrgIdpOauthOutput struct{ *pulumi.OutputState } + +func (OrgIdpOauthOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrgIdpOauth)(nil)).Elem() +} + +func (o OrgIdpOauthOutput) ToOrgIdpOauthOutput() OrgIdpOauthOutput { + return o +} + +func (o OrgIdpOauthOutput) ToOrgIdpOauthOutputWithContext(ctx context.Context) OrgIdpOauthOutput { + return o +} + +func (o OrgIdpOauthOutput) ToOutput(ctx context.Context) pulumix.Output[*OrgIdpOauth] { + return pulumix.Output[*OrgIdpOauth]{ + OutputState: o.OutputState, + } +} + +// The authorization endpoint +func (o OrgIdpOauthOutput) AuthorizationEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.AuthorizationEndpoint }).(pulumi.StringOutput) +} + +// client id generated by the identity provider +func (o OrgIdpOauthOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.ClientId }).(pulumi.StringOutput) +} + +// client secret generated by the identity provider +func (o OrgIdpOauthOutput) ClientSecret() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.ClientSecret }).(pulumi.StringOutput) +} + +// The id attribute +func (o OrgIdpOauthOutput) IdAttribute() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.IdAttribute }).(pulumi.StringOutput) +} + +// enable if a new account in ZITADEL should be created automatically on login with an external account +func (o OrgIdpOauthOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.BoolOutput { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enable if a the ZITADEL account fields should be updated automatically on each login +func (o OrgIdpOauthOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.BoolOutput { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enable if users should be able to create a new account in ZITADEL when using an external account +func (o OrgIdpOauthOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.BoolOutput { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enable if users should be able to link an existing ZITADEL user with an external account +func (o OrgIdpOauthOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.BoolOutput { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// Name of the IDP +func (o OrgIdpOauthOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// ID of the organization +func (o OrgIdpOauthOutput) OrgId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringPtrOutput { return v.OrgId }).(pulumi.StringPtrOutput) +} + +// the scopes requested by ZITADEL during the request on the identity provider +func (o OrgIdpOauthOutput) Scopes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringArrayOutput { return v.Scopes }).(pulumi.StringArrayOutput) +} + +// The token endpoint +func (o OrgIdpOauthOutput) TokenEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.TokenEndpoint }).(pulumi.StringOutput) +} + +// The user endpoint +func (o OrgIdpOauthOutput) UserEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpOauth) pulumi.StringOutput { return v.UserEndpoint }).(pulumi.StringOutput) +} + +type OrgIdpOauthArrayOutput struct{ *pulumi.OutputState } + +func (OrgIdpOauthArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrgIdpOauth)(nil)).Elem() +} + +func (o OrgIdpOauthArrayOutput) ToOrgIdpOauthArrayOutput() OrgIdpOauthArrayOutput { + return o +} + +func (o OrgIdpOauthArrayOutput) ToOrgIdpOauthArrayOutputWithContext(ctx context.Context) OrgIdpOauthArrayOutput { + return o +} + +func (o OrgIdpOauthArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*OrgIdpOauth] { + return pulumix.Output[[]*OrgIdpOauth]{ + OutputState: o.OutputState, + } +} + +func (o OrgIdpOauthArrayOutput) Index(i pulumi.IntInput) OrgIdpOauthOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrgIdpOauth { + return vs[0].([]*OrgIdpOauth)[vs[1].(int)] + }).(OrgIdpOauthOutput) +} + +type OrgIdpOauthMapOutput struct{ *pulumi.OutputState } + +func (OrgIdpOauthMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrgIdpOauth)(nil)).Elem() +} + +func (o OrgIdpOauthMapOutput) ToOrgIdpOauthMapOutput() OrgIdpOauthMapOutput { + return o +} + +func (o OrgIdpOauthMapOutput) ToOrgIdpOauthMapOutputWithContext(ctx context.Context) OrgIdpOauthMapOutput { + return o +} + +func (o OrgIdpOauthMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*OrgIdpOauth] { + return pulumix.Output[map[string]*OrgIdpOauth]{ + OutputState: o.OutputState, + } +} + +func (o OrgIdpOauthMapOutput) MapIndex(k pulumi.StringInput) OrgIdpOauthOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrgIdpOauth { + return vs[0].(map[string]*OrgIdpOauth)[vs[1].(string)] + }).(OrgIdpOauthOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*OrgIdpOauthInput)(nil)).Elem(), &OrgIdpOauth{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrgIdpOauthArrayInput)(nil)).Elem(), OrgIdpOauthArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrgIdpOauthMapInput)(nil)).Elem(), OrgIdpOauthMap{}) + pulumi.RegisterOutputType(OrgIdpOauthOutput{}) + pulumi.RegisterOutputType(OrgIdpOauthArrayOutput{}) + pulumi.RegisterOutputType(OrgIdpOauthMapOutput{}) +} diff --git a/sdk/go/zitadel/orgIdpOidc.go b/sdk/go/zitadel/orgIdpOidc.go index 1589dc5..8b98e84 100644 --- a/sdk/go/zitadel/orgIdpOidc.go +++ b/sdk/go/zitadel/orgIdpOidc.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgIdpSaml.go b/sdk/go/zitadel/orgIdpSaml.go new file mode 100644 index 0000000..f705a51 --- /dev/null +++ b/sdk/go/zitadel/orgIdpSaml.go @@ -0,0 +1,475 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// Resource representing a SAML IdP on the organization. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.NewOrgIdpSaml(ctx, "default", &zitadel.OrgIdpSamlArgs{ +// OrgId: pulumi.Any(defaultZitadelOrg.Id), +// Name: pulumi.String("LDAP"), +// Binding: pulumi.String("SAML_BINDING_POST"), +// WithSignedRequest: pulumi.Bool(true), +// IsLinkingAllowed: pulumi.Bool(false), +// IsCreationAllowed: pulumi.Bool(true), +// IsAutoCreation: pulumi.Bool(false), +// IsAutoUpdate: pulumi.Bool(true), +// MetadataXml: pulumi.String(` +// +// +// +// +// +// +// +// MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV +// +// SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 +// MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK +// DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD +// ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 +// RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd +// 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V +// pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b +// 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ +// NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF +// AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW +// 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 +// khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX +// UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L +// r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M +// m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== +// +// +// +// +// urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress +// +// +// +// +// +// `), +// +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ## Loading the XML Metadata +// +// If you don't want to pass the XML metadata inline, you have plenty of options. For example: +// - localFile Data Source +// - http Data Source +// - terracurlRequest Data Source +// - ... +// +// ## Import +// +// bash The resource can be imported using the ID format ``, e.g. +// +// ```sh +// +// $ pulumi import zitadel:index/orgIdpSaml:OrgIdpSaml imported '123456789012345678:123456789012345678' +// +// ``` +type OrgIdpSaml struct { + pulumi.CustomResourceState + + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding pulumi.StringPtrOutput `pulumi:"binding"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolOutput `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolOutput `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolOutput `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolOutput `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml pulumi.StringOutput `pulumi:"metadataXml"` + // Name of the IDP + Name pulumi.StringOutput `pulumi:"name"` + // ID of the organization + OrgId pulumi.StringPtrOutput `pulumi:"orgId"` + // Whether the SAML IDP requires signed requests + WithSignedRequest pulumi.BoolPtrOutput `pulumi:"withSignedRequest"` +} + +// NewOrgIdpSaml registers a new resource with the given unique name, arguments, and options. +func NewOrgIdpSaml(ctx *pulumi.Context, + name string, args *OrgIdpSamlArgs, opts ...pulumi.ResourceOption) (*OrgIdpSaml, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.IsAutoCreation == nil { + return nil, errors.New("invalid value for required argument 'IsAutoCreation'") + } + if args.IsAutoUpdate == nil { + return nil, errors.New("invalid value for required argument 'IsAutoUpdate'") + } + if args.IsCreationAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsCreationAllowed'") + } + if args.IsLinkingAllowed == nil { + return nil, errors.New("invalid value for required argument 'IsLinkingAllowed'") + } + if args.MetadataXml == nil { + return nil, errors.New("invalid value for required argument 'MetadataXml'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource OrgIdpSaml + err := ctx.RegisterResource("zitadel:index/orgIdpSaml:OrgIdpSaml", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetOrgIdpSaml gets an existing OrgIdpSaml resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetOrgIdpSaml(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *OrgIdpSamlState, opts ...pulumi.ResourceOption) (*OrgIdpSaml, error) { + var resource OrgIdpSaml + err := ctx.ReadResource("zitadel:index/orgIdpSaml:OrgIdpSaml", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering OrgIdpSaml resources. +type orgIdpSamlState struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding *string `pulumi:"binding"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation *bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate *bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed *bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed *bool `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml *string `pulumi:"metadataXml"` + // Name of the IDP + Name *string `pulumi:"name"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // Whether the SAML IDP requires signed requests + WithSignedRequest *bool `pulumi:"withSignedRequest"` +} + +type OrgIdpSamlState struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding pulumi.StringPtrInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolPtrInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolPtrInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolPtrInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolPtrInput + // The metadata XML as plain string + MetadataXml pulumi.StringPtrInput + // Name of the IDP + Name pulumi.StringPtrInput + // ID of the organization + OrgId pulumi.StringPtrInput + // Whether the SAML IDP requires signed requests + WithSignedRequest pulumi.BoolPtrInput +} + +func (OrgIdpSamlState) ElementType() reflect.Type { + return reflect.TypeOf((*orgIdpSamlState)(nil)).Elem() +} + +type orgIdpSamlArgs struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding *string `pulumi:"binding"` + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation bool `pulumi:"isAutoCreation"` + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate bool `pulumi:"isAutoUpdate"` + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed bool `pulumi:"isCreationAllowed"` + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed bool `pulumi:"isLinkingAllowed"` + // The metadata XML as plain string + MetadataXml string `pulumi:"metadataXml"` + // Name of the IDP + Name *string `pulumi:"name"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // Whether the SAML IDP requires signed requests + WithSignedRequest *bool `pulumi:"withSignedRequest"` +} + +// The set of arguments for constructing a OrgIdpSaml resource. +type OrgIdpSamlArgs struct { + // The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + Binding pulumi.StringPtrInput + // enable if a new account in ZITADEL should be created automatically on login with an external account + IsAutoCreation pulumi.BoolInput + // enable if a the ZITADEL account fields should be updated automatically on each login + IsAutoUpdate pulumi.BoolInput + // enable if users should be able to create a new account in ZITADEL when using an external account + IsCreationAllowed pulumi.BoolInput + // enable if users should be able to link an existing ZITADEL user with an external account + IsLinkingAllowed pulumi.BoolInput + // The metadata XML as plain string + MetadataXml pulumi.StringInput + // Name of the IDP + Name pulumi.StringPtrInput + // ID of the organization + OrgId pulumi.StringPtrInput + // Whether the SAML IDP requires signed requests + WithSignedRequest pulumi.BoolPtrInput +} + +func (OrgIdpSamlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*orgIdpSamlArgs)(nil)).Elem() +} + +type OrgIdpSamlInput interface { + pulumi.Input + + ToOrgIdpSamlOutput() OrgIdpSamlOutput + ToOrgIdpSamlOutputWithContext(ctx context.Context) OrgIdpSamlOutput +} + +func (*OrgIdpSaml) ElementType() reflect.Type { + return reflect.TypeOf((**OrgIdpSaml)(nil)).Elem() +} + +func (i *OrgIdpSaml) ToOrgIdpSamlOutput() OrgIdpSamlOutput { + return i.ToOrgIdpSamlOutputWithContext(context.Background()) +} + +func (i *OrgIdpSaml) ToOrgIdpSamlOutputWithContext(ctx context.Context) OrgIdpSamlOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgIdpSamlOutput) +} + +func (i *OrgIdpSaml) ToOutput(ctx context.Context) pulumix.Output[*OrgIdpSaml] { + return pulumix.Output[*OrgIdpSaml]{ + OutputState: i.ToOrgIdpSamlOutputWithContext(ctx).OutputState, + } +} + +// OrgIdpSamlArrayInput is an input type that accepts OrgIdpSamlArray and OrgIdpSamlArrayOutput values. +// You can construct a concrete instance of `OrgIdpSamlArrayInput` via: +// +// OrgIdpSamlArray{ OrgIdpSamlArgs{...} } +type OrgIdpSamlArrayInput interface { + pulumi.Input + + ToOrgIdpSamlArrayOutput() OrgIdpSamlArrayOutput + ToOrgIdpSamlArrayOutputWithContext(context.Context) OrgIdpSamlArrayOutput +} + +type OrgIdpSamlArray []OrgIdpSamlInput + +func (OrgIdpSamlArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrgIdpSaml)(nil)).Elem() +} + +func (i OrgIdpSamlArray) ToOrgIdpSamlArrayOutput() OrgIdpSamlArrayOutput { + return i.ToOrgIdpSamlArrayOutputWithContext(context.Background()) +} + +func (i OrgIdpSamlArray) ToOrgIdpSamlArrayOutputWithContext(ctx context.Context) OrgIdpSamlArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgIdpSamlArrayOutput) +} + +func (i OrgIdpSamlArray) ToOutput(ctx context.Context) pulumix.Output[[]*OrgIdpSaml] { + return pulumix.Output[[]*OrgIdpSaml]{ + OutputState: i.ToOrgIdpSamlArrayOutputWithContext(ctx).OutputState, + } +} + +// OrgIdpSamlMapInput is an input type that accepts OrgIdpSamlMap and OrgIdpSamlMapOutput values. +// You can construct a concrete instance of `OrgIdpSamlMapInput` via: +// +// OrgIdpSamlMap{ "key": OrgIdpSamlArgs{...} } +type OrgIdpSamlMapInput interface { + pulumi.Input + + ToOrgIdpSamlMapOutput() OrgIdpSamlMapOutput + ToOrgIdpSamlMapOutputWithContext(context.Context) OrgIdpSamlMapOutput +} + +type OrgIdpSamlMap map[string]OrgIdpSamlInput + +func (OrgIdpSamlMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrgIdpSaml)(nil)).Elem() +} + +func (i OrgIdpSamlMap) ToOrgIdpSamlMapOutput() OrgIdpSamlMapOutput { + return i.ToOrgIdpSamlMapOutputWithContext(context.Background()) +} + +func (i OrgIdpSamlMap) ToOrgIdpSamlMapOutputWithContext(ctx context.Context) OrgIdpSamlMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgIdpSamlMapOutput) +} + +func (i OrgIdpSamlMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*OrgIdpSaml] { + return pulumix.Output[map[string]*OrgIdpSaml]{ + OutputState: i.ToOrgIdpSamlMapOutputWithContext(ctx).OutputState, + } +} + +type OrgIdpSamlOutput struct{ *pulumi.OutputState } + +func (OrgIdpSamlOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrgIdpSaml)(nil)).Elem() +} + +func (o OrgIdpSamlOutput) ToOrgIdpSamlOutput() OrgIdpSamlOutput { + return o +} + +func (o OrgIdpSamlOutput) ToOrgIdpSamlOutputWithContext(ctx context.Context) OrgIdpSamlOutput { + return o +} + +func (o OrgIdpSamlOutput) ToOutput(ctx context.Context) pulumix.Output[*OrgIdpSaml] { + return pulumix.Output[*OrgIdpSaml]{ + OutputState: o.OutputState, + } +} + +// The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT +func (o OrgIdpSamlOutput) Binding() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.StringPtrOutput { return v.Binding }).(pulumi.StringPtrOutput) +} + +// enable if a new account in ZITADEL should be created automatically on login with an external account +func (o OrgIdpSamlOutput) IsAutoCreation() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.BoolOutput { return v.IsAutoCreation }).(pulumi.BoolOutput) +} + +// enable if a the ZITADEL account fields should be updated automatically on each login +func (o OrgIdpSamlOutput) IsAutoUpdate() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.BoolOutput { return v.IsAutoUpdate }).(pulumi.BoolOutput) +} + +// enable if users should be able to create a new account in ZITADEL when using an external account +func (o OrgIdpSamlOutput) IsCreationAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.BoolOutput { return v.IsCreationAllowed }).(pulumi.BoolOutput) +} + +// enable if users should be able to link an existing ZITADEL user with an external account +func (o OrgIdpSamlOutput) IsLinkingAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.BoolOutput { return v.IsLinkingAllowed }).(pulumi.BoolOutput) +} + +// The metadata XML as plain string +func (o OrgIdpSamlOutput) MetadataXml() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.StringOutput { return v.MetadataXml }).(pulumi.StringOutput) +} + +// Name of the IDP +func (o OrgIdpSamlOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// ID of the organization +func (o OrgIdpSamlOutput) OrgId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.StringPtrOutput { return v.OrgId }).(pulumi.StringPtrOutput) +} + +// Whether the SAML IDP requires signed requests +func (o OrgIdpSamlOutput) WithSignedRequest() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OrgIdpSaml) pulumi.BoolPtrOutput { return v.WithSignedRequest }).(pulumi.BoolPtrOutput) +} + +type OrgIdpSamlArrayOutput struct{ *pulumi.OutputState } + +func (OrgIdpSamlArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrgIdpSaml)(nil)).Elem() +} + +func (o OrgIdpSamlArrayOutput) ToOrgIdpSamlArrayOutput() OrgIdpSamlArrayOutput { + return o +} + +func (o OrgIdpSamlArrayOutput) ToOrgIdpSamlArrayOutputWithContext(ctx context.Context) OrgIdpSamlArrayOutput { + return o +} + +func (o OrgIdpSamlArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*OrgIdpSaml] { + return pulumix.Output[[]*OrgIdpSaml]{ + OutputState: o.OutputState, + } +} + +func (o OrgIdpSamlArrayOutput) Index(i pulumi.IntInput) OrgIdpSamlOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrgIdpSaml { + return vs[0].([]*OrgIdpSaml)[vs[1].(int)] + }).(OrgIdpSamlOutput) +} + +type OrgIdpSamlMapOutput struct{ *pulumi.OutputState } + +func (OrgIdpSamlMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrgIdpSaml)(nil)).Elem() +} + +func (o OrgIdpSamlMapOutput) ToOrgIdpSamlMapOutput() OrgIdpSamlMapOutput { + return o +} + +func (o OrgIdpSamlMapOutput) ToOrgIdpSamlMapOutputWithContext(ctx context.Context) OrgIdpSamlMapOutput { + return o +} + +func (o OrgIdpSamlMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*OrgIdpSaml] { + return pulumix.Output[map[string]*OrgIdpSaml]{ + OutputState: o.OutputState, + } +} + +func (o OrgIdpSamlMapOutput) MapIndex(k pulumi.StringInput) OrgIdpSamlOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrgIdpSaml { + return vs[0].(map[string]*OrgIdpSaml)[vs[1].(string)] + }).(OrgIdpSamlOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*OrgIdpSamlInput)(nil)).Elem(), &OrgIdpSaml{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrgIdpSamlArrayInput)(nil)).Elem(), OrgIdpSamlArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrgIdpSamlMapInput)(nil)).Elem(), OrgIdpSamlMap{}) + pulumi.RegisterOutputType(OrgIdpSamlOutput{}) + pulumi.RegisterOutputType(OrgIdpSamlArrayOutput{}) + pulumi.RegisterOutputType(OrgIdpSamlMapOutput{}) +} diff --git a/sdk/go/zitadel/orgMember.go b/sdk/go/zitadel/orgMember.go index 8b43124..2c3ac26 100644 --- a/sdk/go/zitadel/orgMember.go +++ b/sdk/go/zitadel/orgMember.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/orgMetadata.go b/sdk/go/zitadel/orgMetadata.go new file mode 100644 index 0000000..139bbe1 --- /dev/null +++ b/sdk/go/zitadel/orgMetadata.go @@ -0,0 +1,325 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.NewOrgMetadata(ctx, "default", &zitadel.OrgMetadataArgs{ +// OrgId: pulumi.Any(defaultZitadelOrg.Id), +// Key: pulumi.String("a_key"), +// Value: pulumi.String("a_value"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// bash The resource can be imported using the ID format ``, e.g. +// +// ```sh +// +// $ pulumi import zitadel:index/orgMetadata:OrgMetadata imported 'a_key:123456789012345678' +// +// ``` +type OrgMetadata struct { + pulumi.CustomResourceState + + // The key of a metadata entry + Key pulumi.StringOutput `pulumi:"key"` + // ID of the organization + OrgId pulumi.StringPtrOutput `pulumi:"orgId"` + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value pulumi.StringOutput `pulumi:"value"` +} + +// NewOrgMetadata registers a new resource with the given unique name, arguments, and options. +func NewOrgMetadata(ctx *pulumi.Context, + name string, args *OrgMetadataArgs, opts ...pulumi.ResourceOption) (*OrgMetadata, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Key == nil { + return nil, errors.New("invalid value for required argument 'Key'") + } + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource OrgMetadata + err := ctx.RegisterResource("zitadel:index/orgMetadata:OrgMetadata", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetOrgMetadata gets an existing OrgMetadata resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetOrgMetadata(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *OrgMetadataState, opts ...pulumi.ResourceOption) (*OrgMetadata, error) { + var resource OrgMetadata + err := ctx.ReadResource("zitadel:index/orgMetadata:OrgMetadata", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering OrgMetadata resources. +type orgMetadataState struct { + // The key of a metadata entry + Key *string `pulumi:"key"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value *string `pulumi:"value"` +} + +type OrgMetadataState struct { + // The key of a metadata entry + Key pulumi.StringPtrInput + // ID of the organization + OrgId pulumi.StringPtrInput + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value pulumi.StringPtrInput +} + +func (OrgMetadataState) ElementType() reflect.Type { + return reflect.TypeOf((*orgMetadataState)(nil)).Elem() +} + +type orgMetadataArgs struct { + // The key of a metadata entry + Key string `pulumi:"key"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value string `pulumi:"value"` +} + +// The set of arguments for constructing a OrgMetadata resource. +type OrgMetadataArgs struct { + // The key of a metadata entry + Key pulumi.StringInput + // ID of the organization + OrgId pulumi.StringPtrInput + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value pulumi.StringInput +} + +func (OrgMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*orgMetadataArgs)(nil)).Elem() +} + +type OrgMetadataInput interface { + pulumi.Input + + ToOrgMetadataOutput() OrgMetadataOutput + ToOrgMetadataOutputWithContext(ctx context.Context) OrgMetadataOutput +} + +func (*OrgMetadata) ElementType() reflect.Type { + return reflect.TypeOf((**OrgMetadata)(nil)).Elem() +} + +func (i *OrgMetadata) ToOrgMetadataOutput() OrgMetadataOutput { + return i.ToOrgMetadataOutputWithContext(context.Background()) +} + +func (i *OrgMetadata) ToOrgMetadataOutputWithContext(ctx context.Context) OrgMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgMetadataOutput) +} + +func (i *OrgMetadata) ToOutput(ctx context.Context) pulumix.Output[*OrgMetadata] { + return pulumix.Output[*OrgMetadata]{ + OutputState: i.ToOrgMetadataOutputWithContext(ctx).OutputState, + } +} + +// OrgMetadataArrayInput is an input type that accepts OrgMetadataArray and OrgMetadataArrayOutput values. +// You can construct a concrete instance of `OrgMetadataArrayInput` via: +// +// OrgMetadataArray{ OrgMetadataArgs{...} } +type OrgMetadataArrayInput interface { + pulumi.Input + + ToOrgMetadataArrayOutput() OrgMetadataArrayOutput + ToOrgMetadataArrayOutputWithContext(context.Context) OrgMetadataArrayOutput +} + +type OrgMetadataArray []OrgMetadataInput + +func (OrgMetadataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrgMetadata)(nil)).Elem() +} + +func (i OrgMetadataArray) ToOrgMetadataArrayOutput() OrgMetadataArrayOutput { + return i.ToOrgMetadataArrayOutputWithContext(context.Background()) +} + +func (i OrgMetadataArray) ToOrgMetadataArrayOutputWithContext(ctx context.Context) OrgMetadataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgMetadataArrayOutput) +} + +func (i OrgMetadataArray) ToOutput(ctx context.Context) pulumix.Output[[]*OrgMetadata] { + return pulumix.Output[[]*OrgMetadata]{ + OutputState: i.ToOrgMetadataArrayOutputWithContext(ctx).OutputState, + } +} + +// OrgMetadataMapInput is an input type that accepts OrgMetadataMap and OrgMetadataMapOutput values. +// You can construct a concrete instance of `OrgMetadataMapInput` via: +// +// OrgMetadataMap{ "key": OrgMetadataArgs{...} } +type OrgMetadataMapInput interface { + pulumi.Input + + ToOrgMetadataMapOutput() OrgMetadataMapOutput + ToOrgMetadataMapOutputWithContext(context.Context) OrgMetadataMapOutput +} + +type OrgMetadataMap map[string]OrgMetadataInput + +func (OrgMetadataMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrgMetadata)(nil)).Elem() +} + +func (i OrgMetadataMap) ToOrgMetadataMapOutput() OrgMetadataMapOutput { + return i.ToOrgMetadataMapOutputWithContext(context.Background()) +} + +func (i OrgMetadataMap) ToOrgMetadataMapOutputWithContext(ctx context.Context) OrgMetadataMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrgMetadataMapOutput) +} + +func (i OrgMetadataMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*OrgMetadata] { + return pulumix.Output[map[string]*OrgMetadata]{ + OutputState: i.ToOrgMetadataMapOutputWithContext(ctx).OutputState, + } +} + +type OrgMetadataOutput struct{ *pulumi.OutputState } + +func (OrgMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrgMetadata)(nil)).Elem() +} + +func (o OrgMetadataOutput) ToOrgMetadataOutput() OrgMetadataOutput { + return o +} + +func (o OrgMetadataOutput) ToOrgMetadataOutputWithContext(ctx context.Context) OrgMetadataOutput { + return o +} + +func (o OrgMetadataOutput) ToOutput(ctx context.Context) pulumix.Output[*OrgMetadata] { + return pulumix.Output[*OrgMetadata]{ + OutputState: o.OutputState, + } +} + +// The key of a metadata entry +func (o OrgMetadataOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *OrgMetadata) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// ID of the organization +func (o OrgMetadataOutput) OrgId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrgMetadata) pulumi.StringPtrOutput { return v.OrgId }).(pulumi.StringPtrOutput) +} + +// The string representation of a metadata entry value. For binary data, use the base64encode function. +func (o OrgMetadataOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v *OrgMetadata) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput) +} + +type OrgMetadataArrayOutput struct{ *pulumi.OutputState } + +func (OrgMetadataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrgMetadata)(nil)).Elem() +} + +func (o OrgMetadataArrayOutput) ToOrgMetadataArrayOutput() OrgMetadataArrayOutput { + return o +} + +func (o OrgMetadataArrayOutput) ToOrgMetadataArrayOutputWithContext(ctx context.Context) OrgMetadataArrayOutput { + return o +} + +func (o OrgMetadataArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*OrgMetadata] { + return pulumix.Output[[]*OrgMetadata]{ + OutputState: o.OutputState, + } +} + +func (o OrgMetadataArrayOutput) Index(i pulumi.IntInput) OrgMetadataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrgMetadata { + return vs[0].([]*OrgMetadata)[vs[1].(int)] + }).(OrgMetadataOutput) +} + +type OrgMetadataMapOutput struct{ *pulumi.OutputState } + +func (OrgMetadataMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrgMetadata)(nil)).Elem() +} + +func (o OrgMetadataMapOutput) ToOrgMetadataMapOutput() OrgMetadataMapOutput { + return o +} + +func (o OrgMetadataMapOutput) ToOrgMetadataMapOutputWithContext(ctx context.Context) OrgMetadataMapOutput { + return o +} + +func (o OrgMetadataMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*OrgMetadata] { + return pulumix.Output[map[string]*OrgMetadata]{ + OutputState: o.OutputState, + } +} + +func (o OrgMetadataMapOutput) MapIndex(k pulumi.StringInput) OrgMetadataOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrgMetadata { + return vs[0].(map[string]*OrgMetadata)[vs[1].(string)] + }).(OrgMetadataOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*OrgMetadataInput)(nil)).Elem(), &OrgMetadata{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrgMetadataArrayInput)(nil)).Elem(), OrgMetadataArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrgMetadataMapInput)(nil)).Elem(), OrgMetadataMap{}) + pulumi.RegisterOutputType(OrgMetadataOutput{}) + pulumi.RegisterOutputType(OrgMetadataArrayOutput{}) + pulumi.RegisterOutputType(OrgMetadataMapOutput{}) +} diff --git a/sdk/go/zitadel/personalAccessToken.go b/sdk/go/zitadel/personalAccessToken.go index 4ca1562..91922a7 100644 --- a/sdk/go/zitadel/personalAccessToken.go +++ b/sdk/go/zitadel/personalAccessToken.go @@ -45,7 +45,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/privacyPolicy.go b/sdk/go/zitadel/privacyPolicy.go index 1ea0cbe..b1fe531 100644 --- a/sdk/go/zitadel/privacyPolicy.go +++ b/sdk/go/zitadel/privacyPolicy.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[org_id]>`, e.g. +// bash The resource can be imported using the ID format `<[org_id]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/project.go b/sdk/go/zitadel/project.go index 10cf62a..f6c470e 100644 --- a/sdk/go/zitadel/project.go +++ b/sdk/go/zitadel/project.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/projectGrant.go b/sdk/go/zitadel/projectGrant.go index 29580c3..a68d8f8 100644 --- a/sdk/go/zitadel/projectGrant.go +++ b/sdk/go/zitadel/projectGrant.go @@ -48,7 +48,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/projectGrantMember.go b/sdk/go/zitadel/projectGrantMember.go index 9f23863..09bbff4 100644 --- a/sdk/go/zitadel/projectGrantMember.go +++ b/sdk/go/zitadel/projectGrantMember.go @@ -49,7 +49,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/projectMember.go b/sdk/go/zitadel/projectMember.go index 0501a44..a9efcdd 100644 --- a/sdk/go/zitadel/projectMember.go +++ b/sdk/go/zitadel/projectMember.go @@ -48,7 +48,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/projectRole.go b/sdk/go/zitadel/projectRole.go index 892bb0f..dc2cccd 100644 --- a/sdk/go/zitadel/projectRole.go +++ b/sdk/go/zitadel/projectRole.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/smsProviderTwilio.go b/sdk/go/zitadel/smsProviderTwilio.go index 4e5fe97..28a3fc0 100644 --- a/sdk/go/zitadel/smsProviderTwilio.go +++ b/sdk/go/zitadel/smsProviderTwilio.go @@ -45,7 +45,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/smtpConfig.go b/sdk/go/zitadel/smtpConfig.go index 9cc8147..036943a 100644 --- a/sdk/go/zitadel/smtpConfig.go +++ b/sdk/go/zitadel/smtpConfig.go @@ -49,7 +49,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format `<[password]>`, e.g. +// bash The resource can be imported using the ID format `<[password]>`, e.g. // // ```sh // diff --git a/sdk/go/zitadel/triggerActions.go b/sdk/go/zitadel/triggerActions.go index bcb4c69..43a2fcf 100644 --- a/sdk/go/zitadel/triggerActions.go +++ b/sdk/go/zitadel/triggerActions.go @@ -48,7 +48,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/userGrant.go b/sdk/go/zitadel/userGrant.go index f40f992..34db0d6 100644 --- a/sdk/go/zitadel/userGrant.go +++ b/sdk/go/zitadel/userGrant.go @@ -48,7 +48,7 @@ import ( // // ## Import // -// terraform The resource can be imported using the ID format ``, e.g. +// bash The resource can be imported using the ID format ``, e.g. // // ```sh // diff --git a/sdk/go/zitadel/userMetadata.go b/sdk/go/zitadel/userMetadata.go new file mode 100644 index 0000000..c94ca38 --- /dev/null +++ b/sdk/go/zitadel/userMetadata.go @@ -0,0 +1,344 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package zitadel + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" + "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel/internal" +) + +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-zitadel/sdk/go/zitadel" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := zitadel.NewUserMetadata(ctx, "default", &zitadel.UserMetadataArgs{ +// OrgId: pulumi.Any(defaultZitadelOrg.Id), +// UserId: pulumi.Any(defaultZitadelHumanUser.Id), +// Key: pulumi.String("a_key"), +// Value: pulumi.String("a_value"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// bash The resource can be imported using the ID format ``, e.g. +// +// ```sh +// +// $ pulumi import zitadel:index/userMetadata:UserMetadata imported '123456789012345678:a_key:123456789012345678' +// +// ``` +type UserMetadata struct { + pulumi.CustomResourceState + + // The key of a metadata entry + Key pulumi.StringOutput `pulumi:"key"` + // ID of the organization + OrgId pulumi.StringPtrOutput `pulumi:"orgId"` + // ID of the user + UserId pulumi.StringOutput `pulumi:"userId"` + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value pulumi.StringOutput `pulumi:"value"` +} + +// NewUserMetadata registers a new resource with the given unique name, arguments, and options. +func NewUserMetadata(ctx *pulumi.Context, + name string, args *UserMetadataArgs, opts ...pulumi.ResourceOption) (*UserMetadata, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Key == nil { + return nil, errors.New("invalid value for required argument 'Key'") + } + if args.UserId == nil { + return nil, errors.New("invalid value for required argument 'UserId'") + } + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserMetadata + err := ctx.RegisterResource("zitadel:index/userMetadata:UserMetadata", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserMetadata gets an existing UserMetadata resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUserMetadata(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserMetadataState, opts ...pulumi.ResourceOption) (*UserMetadata, error) { + var resource UserMetadata + err := ctx.ReadResource("zitadel:index/userMetadata:UserMetadata", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserMetadata resources. +type userMetadataState struct { + // The key of a metadata entry + Key *string `pulumi:"key"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // ID of the user + UserId *string `pulumi:"userId"` + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value *string `pulumi:"value"` +} + +type UserMetadataState struct { + // The key of a metadata entry + Key pulumi.StringPtrInput + // ID of the organization + OrgId pulumi.StringPtrInput + // ID of the user + UserId pulumi.StringPtrInput + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value pulumi.StringPtrInput +} + +func (UserMetadataState) ElementType() reflect.Type { + return reflect.TypeOf((*userMetadataState)(nil)).Elem() +} + +type userMetadataArgs struct { + // The key of a metadata entry + Key string `pulumi:"key"` + // ID of the organization + OrgId *string `pulumi:"orgId"` + // ID of the user + UserId string `pulumi:"userId"` + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value string `pulumi:"value"` +} + +// The set of arguments for constructing a UserMetadata resource. +type UserMetadataArgs struct { + // The key of a metadata entry + Key pulumi.StringInput + // ID of the organization + OrgId pulumi.StringPtrInput + // ID of the user + UserId pulumi.StringInput + // The string representation of a metadata entry value. For binary data, use the base64encode function. + Value pulumi.StringInput +} + +func (UserMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userMetadataArgs)(nil)).Elem() +} + +type UserMetadataInput interface { + pulumi.Input + + ToUserMetadataOutput() UserMetadataOutput + ToUserMetadataOutputWithContext(ctx context.Context) UserMetadataOutput +} + +func (*UserMetadata) ElementType() reflect.Type { + return reflect.TypeOf((**UserMetadata)(nil)).Elem() +} + +func (i *UserMetadata) ToUserMetadataOutput() UserMetadataOutput { + return i.ToUserMetadataOutputWithContext(context.Background()) +} + +func (i *UserMetadata) ToUserMetadataOutputWithContext(ctx context.Context) UserMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserMetadataOutput) +} + +func (i *UserMetadata) ToOutput(ctx context.Context) pulumix.Output[*UserMetadata] { + return pulumix.Output[*UserMetadata]{ + OutputState: i.ToUserMetadataOutputWithContext(ctx).OutputState, + } +} + +// UserMetadataArrayInput is an input type that accepts UserMetadataArray and UserMetadataArrayOutput values. +// You can construct a concrete instance of `UserMetadataArrayInput` via: +// +// UserMetadataArray{ UserMetadataArgs{...} } +type UserMetadataArrayInput interface { + pulumi.Input + + ToUserMetadataArrayOutput() UserMetadataArrayOutput + ToUserMetadataArrayOutputWithContext(context.Context) UserMetadataArrayOutput +} + +type UserMetadataArray []UserMetadataInput + +func (UserMetadataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserMetadata)(nil)).Elem() +} + +func (i UserMetadataArray) ToUserMetadataArrayOutput() UserMetadataArrayOutput { + return i.ToUserMetadataArrayOutputWithContext(context.Background()) +} + +func (i UserMetadataArray) ToUserMetadataArrayOutputWithContext(ctx context.Context) UserMetadataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserMetadataArrayOutput) +} + +func (i UserMetadataArray) ToOutput(ctx context.Context) pulumix.Output[[]*UserMetadata] { + return pulumix.Output[[]*UserMetadata]{ + OutputState: i.ToUserMetadataArrayOutputWithContext(ctx).OutputState, + } +} + +// UserMetadataMapInput is an input type that accepts UserMetadataMap and UserMetadataMapOutput values. +// You can construct a concrete instance of `UserMetadataMapInput` via: +// +// UserMetadataMap{ "key": UserMetadataArgs{...} } +type UserMetadataMapInput interface { + pulumi.Input + + ToUserMetadataMapOutput() UserMetadataMapOutput + ToUserMetadataMapOutputWithContext(context.Context) UserMetadataMapOutput +} + +type UserMetadataMap map[string]UserMetadataInput + +func (UserMetadataMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserMetadata)(nil)).Elem() +} + +func (i UserMetadataMap) ToUserMetadataMapOutput() UserMetadataMapOutput { + return i.ToUserMetadataMapOutputWithContext(context.Background()) +} + +func (i UserMetadataMap) ToUserMetadataMapOutputWithContext(ctx context.Context) UserMetadataMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserMetadataMapOutput) +} + +func (i UserMetadataMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*UserMetadata] { + return pulumix.Output[map[string]*UserMetadata]{ + OutputState: i.ToUserMetadataMapOutputWithContext(ctx).OutputState, + } +} + +type UserMetadataOutput struct{ *pulumi.OutputState } + +func (UserMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserMetadata)(nil)).Elem() +} + +func (o UserMetadataOutput) ToUserMetadataOutput() UserMetadataOutput { + return o +} + +func (o UserMetadataOutput) ToUserMetadataOutputWithContext(ctx context.Context) UserMetadataOutput { + return o +} + +func (o UserMetadataOutput) ToOutput(ctx context.Context) pulumix.Output[*UserMetadata] { + return pulumix.Output[*UserMetadata]{ + OutputState: o.OutputState, + } +} + +// The key of a metadata entry +func (o UserMetadataOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *UserMetadata) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// ID of the organization +func (o UserMetadataOutput) OrgId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserMetadata) pulumi.StringPtrOutput { return v.OrgId }).(pulumi.StringPtrOutput) +} + +// ID of the user +func (o UserMetadataOutput) UserId() pulumi.StringOutput { + return o.ApplyT(func(v *UserMetadata) pulumi.StringOutput { return v.UserId }).(pulumi.StringOutput) +} + +// The string representation of a metadata entry value. For binary data, use the base64encode function. +func (o UserMetadataOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v *UserMetadata) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput) +} + +type UserMetadataArrayOutput struct{ *pulumi.OutputState } + +func (UserMetadataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserMetadata)(nil)).Elem() +} + +func (o UserMetadataArrayOutput) ToUserMetadataArrayOutput() UserMetadataArrayOutput { + return o +} + +func (o UserMetadataArrayOutput) ToUserMetadataArrayOutputWithContext(ctx context.Context) UserMetadataArrayOutput { + return o +} + +func (o UserMetadataArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*UserMetadata] { + return pulumix.Output[[]*UserMetadata]{ + OutputState: o.OutputState, + } +} + +func (o UserMetadataArrayOutput) Index(i pulumi.IntInput) UserMetadataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserMetadata { + return vs[0].([]*UserMetadata)[vs[1].(int)] + }).(UserMetadataOutput) +} + +type UserMetadataMapOutput struct{ *pulumi.OutputState } + +func (UserMetadataMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserMetadata)(nil)).Elem() +} + +func (o UserMetadataMapOutput) ToUserMetadataMapOutput() UserMetadataMapOutput { + return o +} + +func (o UserMetadataMapOutput) ToUserMetadataMapOutputWithContext(ctx context.Context) UserMetadataMapOutput { + return o +} + +func (o UserMetadataMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*UserMetadata] { + return pulumix.Output[map[string]*UserMetadata]{ + OutputState: o.OutputState, + } +} + +func (o UserMetadataMapOutput) MapIndex(k pulumi.StringInput) UserMetadataOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserMetadata { + return vs[0].(map[string]*UserMetadata)[vs[1].(string)] + }).(UserMetadataOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserMetadataInput)(nil)).Elem(), &UserMetadata{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserMetadataArrayInput)(nil)).Elem(), UserMetadataArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserMetadataMapInput)(nil)).Elem(), UserMetadataMap{}) + pulumi.RegisterOutputType(UserMetadataOutput{}) + pulumi.RegisterOutputType(UserMetadataArrayOutput{}) + pulumi.RegisterOutputType(UserMetadataMapOutput{}) +} diff --git a/sdk/nodejs/action.ts b/sdk/nodejs/action.ts index 3c49210..98c3f14 100644 --- a/sdk/nodejs/action.ts +++ b/sdk/nodejs/action.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/action:Action imported '123456789012345678:123456789012345678' diff --git a/sdk/nodejs/applicationApi.ts b/sdk/nodejs/applicationApi.ts index 577ce46..8f911a9 100644 --- a/sdk/nodejs/applicationApi.ts +++ b/sdk/nodejs/applicationApi.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/applicationApi:ApplicationApi imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' diff --git a/sdk/nodejs/applicationKey.ts b/sdk/nodejs/applicationKey.ts index 98af5a8..2a632d6 100644 --- a/sdk/nodejs/applicationKey.ts +++ b/sdk/nodejs/applicationKey.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. + * bash The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. * * ```sh * $ pulumi import zitadel:index/applicationKey:ApplicationKey imported "123456789012345678:123456789012345678:123456789012345678:123456789012345678:$(cat ~/Downloads/123456789012345678.json | sed -e 's/:/__SEMICOLON__/g')" diff --git a/sdk/nodejs/applicationOidc.ts b/sdk/nodejs/applicationOidc.ts index 1002e3e..75a73d8 100644 --- a/sdk/nodejs/applicationOidc.ts +++ b/sdk/nodejs/applicationOidc.ts @@ -36,7 +36,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/applicationOidc:ApplicationOidc imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' diff --git a/sdk/nodejs/applicationSaml.ts b/sdk/nodejs/applicationSaml.ts index 67f2295..d10ee7d 100644 --- a/sdk/nodejs/applicationSaml.ts +++ b/sdk/nodejs/applicationSaml.ts @@ -35,7 +35,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/applicationSaml:ApplicationSaml imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/nodejs/defaultDomainPolicy.ts b/sdk/nodejs/defaultDomainPolicy.ts index 976772f..00d422f 100644 --- a/sdk/nodejs/defaultDomainPolicy.ts +++ b/sdk/nodejs/defaultDomainPolicy.ts @@ -22,7 +22,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultDomainPolicy:DefaultDomainPolicy imported '' diff --git a/sdk/nodejs/defaultLabelPolicy.ts b/sdk/nodejs/defaultLabelPolicy.ts index d0ec042..e246b3f 100644 --- a/sdk/nodejs/defaultLabelPolicy.ts +++ b/sdk/nodejs/defaultLabelPolicy.ts @@ -9,7 +9,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultLabelPolicy:DefaultLabelPolicy imported '' @@ -94,6 +94,10 @@ export class DefaultLabelPolicy extends pulumi.CustomResource { * set the label policy active after creating/updating */ public readonly setActive!: pulumi.Output; + /** + * theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + */ + public readonly themeMode!: pulumi.Output; /** * hex value for warn color */ @@ -140,6 +144,7 @@ export class DefaultLabelPolicy extends pulumi.CustomResource { resourceInputs["primaryColor"] = state ? state.primaryColor : undefined; resourceInputs["primaryColorDark"] = state ? state.primaryColorDark : undefined; resourceInputs["setActive"] = state ? state.setActive : undefined; + resourceInputs["themeMode"] = state ? state.themeMode : undefined; resourceInputs["warnColor"] = state ? state.warnColor : undefined; resourceInputs["warnColorDark"] = state ? state.warnColorDark : undefined; } else { @@ -193,6 +198,7 @@ export class DefaultLabelPolicy extends pulumi.CustomResource { resourceInputs["primaryColor"] = args ? args.primaryColor : undefined; resourceInputs["primaryColorDark"] = args ? args.primaryColorDark : undefined; resourceInputs["setActive"] = args ? args.setActive : undefined; + resourceInputs["themeMode"] = args ? args.themeMode : undefined; resourceInputs["warnColor"] = args ? args.warnColor : undefined; resourceInputs["warnColorDark"] = args ? args.warnColorDark : undefined; resourceInputs["fontUrl"] = undefined /*out*/; @@ -261,6 +267,10 @@ export interface DefaultLabelPolicyState { * set the label policy active after creating/updating */ setActive?: pulumi.Input; + /** + * theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + */ + themeMode?: pulumi.Input; /** * hex value for warn color */ @@ -321,6 +331,10 @@ export interface DefaultLabelPolicyArgs { * set the label policy active after creating/updating */ setActive?: pulumi.Input; + /** + * theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + */ + themeMode?: pulumi.Input; /** * hex value for warn color */ diff --git a/sdk/nodejs/defaultLockoutPolicy.ts b/sdk/nodejs/defaultLockoutPolicy.ts index 05210ab..fe8d281 100644 --- a/sdk/nodejs/defaultLockoutPolicy.ts +++ b/sdk/nodejs/defaultLockoutPolicy.ts @@ -18,7 +18,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy imported '' diff --git a/sdk/nodejs/defaultLoginPolicy.ts b/sdk/nodejs/defaultLoginPolicy.ts index 1e7c177..86c5f87 100644 --- a/sdk/nodejs/defaultLoginPolicy.ts +++ b/sdk/nodejs/defaultLoginPolicy.ts @@ -45,7 +45,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultLoginPolicy:DefaultLoginPolicy imported '' diff --git a/sdk/nodejs/defaultNotificationPolicy.ts b/sdk/nodejs/defaultNotificationPolicy.ts index 12cf86b..ba6f1e4 100644 --- a/sdk/nodejs/defaultNotificationPolicy.ts +++ b/sdk/nodejs/defaultNotificationPolicy.ts @@ -18,7 +18,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy imported '' diff --git a/sdk/nodejs/defaultPasswordComplexityPolicy.ts b/sdk/nodejs/defaultPasswordComplexityPolicy.ts index 0c7852e..79b74c9 100644 --- a/sdk/nodejs/defaultPasswordComplexityPolicy.ts +++ b/sdk/nodejs/defaultPasswordComplexityPolicy.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy imported '' diff --git a/sdk/nodejs/defaultPrivacyPolicy.ts b/sdk/nodejs/defaultPrivacyPolicy.ts index 9335ad1..0adbb6f 100644 --- a/sdk/nodejs/defaultPrivacyPolicy.ts +++ b/sdk/nodejs/defaultPrivacyPolicy.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<>`, e.g. + * bash The resource can be imported using the ID format `<>`, e.g. * * ```sh * $ pulumi import zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy imported '' diff --git a/sdk/nodejs/domain.ts b/sdk/nodejs/domain.ts index 85834c4..379199d 100644 --- a/sdk/nodejs/domain.ts +++ b/sdk/nodejs/domain.ts @@ -22,7 +22,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `name[:org_id]`, e.g. + * bash The resource can be imported using the ID format `name[:org_id]`, e.g. * * ```sh * $ pulumi import zitadel:index/domain:Domain imported 'example.com:123456789012345678' diff --git a/sdk/nodejs/domainPolicy.ts b/sdk/nodejs/domainPolicy.ts index e6e3e0e..3e929ac 100644 --- a/sdk/nodejs/domainPolicy.ts +++ b/sdk/nodejs/domainPolicy.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + * bash The resource can be imported using the ID format `<[org_id]>`, e.g. * * ```sh * $ pulumi import zitadel:index/domainPolicy:DomainPolicy imported '123456789012345678' diff --git a/sdk/nodejs/getIdpOauth.ts b/sdk/nodejs/getIdpOauth.ts new file mode 100644 index 0000000..9525e98 --- /dev/null +++ b/sdk/nodejs/getIdpOauth.ts @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Datasource representing a generic OAuth2 IDP on the instance. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getIdpOauth({ + * id: "123456789012345678", + * }); + * ``` + */ +export function getIdpOauth(args: GetIdpOauthArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("zitadel:index/getIdpOauth:getIdpOauth", { + "id": args.id, + }, opts); +} + +/** + * A collection of arguments for invoking getIdpOauth. + */ +export interface GetIdpOauthArgs { + /** + * The ID of this resource. + */ + id: string; +} + +/** + * A collection of values returned by getIdpOauth. + */ +export interface GetIdpOauthResult { + /** + * The authorization endpoint + */ + readonly authorizationEndpoint: string; + /** + * client id generated by the identity provider + */ + readonly clientId: string; + /** + * client secret generated by the identity provider + */ + readonly clientSecret: string; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * The id attribute + */ + readonly idAttribute: string; + /** + * enabled if a new account in ZITADEL are created automatically on login with an external account + */ + readonly isAutoCreation: boolean; + /** + * enabled if a the ZITADEL account fields are updated automatically on each login + */ + readonly isAutoUpdate: boolean; + /** + * enabled if users are able to create a new account in ZITADEL when using an external account + */ + readonly isCreationAllowed: boolean; + /** + * enabled if users are able to link an existing ZITADEL user with an external account + */ + readonly isLinkingAllowed: boolean; + /** + * Name of the IDP + */ + readonly name: string; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + readonly scopes: string[]; + /** + * The token endpoint + */ + readonly tokenEndpoint: string; + /** + * The user endpoint + */ + readonly userEndpoint: string; +} +/** + * Datasource representing a generic OAuth2 IDP on the instance. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getIdpOauth({ + * id: "123456789012345678", + * }); + * ``` + */ +export function getIdpOauthOutput(args: GetIdpOauthOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getIdpOauth(a, opts)) +} + +/** + * A collection of arguments for invoking getIdpOauth. + */ +export interface GetIdpOauthOutputArgs { + /** + * The ID of this resource. + */ + id: pulumi.Input; +} diff --git a/sdk/nodejs/getIdpSaml.ts b/sdk/nodejs/getIdpSaml.ts new file mode 100644 index 0000000..363e2e9 --- /dev/null +++ b/sdk/nodejs/getIdpSaml.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Datasource representing a SAML IDP on the instance. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getIdpSaml({ + * id: "123456789012345678", + * }); + * ``` + */ +export function getIdpSaml(args: GetIdpSamlArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("zitadel:index/getIdpSaml:getIdpSaml", { + "id": args.id, + }, opts); +} + +/** + * A collection of arguments for invoking getIdpSaml. + */ +export interface GetIdpSamlArgs { + /** + * The ID of this resource. + */ + id: string; +} + +/** + * A collection of values returned by getIdpSaml. + */ +export interface GetIdpSamlResult { + /** + * The binding + */ + readonly binding: string; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * enabled if a new account in ZITADEL are created automatically on login with an external account + */ + readonly isAutoCreation: boolean; + /** + * enabled if a the ZITADEL account fields are updated automatically on each login + */ + readonly isAutoUpdate: boolean; + /** + * enabled if users are able to create a new account in ZITADEL when using an external account + */ + readonly isCreationAllowed: boolean; + /** + * enabled if users are able to link an existing ZITADEL user with an external account + */ + readonly isLinkingAllowed: boolean; + /** + * The metadata XML as plain string + */ + readonly metadataXml: string; + /** + * Name of the IDP + */ + readonly name: string; + /** + * Whether the SAML IDP requires signed requests + */ + readonly withSignedRequest: string; +} +/** + * Datasource representing a SAML IDP on the instance. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getIdpSaml({ + * id: "123456789012345678", + * }); + * ``` + */ +export function getIdpSamlOutput(args: GetIdpSamlOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getIdpSaml(a, opts)) +} + +/** + * A collection of arguments for invoking getIdpSaml. + */ +export interface GetIdpSamlOutputArgs { + /** + * The ID of this resource. + */ + id: pulumi.Input; +} diff --git a/sdk/nodejs/getOrgIdpOauth.ts b/sdk/nodejs/getOrgIdpOauth.ts new file mode 100644 index 0000000..d389aae --- /dev/null +++ b/sdk/nodejs/getOrgIdpOauth.ts @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Datasource representing a generic OAuth2 IDP of the organization. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getOrgIdpOauth({ + * orgId: defaultZitadelOrg.id, + * id: "123456789012345678", + * }); + * ``` + */ +export function getOrgIdpOauth(args: GetOrgIdpOauthArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("zitadel:index/getOrgIdpOauth:getOrgIdpOauth", { + "id": args.id, + "orgId": args.orgId, + }, opts); +} + +/** + * A collection of arguments for invoking getOrgIdpOauth. + */ +export interface GetOrgIdpOauthArgs { + /** + * The ID of this resource. + */ + id: string; + /** + * ID of the organization + */ + orgId?: string; +} + +/** + * A collection of values returned by getOrgIdpOauth. + */ +export interface GetOrgIdpOauthResult { + /** + * The authorization endpoint + */ + readonly authorizationEndpoint: string; + /** + * client id generated by the identity provider + */ + readonly clientId: string; + /** + * client secret generated by the identity provider + */ + readonly clientSecret: string; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * The id attribute + */ + readonly idAttribute: string; + /** + * enabled if a new account in ZITADEL are created automatically on login with an external account + */ + readonly isAutoCreation: boolean; + /** + * enabled if a the ZITADEL account fields are updated automatically on each login + */ + readonly isAutoUpdate: boolean; + /** + * enabled if users are able to create a new account in ZITADEL when using an external account + */ + readonly isCreationAllowed: boolean; + /** + * enabled if users are able to link an existing ZITADEL user with an external account + */ + readonly isLinkingAllowed: boolean; + /** + * Name of the IDP + */ + readonly name: string; + /** + * ID of the organization + */ + readonly orgId?: string; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + readonly scopes: string[]; + /** + * The token endpoint + */ + readonly tokenEndpoint: string; + /** + * The user endpoint + */ + readonly userEndpoint: string; +} +/** + * Datasource representing a generic OAuth2 IDP of the organization. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getOrgIdpOauth({ + * orgId: defaultZitadelOrg.id, + * id: "123456789012345678", + * }); + * ``` + */ +export function getOrgIdpOauthOutput(args: GetOrgIdpOauthOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getOrgIdpOauth(a, opts)) +} + +/** + * A collection of arguments for invoking getOrgIdpOauth. + */ +export interface GetOrgIdpOauthOutputArgs { + /** + * The ID of this resource. + */ + id: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; +} diff --git a/sdk/nodejs/getOrgIdpSaml.ts b/sdk/nodejs/getOrgIdpSaml.ts new file mode 100644 index 0000000..6813518 --- /dev/null +++ b/sdk/nodejs/getOrgIdpSaml.ts @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Datasource representing a SAML IdP of the organization. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getOrgIdpSaml({ + * orgId: defaultZitadelOrg.id, + * id: "123456789012345678", + * }); + * ``` + */ +export function getOrgIdpSaml(args: GetOrgIdpSamlArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("zitadel:index/getOrgIdpSaml:getOrgIdpSaml", { + "id": args.id, + "orgId": args.orgId, + }, opts); +} + +/** + * A collection of arguments for invoking getOrgIdpSaml. + */ +export interface GetOrgIdpSamlArgs { + /** + * The ID of this resource. + */ + id: string; + /** + * ID of the organization + */ + orgId?: string; +} + +/** + * A collection of values returned by getOrgIdpSaml. + */ +export interface GetOrgIdpSamlResult { + /** + * The binding + */ + readonly binding: string; + /** + * The ID of this resource. + */ + readonly id: string; + /** + * enabled if a new account in ZITADEL are created automatically on login with an external account + */ + readonly isAutoCreation: boolean; + /** + * enabled if a the ZITADEL account fields are updated automatically on each login + */ + readonly isAutoUpdate: boolean; + /** + * enabled if users are able to create a new account in ZITADEL when using an external account + */ + readonly isCreationAllowed: boolean; + /** + * enabled if users are able to link an existing ZITADEL user with an external account + */ + readonly isLinkingAllowed: boolean; + /** + * The metadata XML as plain string + */ + readonly metadataXml: string; + /** + * Name of the IDP + */ + readonly name: string; + /** + * ID of the organization + */ + readonly orgId?: string; + /** + * Whether the SAML IDP requires signed requests + */ + readonly withSignedRequest: string; +} +/** + * Datasource representing a SAML IdP of the organization. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumi/zitadel"; + * + * const default = zitadel.getOrgIdpSaml({ + * orgId: defaultZitadelOrg.id, + * id: "123456789012345678", + * }); + * ``` + */ +export function getOrgIdpSamlOutput(args: GetOrgIdpSamlOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getOrgIdpSaml(a, opts)) +} + +/** + * A collection of arguments for invoking getOrgIdpSaml. + */ +export interface GetOrgIdpSamlOutputArgs { + /** + * The ID of this resource. + */ + id: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; +} diff --git a/sdk/nodejs/humanUser.ts b/sdk/nodejs/humanUser.ts index 74afcc3..a0cb022 100644 --- a/sdk/nodejs/humanUser.ts +++ b/sdk/nodejs/humanUser.ts @@ -34,7 +34,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. + * bash The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. * * ```sh * $ pulumi import zitadel:index/humanUser:HumanUser imported '123456789012345678:123456789012345678:Password1!' diff --git a/sdk/nodejs/idpAzureAd.ts b/sdk/nodejs/idpAzureAd.ts index d542494..cf4f371 100644 --- a/sdk/nodejs/idpAzureAd.ts +++ b/sdk/nodejs/idpAzureAd.ts @@ -34,7 +34,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpAzureAd:IdpAzureAd imported '123456789012345678:12345678-1234-1234-1234-123456789012' diff --git a/sdk/nodejs/idpGithub.ts b/sdk/nodejs/idpGithub.ts index d6ceae8..228d2d3 100644 --- a/sdk/nodejs/idpGithub.ts +++ b/sdk/nodejs/idpGithub.ts @@ -31,7 +31,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpGithub:IdpGithub imported '123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/nodejs/idpGithubEs.ts b/sdk/nodejs/idpGithubEs.ts index eb1c05d..31503fa 100644 --- a/sdk/nodejs/idpGithubEs.ts +++ b/sdk/nodejs/idpGithubEs.ts @@ -34,7 +34,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpGithubEs:IdpGithubEs imported '123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/nodejs/idpGitlab.ts b/sdk/nodejs/idpGitlab.ts index e1f2550..4589fa5 100644 --- a/sdk/nodejs/idpGitlab.ts +++ b/sdk/nodejs/idpGitlab.ts @@ -31,7 +31,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpGitlab:IdpGitlab imported '123456789012345678:1234567890abcdef' diff --git a/sdk/nodejs/idpGitlabSelfHosted.ts b/sdk/nodejs/idpGitlabSelfHosted.ts index c2eba8c..c2051ae 100644 --- a/sdk/nodejs/idpGitlabSelfHosted.ts +++ b/sdk/nodejs/idpGitlabSelfHosted.ts @@ -32,7 +32,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted imported '123456789012345678:1234567890abcdef' diff --git a/sdk/nodejs/idpGoogle.ts b/sdk/nodejs/idpGoogle.ts index ead9473..2f25f31 100644 --- a/sdk/nodejs/idpGoogle.ts +++ b/sdk/nodejs/idpGoogle.ts @@ -31,7 +31,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpGoogle:IdpGoogle imported '123456789012345678:G1234567890123' diff --git a/sdk/nodejs/idpLdap.ts b/sdk/nodejs/idpLdap.ts index 9a5c1fe..d7f5a41 100644 --- a/sdk/nodejs/idpLdap.ts +++ b/sdk/nodejs/idpLdap.ts @@ -42,7 +42,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/idpLdap:IdpLdap imported '123456789012345678:b1nd_p4ssw0rd' diff --git a/sdk/nodejs/idpOauth.ts b/sdk/nodejs/idpOauth.ts new file mode 100644 index 0000000..2ad4b08 --- /dev/null +++ b/sdk/nodejs/idpOauth.ts @@ -0,0 +1,304 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Resource representing a generic OAuth2 IDP on the instance. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumiverse/zitadel"; + * + * const _default = new zitadel.IdpOauth("default", { + * name: "GitLab", + * clientId: "15765e...", + * clientSecret: "*****abcxyz", + * authorizationEndpoint: "https://accounts.google.com/o/oauth2/v2/auth", + * tokenEndpoint: "https://oauth2.googleapis.com/token", + * userEndpoint: "https://openidconnect.googleapis.com/v1/userinfo", + * idAttribute: "user_id", + * scopes: [ + * "openid", + * "profile", + * "email", + * ], + * isLinkingAllowed: false, + * isCreationAllowed: true, + * isAutoCreation: false, + * isAutoUpdate: true, + * }); + * ``` + * + * ## Import + * + * bash The resource can be imported using the ID format ``, e.g. + * + * ```sh + * $ pulumi import zitadel:index/idpOauth:IdpOauth imported '123456789012345678:1234567890abcdef' + * ``` + */ +export class IdpOauth extends pulumi.CustomResource { + /** + * Get an existing IdpOauth resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: IdpOauthState, opts?: pulumi.CustomResourceOptions): IdpOauth { + return new IdpOauth(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'zitadel:index/idpOauth:IdpOauth'; + + /** + * Returns true if the given object is an instance of IdpOauth. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is IdpOauth { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === IdpOauth.__pulumiType; + } + + /** + * The authorization endpoint + */ + public readonly authorizationEndpoint!: pulumi.Output; + /** + * client id generated by the identity provider + */ + public readonly clientId!: pulumi.Output; + /** + * client secret generated by the identity provider + */ + public readonly clientSecret!: pulumi.Output; + /** + * The id attribute + */ + public readonly idAttribute!: pulumi.Output; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + public readonly isAutoCreation!: pulumi.Output; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + public readonly isAutoUpdate!: pulumi.Output; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + public readonly isCreationAllowed!: pulumi.Output; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + public readonly isLinkingAllowed!: pulumi.Output; + /** + * Name of the IDP + */ + public readonly name!: pulumi.Output; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + public readonly scopes!: pulumi.Output; + /** + * The token endpoint + */ + public readonly tokenEndpoint!: pulumi.Output; + /** + * The user endpoint + */ + public readonly userEndpoint!: pulumi.Output; + + /** + * Create a IdpOauth resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: IdpOauthArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: IdpOauthArgs | IdpOauthState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as IdpOauthState | undefined; + resourceInputs["authorizationEndpoint"] = state ? state.authorizationEndpoint : undefined; + resourceInputs["clientId"] = state ? state.clientId : undefined; + resourceInputs["clientSecret"] = state ? state.clientSecret : undefined; + resourceInputs["idAttribute"] = state ? state.idAttribute : undefined; + resourceInputs["isAutoCreation"] = state ? state.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = state ? state.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = state ? state.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = state ? state.isLinkingAllowed : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["scopes"] = state ? state.scopes : undefined; + resourceInputs["tokenEndpoint"] = state ? state.tokenEndpoint : undefined; + resourceInputs["userEndpoint"] = state ? state.userEndpoint : undefined; + } else { + const args = argsOrState as IdpOauthArgs | undefined; + if ((!args || args.authorizationEndpoint === undefined) && !opts.urn) { + throw new Error("Missing required property 'authorizationEndpoint'"); + } + if ((!args || args.clientId === undefined) && !opts.urn) { + throw new Error("Missing required property 'clientId'"); + } + if ((!args || args.clientSecret === undefined) && !opts.urn) { + throw new Error("Missing required property 'clientSecret'"); + } + if ((!args || args.idAttribute === undefined) && !opts.urn) { + throw new Error("Missing required property 'idAttribute'"); + } + if ((!args || args.isAutoCreation === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoCreation'"); + } + if ((!args || args.isAutoUpdate === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoUpdate'"); + } + if ((!args || args.isCreationAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isCreationAllowed'"); + } + if ((!args || args.isLinkingAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isLinkingAllowed'"); + } + if ((!args || args.tokenEndpoint === undefined) && !opts.urn) { + throw new Error("Missing required property 'tokenEndpoint'"); + } + if ((!args || args.userEndpoint === undefined) && !opts.urn) { + throw new Error("Missing required property 'userEndpoint'"); + } + resourceInputs["authorizationEndpoint"] = args ? args.authorizationEndpoint : undefined; + resourceInputs["clientId"] = args ? args.clientId : undefined; + resourceInputs["clientSecret"] = args?.clientSecret ? pulumi.secret(args.clientSecret) : undefined; + resourceInputs["idAttribute"] = args ? args.idAttribute : undefined; + resourceInputs["isAutoCreation"] = args ? args.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = args ? args.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = args ? args.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = args ? args.isLinkingAllowed : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["scopes"] = args ? args.scopes : undefined; + resourceInputs["tokenEndpoint"] = args ? args.tokenEndpoint : undefined; + resourceInputs["userEndpoint"] = args ? args.userEndpoint : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["clientSecret"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(IdpOauth.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering IdpOauth resources. + */ +export interface IdpOauthState { + /** + * The authorization endpoint + */ + authorizationEndpoint?: pulumi.Input; + /** + * client id generated by the identity provider + */ + clientId?: pulumi.Input; + /** + * client secret generated by the identity provider + */ + clientSecret?: pulumi.Input; + /** + * The id attribute + */ + idAttribute?: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation?: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate?: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed?: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed?: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + scopes?: pulumi.Input[]>; + /** + * The token endpoint + */ + tokenEndpoint?: pulumi.Input; + /** + * The user endpoint + */ + userEndpoint?: pulumi.Input; +} + +/** + * The set of arguments for constructing a IdpOauth resource. + */ +export interface IdpOauthArgs { + /** + * The authorization endpoint + */ + authorizationEndpoint: pulumi.Input; + /** + * client id generated by the identity provider + */ + clientId: pulumi.Input; + /** + * client secret generated by the identity provider + */ + clientSecret: pulumi.Input; + /** + * The id attribute + */ + idAttribute: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + scopes?: pulumi.Input[]>; + /** + * The token endpoint + */ + tokenEndpoint: pulumi.Input; + /** + * The user endpoint + */ + userEndpoint: pulumi.Input; +} diff --git a/sdk/nodejs/idpSaml.ts b/sdk/nodejs/idpSaml.ts new file mode 100644 index 0000000..1168632 --- /dev/null +++ b/sdk/nodejs/idpSaml.ts @@ -0,0 +1,260 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Resource representing a SAML IDP on the instance. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumiverse/zitadel"; + * + * const _default = new zitadel.IdpSaml("default", { + * name: "LDAP", + * binding: "SAML_BINDING_POST", + * withSignedRequest: true, + * isLinkingAllowed: false, + * isCreationAllowed: true, + * isAutoCreation: false, + * isAutoUpdate: true, + * metadataXml: ` + * + * + * + * + * + * MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + * SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + * MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + * DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + * ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + * RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + * 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + * pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + * 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + * NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + * AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + * 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + * khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + * UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + * r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + * m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== + * + * + * + * urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + * + * + * + * + * `, + * }); + * ``` + * ## Loading the XML Metadata + * + * If you don't want to pass the XML metadata inline, you have plenty of options. For example: + * - localFile Data Source + * - http Data Source + * - terracurlRequest Data Source + * - ... + * + * ## Import + * + * bash The resource can be imported using the ID format ``, e.g. + * + * ```sh + * $ pulumi import zitadel:index/idpSaml:IdpSaml imported '123456789012345678' + * ``` + */ +export class IdpSaml extends pulumi.CustomResource { + /** + * Get an existing IdpSaml resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: IdpSamlState, opts?: pulumi.CustomResourceOptions): IdpSaml { + return new IdpSaml(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'zitadel:index/idpSaml:IdpSaml'; + + /** + * Returns true if the given object is an instance of IdpSaml. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is IdpSaml { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === IdpSaml.__pulumiType; + } + + /** + * The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + */ + public readonly binding!: pulumi.Output; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + public readonly isAutoCreation!: pulumi.Output; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + public readonly isAutoUpdate!: pulumi.Output; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + public readonly isCreationAllowed!: pulumi.Output; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + public readonly isLinkingAllowed!: pulumi.Output; + /** + * The metadata XML as plain string + */ + public readonly metadataXml!: pulumi.Output; + /** + * Name of the IDP + */ + public readonly name!: pulumi.Output; + /** + * Whether the SAML IDP requires signed requests + */ + public readonly withSignedRequest!: pulumi.Output; + + /** + * Create a IdpSaml resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: IdpSamlArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: IdpSamlArgs | IdpSamlState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as IdpSamlState | undefined; + resourceInputs["binding"] = state ? state.binding : undefined; + resourceInputs["isAutoCreation"] = state ? state.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = state ? state.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = state ? state.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = state ? state.isLinkingAllowed : undefined; + resourceInputs["metadataXml"] = state ? state.metadataXml : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["withSignedRequest"] = state ? state.withSignedRequest : undefined; + } else { + const args = argsOrState as IdpSamlArgs | undefined; + if ((!args || args.isAutoCreation === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoCreation'"); + } + if ((!args || args.isAutoUpdate === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoUpdate'"); + } + if ((!args || args.isCreationAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isCreationAllowed'"); + } + if ((!args || args.isLinkingAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isLinkingAllowed'"); + } + if ((!args || args.metadataXml === undefined) && !opts.urn) { + throw new Error("Missing required property 'metadataXml'"); + } + resourceInputs["binding"] = args ? args.binding : undefined; + resourceInputs["isAutoCreation"] = args ? args.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = args ? args.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = args ? args.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = args ? args.isLinkingAllowed : undefined; + resourceInputs["metadataXml"] = args ? args.metadataXml : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["withSignedRequest"] = args ? args.withSignedRequest : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(IdpSaml.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering IdpSaml resources. + */ +export interface IdpSamlState { + /** + * The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + */ + binding?: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation?: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate?: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed?: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed?: pulumi.Input; + /** + * The metadata XML as plain string + */ + metadataXml?: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * Whether the SAML IDP requires signed requests + */ + withSignedRequest?: pulumi.Input; +} + +/** + * The set of arguments for constructing a IdpSaml resource. + */ +export interface IdpSamlArgs { + /** + * The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + */ + binding?: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed: pulumi.Input; + /** + * The metadata XML as plain string + */ + metadataXml: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * Whether the SAML IDP requires signed requests + */ + withSignedRequest?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index e231a15..bf7b113 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -160,6 +160,16 @@ export const getIdpLdap: typeof import("./getIdpLdap").getIdpLdap = null as any; export const getIdpLdapOutput: typeof import("./getIdpLdap").getIdpLdapOutput = null as any; utilities.lazyLoad(exports, ["getIdpLdap","getIdpLdapOutput"], () => require("./getIdpLdap")); +export { GetIdpOauthArgs, GetIdpOauthResult, GetIdpOauthOutputArgs } from "./getIdpOauth"; +export const getIdpOauth: typeof import("./getIdpOauth").getIdpOauth = null as any; +export const getIdpOauthOutput: typeof import("./getIdpOauth").getIdpOauthOutput = null as any; +utilities.lazyLoad(exports, ["getIdpOauth","getIdpOauthOutput"], () => require("./getIdpOauth")); + +export { GetIdpSamlArgs, GetIdpSamlResult, GetIdpSamlOutputArgs } from "./getIdpSaml"; +export const getIdpSaml: typeof import("./getIdpSaml").getIdpSaml = null as any; +export const getIdpSamlOutput: typeof import("./getIdpSaml").getIdpSamlOutput = null as any; +utilities.lazyLoad(exports, ["getIdpSaml","getIdpSamlOutput"], () => require("./getIdpSaml")); + export { GetMachineUserArgs, GetMachineUserResult, GetMachineUserOutputArgs } from "./getMachineUser"; export const getMachineUser: typeof import("./getMachineUser").getMachineUser = null as any; export const getMachineUserOutput: typeof import("./getMachineUser").getMachineUserOutput = null as any; @@ -210,6 +220,16 @@ export const getOrgIdpLdap: typeof import("./getOrgIdpLdap").getOrgIdpLdap = nul export const getOrgIdpLdapOutput: typeof import("./getOrgIdpLdap").getOrgIdpLdapOutput = null as any; utilities.lazyLoad(exports, ["getOrgIdpLdap","getOrgIdpLdapOutput"], () => require("./getOrgIdpLdap")); +export { GetOrgIdpOauthArgs, GetOrgIdpOauthResult, GetOrgIdpOauthOutputArgs } from "./getOrgIdpOauth"; +export const getOrgIdpOauth: typeof import("./getOrgIdpOauth").getOrgIdpOauth = null as any; +export const getOrgIdpOauthOutput: typeof import("./getOrgIdpOauth").getOrgIdpOauthOutput = null as any; +utilities.lazyLoad(exports, ["getOrgIdpOauth","getOrgIdpOauthOutput"], () => require("./getOrgIdpOauth")); + +export { GetOrgIdpSamlArgs, GetOrgIdpSamlResult, GetOrgIdpSamlOutputArgs } from "./getOrgIdpSaml"; +export const getOrgIdpSaml: typeof import("./getOrgIdpSaml").getOrgIdpSaml = null as any; +export const getOrgIdpSamlOutput: typeof import("./getOrgIdpSaml").getOrgIdpSamlOutput = null as any; +utilities.lazyLoad(exports, ["getOrgIdpSaml","getOrgIdpSamlOutput"], () => require("./getOrgIdpSaml")); + export { GetOrgJwtIdpArgs, GetOrgJwtIdpResult, GetOrgJwtIdpOutputArgs } from "./getOrgJwtIdp"; export const getOrgJwtIdp: typeof import("./getOrgJwtIdp").getOrgJwtIdp = null as any; export const getOrgJwtIdpOutput: typeof import("./getOrgJwtIdp").getOrgJwtIdpOutput = null as any; @@ -285,6 +305,16 @@ export type IdpLdap = import("./idpLdap").IdpLdap; export const IdpLdap: typeof import("./idpLdap").IdpLdap = null as any; utilities.lazyLoad(exports, ["IdpLdap"], () => require("./idpLdap")); +export { IdpOauthArgs, IdpOauthState } from "./idpOauth"; +export type IdpOauth = import("./idpOauth").IdpOauth; +export const IdpOauth: typeof import("./idpOauth").IdpOauth = null as any; +utilities.lazyLoad(exports, ["IdpOauth"], () => require("./idpOauth")); + +export { IdpSamlArgs, IdpSamlState } from "./idpSaml"; +export type IdpSaml = import("./idpSaml").IdpSaml; +export const IdpSaml: typeof import("./idpSaml").IdpSaml = null as any; +utilities.lazyLoad(exports, ["IdpSaml"], () => require("./idpSaml")); + export { InstanceMemberArgs, InstanceMemberState } from "./instanceMember"; export type InstanceMember = import("./instanceMember").InstanceMember; export const InstanceMember: typeof import("./instanceMember").InstanceMember = null as any; @@ -365,16 +395,31 @@ export type OrgIdpLdap = import("./orgIdpLdap").OrgIdpLdap; export const OrgIdpLdap: typeof import("./orgIdpLdap").OrgIdpLdap = null as any; utilities.lazyLoad(exports, ["OrgIdpLdap"], () => require("./orgIdpLdap")); +export { OrgIdpOauthArgs, OrgIdpOauthState } from "./orgIdpOauth"; +export type OrgIdpOauth = import("./orgIdpOauth").OrgIdpOauth; +export const OrgIdpOauth: typeof import("./orgIdpOauth").OrgIdpOauth = null as any; +utilities.lazyLoad(exports, ["OrgIdpOauth"], () => require("./orgIdpOauth")); + export { OrgIdpOidcArgs, OrgIdpOidcState } from "./orgIdpOidc"; export type OrgIdpOidc = import("./orgIdpOidc").OrgIdpOidc; export const OrgIdpOidc: typeof import("./orgIdpOidc").OrgIdpOidc = null as any; utilities.lazyLoad(exports, ["OrgIdpOidc"], () => require("./orgIdpOidc")); +export { OrgIdpSamlArgs, OrgIdpSamlState } from "./orgIdpSaml"; +export type OrgIdpSaml = import("./orgIdpSaml").OrgIdpSaml; +export const OrgIdpSaml: typeof import("./orgIdpSaml").OrgIdpSaml = null as any; +utilities.lazyLoad(exports, ["OrgIdpSaml"], () => require("./orgIdpSaml")); + export { OrgMemberArgs, OrgMemberState } from "./orgMember"; export type OrgMember = import("./orgMember").OrgMember; export const OrgMember: typeof import("./orgMember").OrgMember = null as any; utilities.lazyLoad(exports, ["OrgMember"], () => require("./orgMember")); +export { OrgMetadataArgs, OrgMetadataState } from "./orgMetadata"; +export type OrgMetadata = import("./orgMetadata").OrgMetadata; +export const OrgMetadata: typeof import("./orgMetadata").OrgMetadata = null as any; +utilities.lazyLoad(exports, ["OrgMetadata"], () => require("./orgMetadata")); + export { PasswordComplexityPolicyArgs, PasswordComplexityPolicyState } from "./passwordComplexityPolicy"; export type PasswordComplexityPolicy = import("./passwordComplexityPolicy").PasswordComplexityPolicy; export const PasswordComplexityPolicy: typeof import("./passwordComplexityPolicy").PasswordComplexityPolicy = null as any; @@ -440,6 +485,11 @@ export type UserGrant = import("./userGrant").UserGrant; export const UserGrant: typeof import("./userGrant").UserGrant = null as any; utilities.lazyLoad(exports, ["UserGrant"], () => require("./userGrant")); +export { UserMetadataArgs, UserMetadataState } from "./userMetadata"; +export type UserMetadata = import("./userMetadata").UserMetadata; +export const UserMetadata: typeof import("./userMetadata").UserMetadata = null as any; +utilities.lazyLoad(exports, ["UserMetadata"], () => require("./userMetadata")); + // Export sub-modules: import * as config from "./config"; @@ -498,6 +548,10 @@ const _module = { return new IdpGoogle(name, undefined, { urn }) case "zitadel:index/idpLdap:IdpLdap": return new IdpLdap(name, undefined, { urn }) + case "zitadel:index/idpOauth:IdpOauth": + return new IdpOauth(name, undefined, { urn }) + case "zitadel:index/idpSaml:IdpSaml": + return new IdpSaml(name, undefined, { urn }) case "zitadel:index/instanceMember:InstanceMember": return new InstanceMember(name, undefined, { urn }) case "zitadel:index/labelPolicy:LabelPolicy": @@ -530,10 +584,16 @@ const _module = { return new OrgIdpJwt(name, undefined, { urn }) case "zitadel:index/orgIdpLdap:OrgIdpLdap": return new OrgIdpLdap(name, undefined, { urn }) + case "zitadel:index/orgIdpOauth:OrgIdpOauth": + return new OrgIdpOauth(name, undefined, { urn }) case "zitadel:index/orgIdpOidc:OrgIdpOidc": return new OrgIdpOidc(name, undefined, { urn }) + case "zitadel:index/orgIdpSaml:OrgIdpSaml": + return new OrgIdpSaml(name, undefined, { urn }) case "zitadel:index/orgMember:OrgMember": return new OrgMember(name, undefined, { urn }) + case "zitadel:index/orgMetadata:OrgMetadata": + return new OrgMetadata(name, undefined, { urn }) case "zitadel:index/passwordComplexityPolicy:PasswordComplexityPolicy": return new PasswordComplexityPolicy(name, undefined, { urn }) case "zitadel:index/personalAccessToken:PersonalAccessToken": @@ -558,6 +618,8 @@ const _module = { return new TriggerActions(name, undefined, { urn }) case "zitadel:index/userGrant:UserGrant": return new UserGrant(name, undefined, { urn }) + case "zitadel:index/userMetadata:UserMetadata": + return new UserMetadata(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } @@ -586,6 +648,8 @@ pulumi.runtime.registerResourceModule("zitadel", "index/idpGitlab", _module) pulumi.runtime.registerResourceModule("zitadel", "index/idpGitlabSelfHosted", _module) pulumi.runtime.registerResourceModule("zitadel", "index/idpGoogle", _module) pulumi.runtime.registerResourceModule("zitadel", "index/idpLdap", _module) +pulumi.runtime.registerResourceModule("zitadel", "index/idpOauth", _module) +pulumi.runtime.registerResourceModule("zitadel", "index/idpSaml", _module) pulumi.runtime.registerResourceModule("zitadel", "index/instanceMember", _module) pulumi.runtime.registerResourceModule("zitadel", "index/labelPolicy", _module) pulumi.runtime.registerResourceModule("zitadel", "index/lockoutPolicy", _module) @@ -602,8 +666,11 @@ pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpGitlabSelfHosted", pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpGoogle", _module) pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpJwt", _module) pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpLdap", _module) +pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpOauth", _module) pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpOidc", _module) +pulumi.runtime.registerResourceModule("zitadel", "index/orgIdpSaml", _module) pulumi.runtime.registerResourceModule("zitadel", "index/orgMember", _module) +pulumi.runtime.registerResourceModule("zitadel", "index/orgMetadata", _module) pulumi.runtime.registerResourceModule("zitadel", "index/passwordComplexityPolicy", _module) pulumi.runtime.registerResourceModule("zitadel", "index/personalAccessToken", _module) pulumi.runtime.registerResourceModule("zitadel", "index/privacyPolicy", _module) @@ -616,6 +683,7 @@ pulumi.runtime.registerResourceModule("zitadel", "index/smsProviderTwilio", _mod pulumi.runtime.registerResourceModule("zitadel", "index/smtpConfig", _module) pulumi.runtime.registerResourceModule("zitadel", "index/triggerActions", _module) pulumi.runtime.registerResourceModule("zitadel", "index/userGrant", _module) +pulumi.runtime.registerResourceModule("zitadel", "index/userMetadata", _module) pulumi.runtime.registerResourcePackage("zitadel", { version: utilities.getVersion(), constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => { diff --git a/sdk/nodejs/instanceMember.ts b/sdk/nodejs/instanceMember.ts index 1b9e7d6..1968d1e 100644 --- a/sdk/nodejs/instanceMember.ts +++ b/sdk/nodejs/instanceMember.ts @@ -21,7 +21,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/instanceMember:InstanceMember imported '123456789012345678' diff --git a/sdk/nodejs/labelPolicy.ts b/sdk/nodejs/labelPolicy.ts index 70a8908..5ee8798 100644 --- a/sdk/nodejs/labelPolicy.ts +++ b/sdk/nodejs/labelPolicy.ts @@ -9,7 +9,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + * bash The resource can be imported using the ID format `<[org_id]>`, e.g. * * ```sh * $ pulumi import zitadel:index/labelPolicy:LabelPolicy imported '123456789012345678' @@ -98,6 +98,10 @@ export class LabelPolicy extends pulumi.CustomResource { * set the label policy active after creating/updating */ public readonly setActive!: pulumi.Output; + /** + * theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + */ + public readonly themeMode!: pulumi.Output; /** * hex value for warn color */ @@ -145,6 +149,7 @@ export class LabelPolicy extends pulumi.CustomResource { resourceInputs["primaryColor"] = state ? state.primaryColor : undefined; resourceInputs["primaryColorDark"] = state ? state.primaryColorDark : undefined; resourceInputs["setActive"] = state ? state.setActive : undefined; + resourceInputs["themeMode"] = state ? state.themeMode : undefined; resourceInputs["warnColor"] = state ? state.warnColor : undefined; resourceInputs["warnColorDark"] = state ? state.warnColorDark : undefined; } else { @@ -199,6 +204,7 @@ export class LabelPolicy extends pulumi.CustomResource { resourceInputs["primaryColor"] = args ? args.primaryColor : undefined; resourceInputs["primaryColorDark"] = args ? args.primaryColorDark : undefined; resourceInputs["setActive"] = args ? args.setActive : undefined; + resourceInputs["themeMode"] = args ? args.themeMode : undefined; resourceInputs["warnColor"] = args ? args.warnColor : undefined; resourceInputs["warnColorDark"] = args ? args.warnColorDark : undefined; resourceInputs["fontUrl"] = undefined /*out*/; @@ -271,6 +277,10 @@ export interface LabelPolicyState { * set the label policy active after creating/updating */ setActive?: pulumi.Input; + /** + * theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + */ + themeMode?: pulumi.Input; /** * hex value for warn color */ @@ -335,6 +345,10 @@ export interface LabelPolicyArgs { * set the label policy active after creating/updating */ setActive?: pulumi.Input; + /** + * theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + */ + themeMode?: pulumi.Input; /** * hex value for warn color */ diff --git a/sdk/nodejs/lockoutPolicy.ts b/sdk/nodejs/lockoutPolicy.ts index e320ccc..29ab37c 100644 --- a/sdk/nodejs/lockoutPolicy.ts +++ b/sdk/nodejs/lockoutPolicy.ts @@ -21,7 +21,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + * bash The resource can be imported using the ID format `<[org_id]>`, e.g. * * ```sh * $ pulumi import zitadel:index/lockoutPolicy:LockoutPolicy imported '123456789012345678' diff --git a/sdk/nodejs/loginPolicy.ts b/sdk/nodejs/loginPolicy.ts index 1d83c3c..8a993ce 100644 --- a/sdk/nodejs/loginPolicy.ts +++ b/sdk/nodejs/loginPolicy.ts @@ -46,7 +46,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + * bash The resource can be imported using the ID format `<[org_id]>`, e.g. * * ```sh * $ pulumi import zitadel:index/loginPolicy:LoginPolicy imported '123456789012345678' diff --git a/sdk/nodejs/machineKey.ts b/sdk/nodejs/machineKey.ts index 85efa3c..a67dddf 100644 --- a/sdk/nodejs/machineKey.ts +++ b/sdk/nodejs/machineKey.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/machineKey:MachineKey imported '123456789012345678:123456789012345678:123456789012345678:{"type":"serviceaccount","keyId":"123456789012345678","key":"-----BEGIN RSA PRIVATE KEY-----\nMIIEpQ...-----END RSA PRIVATE KEY-----\n","userId":"123456789012345678"}' diff --git a/sdk/nodejs/machineUser.ts b/sdk/nodejs/machineUser.ts index 6e6e4e6..625c7ba 100644 --- a/sdk/nodejs/machineUser.ts +++ b/sdk/nodejs/machineUser.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/machineUser:MachineUser imported '123456789012345678:123456789012345678:true:my-machine-user:j76mh34CHVrGGoXPQOg80lch67FIxwc2qIXjBkZoB6oMbf31eGMkB6bvRyaPjR2t' diff --git a/sdk/nodejs/notificationPolicy.ts b/sdk/nodejs/notificationPolicy.ts index 3d624a9..b5960d7 100644 --- a/sdk/nodejs/notificationPolicy.ts +++ b/sdk/nodejs/notificationPolicy.ts @@ -21,7 +21,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + * bash The resource can be imported using the ID format `<[org_id]>`, e.g. * * ```sh * $ pulumi import zitadel:index/notificationPolicy:NotificationPolicy imported '123456789012345678' diff --git a/sdk/nodejs/org.ts b/sdk/nodejs/org.ts index aa37963..4fecceb 100644 --- a/sdk/nodejs/org.ts +++ b/sdk/nodejs/org.ts @@ -18,7 +18,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/org:Org imported '123456789012345678' diff --git a/sdk/nodejs/orgIdpAzureAd.ts b/sdk/nodejs/orgIdpAzureAd.ts index 67f3aec..1c36201 100644 --- a/sdk/nodejs/orgIdpAzureAd.ts +++ b/sdk/nodejs/orgIdpAzureAd.ts @@ -35,7 +35,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpAzureAd:OrgIdpAzureAd imported '123456789012345678:123456789012345678:12345678-1234-1234-1234-123456789012' diff --git a/sdk/nodejs/orgIdpGithub.ts b/sdk/nodejs/orgIdpGithub.ts index 3f45601..378bb97 100644 --- a/sdk/nodejs/orgIdpGithub.ts +++ b/sdk/nodejs/orgIdpGithub.ts @@ -32,7 +32,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpGithub:OrgIdpGithub imported '123456789012345678:123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/nodejs/orgIdpGithubEs.ts b/sdk/nodejs/orgIdpGithubEs.ts index 11a4752..646228d 100644 --- a/sdk/nodejs/orgIdpGithubEs.ts +++ b/sdk/nodejs/orgIdpGithubEs.ts @@ -35,7 +35,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpGithubEs:OrgIdpGithubEs imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/nodejs/orgIdpGitlab.ts b/sdk/nodejs/orgIdpGitlab.ts index bc6e03f..4d29247 100644 --- a/sdk/nodejs/orgIdpGitlab.ts +++ b/sdk/nodejs/orgIdpGitlab.ts @@ -32,7 +32,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpGitlab:OrgIdpGitlab imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/nodejs/orgIdpGitlabSelfHosted.ts b/sdk/nodejs/orgIdpGitlabSelfHosted.ts index cd4a8cf..d1566c3 100644 --- a/sdk/nodejs/orgIdpGitlabSelfHosted.ts +++ b/sdk/nodejs/orgIdpGitlabSelfHosted.ts @@ -33,7 +33,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/nodejs/orgIdpGoogle.ts b/sdk/nodejs/orgIdpGoogle.ts index ab40507..e107ca0 100644 --- a/sdk/nodejs/orgIdpGoogle.ts +++ b/sdk/nodejs/orgIdpGoogle.ts @@ -32,7 +32,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpGoogle:OrgIdpGoogle imported '123456789012345678:123456789012345678:G1234567890123' diff --git a/sdk/nodejs/orgIdpJwt.ts b/sdk/nodejs/orgIdpJwt.ts index ff508c6..d981bc2 100644 --- a/sdk/nodejs/orgIdpJwt.ts +++ b/sdk/nodejs/orgIdpJwt.ts @@ -27,7 +27,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpJwt:OrgIdpJwt imported '123456789012345678:123456789012345678' diff --git a/sdk/nodejs/orgIdpLdap.ts b/sdk/nodejs/orgIdpLdap.ts index 3cc41bc..b0bfaee 100644 --- a/sdk/nodejs/orgIdpLdap.ts +++ b/sdk/nodejs/orgIdpLdap.ts @@ -43,7 +43,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpLdap:OrgIdpLdap imported '123456789012345678:123456789012345678:b1nd_p4ssw0rd' diff --git a/sdk/nodejs/orgIdpOauth.ts b/sdk/nodejs/orgIdpOauth.ts new file mode 100644 index 0000000..e16e63d --- /dev/null +++ b/sdk/nodejs/orgIdpOauth.ts @@ -0,0 +1,319 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Resource representing a generic OAuth2 IDP on the organization. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumiverse/zitadel"; + * + * const _default = new zitadel.OrgIdpOauth("default", { + * orgId: defaultZitadelOrg.id, + * name: "GitLab", + * clientId: "15765e...", + * clientSecret: "*****abcxyz", + * authorizationEndpoint: "https://accounts.google.com/o/oauth2/v2/auth", + * tokenEndpoint: "https://oauth2.googleapis.com/token", + * userEndpoint: "https://openidconnect.googleapis.com/v1/userinfo", + * idAttribute: "user_id", + * scopes: [ + * "openid", + * "profile", + * "email", + * ], + * isLinkingAllowed: false, + * isCreationAllowed: true, + * isAutoCreation: false, + * isAutoUpdate: true, + * }); + * ``` + * + * ## Import + * + * bash The resource can be imported using the ID format ``, e.g. + * + * ```sh + * $ pulumi import zitadel:index/orgIdpOauth:OrgIdpOauth imported '123456789012345678:123456789012345678:1234567890abcdef' + * ``` + */ +export class OrgIdpOauth extends pulumi.CustomResource { + /** + * Get an existing OrgIdpOauth resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: OrgIdpOauthState, opts?: pulumi.CustomResourceOptions): OrgIdpOauth { + return new OrgIdpOauth(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'zitadel:index/orgIdpOauth:OrgIdpOauth'; + + /** + * Returns true if the given object is an instance of OrgIdpOauth. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is OrgIdpOauth { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === OrgIdpOauth.__pulumiType; + } + + /** + * The authorization endpoint + */ + public readonly authorizationEndpoint!: pulumi.Output; + /** + * client id generated by the identity provider + */ + public readonly clientId!: pulumi.Output; + /** + * client secret generated by the identity provider + */ + public readonly clientSecret!: pulumi.Output; + /** + * The id attribute + */ + public readonly idAttribute!: pulumi.Output; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + public readonly isAutoCreation!: pulumi.Output; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + public readonly isAutoUpdate!: pulumi.Output; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + public readonly isCreationAllowed!: pulumi.Output; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + public readonly isLinkingAllowed!: pulumi.Output; + /** + * Name of the IDP + */ + public readonly name!: pulumi.Output; + /** + * ID of the organization + */ + public readonly orgId!: pulumi.Output; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + public readonly scopes!: pulumi.Output; + /** + * The token endpoint + */ + public readonly tokenEndpoint!: pulumi.Output; + /** + * The user endpoint + */ + public readonly userEndpoint!: pulumi.Output; + + /** + * Create a OrgIdpOauth resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: OrgIdpOauthArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: OrgIdpOauthArgs | OrgIdpOauthState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as OrgIdpOauthState | undefined; + resourceInputs["authorizationEndpoint"] = state ? state.authorizationEndpoint : undefined; + resourceInputs["clientId"] = state ? state.clientId : undefined; + resourceInputs["clientSecret"] = state ? state.clientSecret : undefined; + resourceInputs["idAttribute"] = state ? state.idAttribute : undefined; + resourceInputs["isAutoCreation"] = state ? state.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = state ? state.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = state ? state.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = state ? state.isLinkingAllowed : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["orgId"] = state ? state.orgId : undefined; + resourceInputs["scopes"] = state ? state.scopes : undefined; + resourceInputs["tokenEndpoint"] = state ? state.tokenEndpoint : undefined; + resourceInputs["userEndpoint"] = state ? state.userEndpoint : undefined; + } else { + const args = argsOrState as OrgIdpOauthArgs | undefined; + if ((!args || args.authorizationEndpoint === undefined) && !opts.urn) { + throw new Error("Missing required property 'authorizationEndpoint'"); + } + if ((!args || args.clientId === undefined) && !opts.urn) { + throw new Error("Missing required property 'clientId'"); + } + if ((!args || args.clientSecret === undefined) && !opts.urn) { + throw new Error("Missing required property 'clientSecret'"); + } + if ((!args || args.idAttribute === undefined) && !opts.urn) { + throw new Error("Missing required property 'idAttribute'"); + } + if ((!args || args.isAutoCreation === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoCreation'"); + } + if ((!args || args.isAutoUpdate === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoUpdate'"); + } + if ((!args || args.isCreationAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isCreationAllowed'"); + } + if ((!args || args.isLinkingAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isLinkingAllowed'"); + } + if ((!args || args.tokenEndpoint === undefined) && !opts.urn) { + throw new Error("Missing required property 'tokenEndpoint'"); + } + if ((!args || args.userEndpoint === undefined) && !opts.urn) { + throw new Error("Missing required property 'userEndpoint'"); + } + resourceInputs["authorizationEndpoint"] = args ? args.authorizationEndpoint : undefined; + resourceInputs["clientId"] = args ? args.clientId : undefined; + resourceInputs["clientSecret"] = args?.clientSecret ? pulumi.secret(args.clientSecret) : undefined; + resourceInputs["idAttribute"] = args ? args.idAttribute : undefined; + resourceInputs["isAutoCreation"] = args ? args.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = args ? args.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = args ? args.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = args ? args.isLinkingAllowed : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["orgId"] = args ? args.orgId : undefined; + resourceInputs["scopes"] = args ? args.scopes : undefined; + resourceInputs["tokenEndpoint"] = args ? args.tokenEndpoint : undefined; + resourceInputs["userEndpoint"] = args ? args.userEndpoint : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["clientSecret"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(OrgIdpOauth.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering OrgIdpOauth resources. + */ +export interface OrgIdpOauthState { + /** + * The authorization endpoint + */ + authorizationEndpoint?: pulumi.Input; + /** + * client id generated by the identity provider + */ + clientId?: pulumi.Input; + /** + * client secret generated by the identity provider + */ + clientSecret?: pulumi.Input; + /** + * The id attribute + */ + idAttribute?: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation?: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate?: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed?: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed?: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + scopes?: pulumi.Input[]>; + /** + * The token endpoint + */ + tokenEndpoint?: pulumi.Input; + /** + * The user endpoint + */ + userEndpoint?: pulumi.Input; +} + +/** + * The set of arguments for constructing a OrgIdpOauth resource. + */ +export interface OrgIdpOauthArgs { + /** + * The authorization endpoint + */ + authorizationEndpoint: pulumi.Input; + /** + * client id generated by the identity provider + */ + clientId: pulumi.Input; + /** + * client secret generated by the identity provider + */ + clientSecret: pulumi.Input; + /** + * The id attribute + */ + idAttribute: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * the scopes requested by ZITADEL during the request on the identity provider + */ + scopes?: pulumi.Input[]>; + /** + * The token endpoint + */ + tokenEndpoint: pulumi.Input; + /** + * The user endpoint + */ + userEndpoint: pulumi.Input; +} diff --git a/sdk/nodejs/orgIdpOidc.ts b/sdk/nodejs/orgIdpOidc.ts index 302a322..8209f8a 100644 --- a/sdk/nodejs/orgIdpOidc.ts +++ b/sdk/nodejs/orgIdpOidc.ts @@ -34,7 +34,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgIdpOidc:OrgIdpOidc imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/nodejs/orgIdpSaml.ts b/sdk/nodejs/orgIdpSaml.ts new file mode 100644 index 0000000..119f9f9 --- /dev/null +++ b/sdk/nodejs/orgIdpSaml.ts @@ -0,0 +1,275 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Resource representing a SAML IdP on the organization. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumiverse/zitadel"; + * + * const _default = new zitadel.OrgIdpSaml("default", { + * orgId: defaultZitadelOrg.id, + * name: "LDAP", + * binding: "SAML_BINDING_POST", + * withSignedRequest: true, + * isLinkingAllowed: false, + * isCreationAllowed: true, + * isAutoCreation: false, + * isAutoUpdate: true, + * metadataXml: ` + * + * + * + * + * + * MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + * SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + * MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + * DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + * ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + * RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + * 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + * pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + * 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + * NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + * AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + * 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + * khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + * UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + * r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + * m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== + * + * + * + * urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + * + * + * + * + * `, + * }); + * ``` + * ## Loading the XML Metadata + * + * If you don't want to pass the XML metadata inline, you have plenty of options. For example: + * - localFile Data Source + * - http Data Source + * - terracurlRequest Data Source + * - ... + * + * ## Import + * + * bash The resource can be imported using the ID format ``, e.g. + * + * ```sh + * $ pulumi import zitadel:index/orgIdpSaml:OrgIdpSaml imported '123456789012345678:123456789012345678' + * ``` + */ +export class OrgIdpSaml extends pulumi.CustomResource { + /** + * Get an existing OrgIdpSaml resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: OrgIdpSamlState, opts?: pulumi.CustomResourceOptions): OrgIdpSaml { + return new OrgIdpSaml(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'zitadel:index/orgIdpSaml:OrgIdpSaml'; + + /** + * Returns true if the given object is an instance of OrgIdpSaml. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is OrgIdpSaml { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === OrgIdpSaml.__pulumiType; + } + + /** + * The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + */ + public readonly binding!: pulumi.Output; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + public readonly isAutoCreation!: pulumi.Output; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + public readonly isAutoUpdate!: pulumi.Output; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + public readonly isCreationAllowed!: pulumi.Output; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + public readonly isLinkingAllowed!: pulumi.Output; + /** + * The metadata XML as plain string + */ + public readonly metadataXml!: pulumi.Output; + /** + * Name of the IDP + */ + public readonly name!: pulumi.Output; + /** + * ID of the organization + */ + public readonly orgId!: pulumi.Output; + /** + * Whether the SAML IDP requires signed requests + */ + public readonly withSignedRequest!: pulumi.Output; + + /** + * Create a OrgIdpSaml resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: OrgIdpSamlArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: OrgIdpSamlArgs | OrgIdpSamlState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as OrgIdpSamlState | undefined; + resourceInputs["binding"] = state ? state.binding : undefined; + resourceInputs["isAutoCreation"] = state ? state.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = state ? state.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = state ? state.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = state ? state.isLinkingAllowed : undefined; + resourceInputs["metadataXml"] = state ? state.metadataXml : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["orgId"] = state ? state.orgId : undefined; + resourceInputs["withSignedRequest"] = state ? state.withSignedRequest : undefined; + } else { + const args = argsOrState as OrgIdpSamlArgs | undefined; + if ((!args || args.isAutoCreation === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoCreation'"); + } + if ((!args || args.isAutoUpdate === undefined) && !opts.urn) { + throw new Error("Missing required property 'isAutoUpdate'"); + } + if ((!args || args.isCreationAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isCreationAllowed'"); + } + if ((!args || args.isLinkingAllowed === undefined) && !opts.urn) { + throw new Error("Missing required property 'isLinkingAllowed'"); + } + if ((!args || args.metadataXml === undefined) && !opts.urn) { + throw new Error("Missing required property 'metadataXml'"); + } + resourceInputs["binding"] = args ? args.binding : undefined; + resourceInputs["isAutoCreation"] = args ? args.isAutoCreation : undefined; + resourceInputs["isAutoUpdate"] = args ? args.isAutoUpdate : undefined; + resourceInputs["isCreationAllowed"] = args ? args.isCreationAllowed : undefined; + resourceInputs["isLinkingAllowed"] = args ? args.isLinkingAllowed : undefined; + resourceInputs["metadataXml"] = args ? args.metadataXml : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["orgId"] = args ? args.orgId : undefined; + resourceInputs["withSignedRequest"] = args ? args.withSignedRequest : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(OrgIdpSaml.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering OrgIdpSaml resources. + */ +export interface OrgIdpSamlState { + /** + * The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + */ + binding?: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation?: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate?: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed?: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed?: pulumi.Input; + /** + * The metadata XML as plain string + */ + metadataXml?: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * Whether the SAML IDP requires signed requests + */ + withSignedRequest?: pulumi.Input; +} + +/** + * The set of arguments for constructing a OrgIdpSaml resource. + */ +export interface OrgIdpSamlArgs { + /** + * The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + */ + binding?: pulumi.Input; + /** + * enable if a new account in ZITADEL should be created automatically on login with an external account + */ + isAutoCreation: pulumi.Input; + /** + * enable if a the ZITADEL account fields should be updated automatically on each login + */ + isAutoUpdate: pulumi.Input; + /** + * enable if users should be able to create a new account in ZITADEL when using an external account + */ + isCreationAllowed: pulumi.Input; + /** + * enable if users should be able to link an existing ZITADEL user with an external account + */ + isLinkingAllowed: pulumi.Input; + /** + * The metadata XML as plain string + */ + metadataXml: pulumi.Input; + /** + * Name of the IDP + */ + name?: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * Whether the SAML IDP requires signed requests + */ + withSignedRequest?: pulumi.Input; +} diff --git a/sdk/nodejs/orgMember.ts b/sdk/nodejs/orgMember.ts index 83df9bd..1d9a72c 100644 --- a/sdk/nodejs/orgMember.ts +++ b/sdk/nodejs/orgMember.ts @@ -22,7 +22,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/orgMember:OrgMember imported '123456789012345678:123456789012345678' diff --git a/sdk/nodejs/orgMetadata.ts b/sdk/nodejs/orgMetadata.ts new file mode 100644 index 0000000..5f84afc --- /dev/null +++ b/sdk/nodejs/orgMetadata.ts @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumiverse/zitadel"; + * + * const _default = new zitadel.OrgMetadata("default", { + * orgId: defaultZitadelOrg.id, + * key: "a_key", + * value: "a_value", + * }); + * ``` + * + * ## Import + * + * bash The resource can be imported using the ID format ``, e.g. + * + * ```sh + * $ pulumi import zitadel:index/orgMetadata:OrgMetadata imported 'a_key:123456789012345678' + * ``` + */ +export class OrgMetadata extends pulumi.CustomResource { + /** + * Get an existing OrgMetadata resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: OrgMetadataState, opts?: pulumi.CustomResourceOptions): OrgMetadata { + return new OrgMetadata(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'zitadel:index/orgMetadata:OrgMetadata'; + + /** + * Returns true if the given object is an instance of OrgMetadata. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is OrgMetadata { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === OrgMetadata.__pulumiType; + } + + /** + * The key of a metadata entry + */ + public readonly key!: pulumi.Output; + /** + * ID of the organization + */ + public readonly orgId!: pulumi.Output; + /** + * The string representation of a metadata entry value. For binary data, use the base64encode function. + */ + public readonly value!: pulumi.Output; + + /** + * Create a OrgMetadata resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: OrgMetadataArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: OrgMetadataArgs | OrgMetadataState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as OrgMetadataState | undefined; + resourceInputs["key"] = state ? state.key : undefined; + resourceInputs["orgId"] = state ? state.orgId : undefined; + resourceInputs["value"] = state ? state.value : undefined; + } else { + const args = argsOrState as OrgMetadataArgs | undefined; + if ((!args || args.key === undefined) && !opts.urn) { + throw new Error("Missing required property 'key'"); + } + if ((!args || args.value === undefined) && !opts.urn) { + throw new Error("Missing required property 'value'"); + } + resourceInputs["key"] = args ? args.key : undefined; + resourceInputs["orgId"] = args ? args.orgId : undefined; + resourceInputs["value"] = args ? args.value : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(OrgMetadata.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering OrgMetadata resources. + */ +export interface OrgMetadataState { + /** + * The key of a metadata entry + */ + key?: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * The string representation of a metadata entry value. For binary data, use the base64encode function. + */ + value?: pulumi.Input; +} + +/** + * The set of arguments for constructing a OrgMetadata resource. + */ +export interface OrgMetadataArgs { + /** + * The key of a metadata entry + */ + key: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * The string representation of a metadata entry value. For binary data, use the base64encode function. + */ + value: pulumi.Input; +} diff --git a/sdk/nodejs/personalAccessToken.ts b/sdk/nodejs/personalAccessToken.ts index 6a869c9..9274b7c 100644 --- a/sdk/nodejs/personalAccessToken.ts +++ b/sdk/nodejs/personalAccessToken.ts @@ -22,7 +22,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/personalAccessToken:PersonalAccessToken imported '123456789012345678:123456789012345678:123456789012345678:LHt79...' diff --git a/sdk/nodejs/privacyPolicy.ts b/sdk/nodejs/privacyPolicy.ts index 61c28ae..212cc75 100644 --- a/sdk/nodejs/privacyPolicy.ts +++ b/sdk/nodejs/privacyPolicy.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + * bash The resource can be imported using the ID format `<[org_id]>`, e.g. * * ```sh * $ pulumi import zitadel:index/privacyPolicy:PrivacyPolicy imported '123456789012345678' diff --git a/sdk/nodejs/project.ts b/sdk/nodejs/project.ts index 0701d1f..7bcd2bf 100644 --- a/sdk/nodejs/project.ts +++ b/sdk/nodejs/project.ts @@ -25,7 +25,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/project:Project imported '123456789012345678:123456789012345678' diff --git a/sdk/nodejs/projectGrant.ts b/sdk/nodejs/projectGrant.ts index 097b66b..57b844b 100644 --- a/sdk/nodejs/projectGrant.ts +++ b/sdk/nodejs/projectGrant.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/projectGrant:ProjectGrant imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/nodejs/projectGrantMember.ts b/sdk/nodejs/projectGrantMember.ts index 337ce51..5bb142e 100644 --- a/sdk/nodejs/projectGrantMember.ts +++ b/sdk/nodejs/projectGrantMember.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/projectGrantMember:ProjectGrantMember imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/nodejs/projectMember.ts b/sdk/nodejs/projectMember.ts index eb84e78..ee28254 100644 --- a/sdk/nodejs/projectMember.ts +++ b/sdk/nodejs/projectMember.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/projectMember:ProjectMember imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/nodejs/projectRole.ts b/sdk/nodejs/projectRole.ts index 24f25df..ed94755 100644 --- a/sdk/nodejs/projectRole.ts +++ b/sdk/nodejs/projectRole.ts @@ -24,7 +24,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/projectRole:ProjectRole imported '123456789012345678:my-role-key:123456789012345678' diff --git a/sdk/nodejs/smsProviderTwilio.ts b/sdk/nodejs/smsProviderTwilio.ts index 1101ecc..a408b28 100644 --- a/sdk/nodejs/smsProviderTwilio.ts +++ b/sdk/nodejs/smsProviderTwilio.ts @@ -22,7 +22,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/smsProviderTwilio:SmsProviderTwilio imported '123456789012345678:12345678901234567890123456abcdef' diff --git a/sdk/nodejs/smtpConfig.ts b/sdk/nodejs/smtpConfig.ts index 440c4a6..f7cdaef 100644 --- a/sdk/nodejs/smtpConfig.ts +++ b/sdk/nodejs/smtpConfig.ts @@ -26,7 +26,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format `<[password]>`, e.g. + * bash The resource can be imported using the ID format `<[password]>`, e.g. * * ```sh * $ pulumi import zitadel:index/smtpConfig:SmtpConfig imported 'p4ssw0rd' diff --git a/sdk/nodejs/triggerActions.ts b/sdk/nodejs/triggerActions.ts index 978022e..829d19c 100644 --- a/sdk/nodejs/triggerActions.ts +++ b/sdk/nodejs/triggerActions.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/triggerActions:TriggerActions imported 'FLOW_TYPE_EXTERNAL_AUTHENTICATION:TRIGGER_TYPE_POST_CREATION:123456789012345678' diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 69a86cc..1c0b7b9 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -46,6 +46,8 @@ "getIdpGitlabSelfHosted.ts", "getIdpGoogle.ts", "getIdpLdap.ts", + "getIdpOauth.ts", + "getIdpSaml.ts", "getMachineUser.ts", "getMachineUsers.ts", "getOrg.ts", @@ -56,6 +58,8 @@ "getOrgIdpGitlabSelfHosted.ts", "getOrgIdpGoogle.ts", "getOrgIdpLdap.ts", + "getOrgIdpOauth.ts", + "getOrgIdpSaml.ts", "getOrgJwtIdp.ts", "getOrgOidcIdp.ts", "getOrgs.ts", @@ -71,6 +75,8 @@ "idpGitlabSelfHosted.ts", "idpGoogle.ts", "idpLdap.ts", + "idpOauth.ts", + "idpSaml.ts", "index.ts", "instanceMember.ts", "labelPolicy.ts", @@ -88,8 +94,11 @@ "orgIdpGoogle.ts", "orgIdpJwt.ts", "orgIdpLdap.ts", + "orgIdpOauth.ts", "orgIdpOidc.ts", + "orgIdpSaml.ts", "orgMember.ts", + "orgMetadata.ts", "passwordComplexityPolicy.ts", "personalAccessToken.ts", "privacyPolicy.ts", @@ -103,6 +112,7 @@ "smtpConfig.ts", "triggerActions.ts", "userGrant.ts", + "userMetadata.ts", "utilities.ts" ] } diff --git a/sdk/nodejs/userGrant.ts b/sdk/nodejs/userGrant.ts index 482b23b..72f6e8d 100644 --- a/sdk/nodejs/userGrant.ts +++ b/sdk/nodejs/userGrant.ts @@ -23,7 +23,7 @@ import * as utilities from "./utilities"; * * ## Import * - * terraform The resource can be imported using the ID format ``, e.g. + * bash The resource can be imported using the ID format ``, e.g. * * ```sh * $ pulumi import zitadel:index/userGrant:UserGrant imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/nodejs/userMetadata.ts b/sdk/nodejs/userMetadata.ts new file mode 100644 index 0000000..b7a83e0 --- /dev/null +++ b/sdk/nodejs/userMetadata.ts @@ -0,0 +1,155 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as zitadel from "@pulumiverse/zitadel"; + * + * const _default = new zitadel.UserMetadata("default", { + * orgId: defaultZitadelOrg.id, + * userId: defaultZitadelHumanUser.id, + * key: "a_key", + * value: "a_value", + * }); + * ``` + * + * ## Import + * + * bash The resource can be imported using the ID format ``, e.g. + * + * ```sh + * $ pulumi import zitadel:index/userMetadata:UserMetadata imported '123456789012345678:a_key:123456789012345678' + * ``` + */ +export class UserMetadata extends pulumi.CustomResource { + /** + * Get an existing UserMetadata resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: UserMetadataState, opts?: pulumi.CustomResourceOptions): UserMetadata { + return new UserMetadata(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'zitadel:index/userMetadata:UserMetadata'; + + /** + * Returns true if the given object is an instance of UserMetadata. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is UserMetadata { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === UserMetadata.__pulumiType; + } + + /** + * The key of a metadata entry + */ + public readonly key!: pulumi.Output; + /** + * ID of the organization + */ + public readonly orgId!: pulumi.Output; + /** + * ID of the user + */ + public readonly userId!: pulumi.Output; + /** + * The string representation of a metadata entry value. For binary data, use the base64encode function. + */ + public readonly value!: pulumi.Output; + + /** + * Create a UserMetadata resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: UserMetadataArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: UserMetadataArgs | UserMetadataState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as UserMetadataState | undefined; + resourceInputs["key"] = state ? state.key : undefined; + resourceInputs["orgId"] = state ? state.orgId : undefined; + resourceInputs["userId"] = state ? state.userId : undefined; + resourceInputs["value"] = state ? state.value : undefined; + } else { + const args = argsOrState as UserMetadataArgs | undefined; + if ((!args || args.key === undefined) && !opts.urn) { + throw new Error("Missing required property 'key'"); + } + if ((!args || args.userId === undefined) && !opts.urn) { + throw new Error("Missing required property 'userId'"); + } + if ((!args || args.value === undefined) && !opts.urn) { + throw new Error("Missing required property 'value'"); + } + resourceInputs["key"] = args ? args.key : undefined; + resourceInputs["orgId"] = args ? args.orgId : undefined; + resourceInputs["userId"] = args ? args.userId : undefined; + resourceInputs["value"] = args ? args.value : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(UserMetadata.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering UserMetadata resources. + */ +export interface UserMetadataState { + /** + * The key of a metadata entry + */ + key?: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * ID of the user + */ + userId?: pulumi.Input; + /** + * The string representation of a metadata entry value. For binary data, use the base64encode function. + */ + value?: pulumi.Input; +} + +/** + * The set of arguments for constructing a UserMetadata resource. + */ +export interface UserMetadataArgs { + /** + * The key of a metadata entry + */ + key: pulumi.Input; + /** + * ID of the organization + */ + orgId?: pulumi.Input; + /** + * ID of the user + */ + userId: pulumi.Input; + /** + * The string representation of a metadata entry value. For binary data, use the base64encode function. + */ + value: pulumi.Input; +} diff --git a/sdk/python/pulumiverse_zitadel/__init__.py b/sdk/python/pulumiverse_zitadel/__init__.py index 4b8e832..09f916d 100644 --- a/sdk/python/pulumiverse_zitadel/__init__.py +++ b/sdk/python/pulumiverse_zitadel/__init__.py @@ -36,6 +36,8 @@ from .get_idp_gitlab_self_hosted import * from .get_idp_google import * from .get_idp_ldap import * +from .get_idp_oauth import * +from .get_idp_saml import * from .get_machine_user import * from .get_machine_users import * from .get_org import * @@ -46,6 +48,8 @@ from .get_org_idp_gitlab_self_hosted import * from .get_org_idp_google import * from .get_org_idp_ldap import * +from .get_org_idp_oauth import * +from .get_org_idp_saml import * from .get_org_jwt_idp import * from .get_org_oidc_idp import * from .get_orgs import * @@ -61,6 +65,8 @@ from .idp_gitlab_self_hosted import * from .idp_google import * from .idp_ldap import * +from .idp_oauth import * +from .idp_saml import * from .instance_member import * from .label_policy import * from .lockout_policy import * @@ -77,8 +83,11 @@ from .org_idp_google import * from .org_idp_jwt import * from .org_idp_ldap import * +from .org_idp_oauth import * from .org_idp_oidc import * +from .org_idp_saml import * from .org_member import * +from .org_metadata import * from .password_complexity_policy import * from .personal_access_token import * from .privacy_policy import * @@ -92,6 +101,7 @@ from .smtp_config import * from .trigger_actions import * from .user_grant import * +from .user_metadata import * # Make subpackages available: if typing.TYPE_CHECKING: @@ -287,6 +297,22 @@ "zitadel:index/idpLdap:IdpLdap": "IdpLdap" } }, + { + "pkg": "zitadel", + "mod": "index/idpOauth", + "fqn": "pulumiverse_zitadel", + "classes": { + "zitadel:index/idpOauth:IdpOauth": "IdpOauth" + } + }, + { + "pkg": "zitadel", + "mod": "index/idpSaml", + "fqn": "pulumiverse_zitadel", + "classes": { + "zitadel:index/idpSaml:IdpSaml": "IdpSaml" + } + }, { "pkg": "zitadel", "mod": "index/instanceMember", @@ -415,6 +441,14 @@ "zitadel:index/orgIdpLdap:OrgIdpLdap": "OrgIdpLdap" } }, + { + "pkg": "zitadel", + "mod": "index/orgIdpOauth", + "fqn": "pulumiverse_zitadel", + "classes": { + "zitadel:index/orgIdpOauth:OrgIdpOauth": "OrgIdpOauth" + } + }, { "pkg": "zitadel", "mod": "index/orgIdpOidc", @@ -423,6 +457,14 @@ "zitadel:index/orgIdpOidc:OrgIdpOidc": "OrgIdpOidc" } }, + { + "pkg": "zitadel", + "mod": "index/orgIdpSaml", + "fqn": "pulumiverse_zitadel", + "classes": { + "zitadel:index/orgIdpSaml:OrgIdpSaml": "OrgIdpSaml" + } + }, { "pkg": "zitadel", "mod": "index/orgMember", @@ -431,6 +473,14 @@ "zitadel:index/orgMember:OrgMember": "OrgMember" } }, + { + "pkg": "zitadel", + "mod": "index/orgMetadata", + "fqn": "pulumiverse_zitadel", + "classes": { + "zitadel:index/orgMetadata:OrgMetadata": "OrgMetadata" + } + }, { "pkg": "zitadel", "mod": "index/passwordComplexityPolicy", @@ -526,6 +576,14 @@ "classes": { "zitadel:index/userGrant:UserGrant": "UserGrant" } + }, + { + "pkg": "zitadel", + "mod": "index/userMetadata", + "fqn": "pulumiverse_zitadel", + "classes": { + "zitadel:index/userMetadata:UserMetadata": "UserMetadata" + } } ] """, diff --git a/sdk/python/pulumiverse_zitadel/action.py b/sdk/python/pulumiverse_zitadel/action.py index ed9841a..c2c4534 100644 --- a/sdk/python/pulumiverse_zitadel/action.py +++ b/sdk/python/pulumiverse_zitadel/action.py @@ -262,7 +262,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/action:Action imported '123456789012345678:123456789012345678' @@ -299,7 +299,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/action:Action imported '123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/application_api.py b/sdk/python/pulumiverse_zitadel/application_api.py index 627ccaa..f603bd6 100644 --- a/sdk/python/pulumiverse_zitadel/application_api.py +++ b/sdk/python/pulumiverse_zitadel/application_api.py @@ -268,7 +268,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/applicationApi:ApplicationApi imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' @@ -305,7 +305,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/applicationApi:ApplicationApi imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' diff --git a/sdk/python/pulumiverse_zitadel/application_key.py b/sdk/python/pulumiverse_zitadel/application_key.py index 8fa0fb3..7c5b033 100644 --- a/sdk/python/pulumiverse_zitadel/application_key.py +++ b/sdk/python/pulumiverse_zitadel/application_key.py @@ -291,7 +291,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. + bash The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. ```sh $ pulumi import zitadel:index/applicationKey:ApplicationKey imported "123456789012345678:123456789012345678:123456789012345678:123456789012345678:$(cat ~/Downloads/123456789012345678.json | sed -e 's/:/__SEMICOLON__/g')" @@ -330,7 +330,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. + bash The resource can be imported using the ID format ``. You can use __SEMICOLON__ to escape :, e.g. ```sh $ pulumi import zitadel:index/applicationKey:ApplicationKey imported "123456789012345678:123456789012345678:123456789012345678:123456789012345678:$(cat ~/Downloads/123456789012345678.json | sed -e 's/:/__SEMICOLON__/g')" diff --git a/sdk/python/pulumiverse_zitadel/application_oidc.py b/sdk/python/pulumiverse_zitadel/application_oidc.py index 0c0fe41..afd480c 100644 --- a/sdk/python/pulumiverse_zitadel/application_oidc.py +++ b/sdk/python/pulumiverse_zitadel/application_oidc.py @@ -807,7 +807,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/applicationOidc:ApplicationOidc imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' @@ -870,7 +870,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/applicationOidc:ApplicationOidc imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678@zitadel:JuaDFFeOak5DGE655KCYPSAclSkbMVEJXXuX1lEMBT14eLMSs0A0qhafKX5SA2Df' diff --git a/sdk/python/pulumiverse_zitadel/application_saml.py b/sdk/python/pulumiverse_zitadel/application_saml.py index 57f7d27..9787b11 100644 --- a/sdk/python/pulumiverse_zitadel/application_saml.py +++ b/sdk/python/pulumiverse_zitadel/application_saml.py @@ -239,7 +239,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/applicationSaml:ApplicationSaml imported '123456789012345678:123456789012345678:123456789012345678' @@ -288,7 +288,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/applicationSaml:ApplicationSaml imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/default_domain_policy.py b/sdk/python/pulumiverse_zitadel/default_domain_policy.py index d6821d0..cd44c7c 100644 --- a/sdk/python/pulumiverse_zitadel/default_domain_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_domain_policy.py @@ -180,7 +180,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultDomainPolicy:DefaultDomainPolicy imported '' @@ -214,7 +214,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultDomainPolicy:DefaultDomainPolicy imported '' diff --git a/sdk/python/pulumiverse_zitadel/default_label_policy.py b/sdk/python/pulumiverse_zitadel/default_label_policy.py index f410bc8..e2a3b7e 100644 --- a/sdk/python/pulumiverse_zitadel/default_label_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_label_policy.py @@ -34,7 +34,8 @@ def __init__(__self__, *, logo_dark_path: Optional[pulumi.Input[str]] = None, logo_hash: Optional[pulumi.Input[str]] = None, logo_path: Optional[pulumi.Input[str]] = None, - set_active: Optional[pulumi.Input[bool]] = None): + set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a DefaultLabelPolicy resource. :param pulumi.Input[str] background_color: hex value for background color @@ -48,6 +49,7 @@ def __init__(__self__, *, :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT """ DefaultLabelPolicyArgs._configure( lambda key, value: pulumi.set(__self__, key, value), @@ -72,6 +74,7 @@ def __init__(__self__, *, logo_hash=logo_hash, logo_path=logo_path, set_active=set_active, + theme_mode=theme_mode, ) @staticmethod def _configure( @@ -97,6 +100,7 @@ def _configure( logo_hash: Optional[pulumi.Input[str]] = None, logo_path: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.ResourceOptions]=None, **kwargs): if 'backgroundColor' in kwargs: @@ -141,6 +145,8 @@ def _configure( logo_path = kwargs['logoPath'] if 'setActive' in kwargs: set_active = kwargs['setActive'] + if 'themeMode' in kwargs: + theme_mode = kwargs['themeMode'] _setter("background_color", background_color) _setter("background_color_dark", background_color_dark) @@ -174,6 +180,8 @@ def _configure( _setter("logo_path", logo_path) if set_active is not None: _setter("set_active", set_active) + if theme_mode is not None: + _setter("theme_mode", theme_mode) @property @pulumi.getter(name="backgroundColor") @@ -397,6 +405,18 @@ def set_active(self) -> Optional[pulumi.Input[bool]]: def set_active(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "set_active", value) + @property + @pulumi.getter(name="themeMode") + def theme_mode(self) -> Optional[pulumi.Input[str]]: + """ + theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + """ + return pulumi.get(self, "theme_mode") + + @theme_mode.setter + def theme_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "theme_mode", value) + @pulumi.input_type class _DefaultLabelPolicyState: @@ -425,6 +445,7 @@ def __init__(__self__, *, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None): """ @@ -438,6 +459,7 @@ def __init__(__self__, *, :param pulumi.Input[str] primary_color: hex value for primary color :param pulumi.Input[str] primary_color_dark: hex value for primary color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme """ @@ -467,6 +489,7 @@ def __init__(__self__, *, primary_color=primary_color, primary_color_dark=primary_color_dark, set_active=set_active, + theme_mode=theme_mode, warn_color=warn_color, warn_color_dark=warn_color_dark, ) @@ -497,6 +520,7 @@ def _configure( primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.ResourceOptions]=None, @@ -549,6 +573,8 @@ def _configure( primary_color_dark = kwargs['primaryColorDark'] if 'setActive' in kwargs: set_active = kwargs['setActive'] + if 'themeMode' in kwargs: + theme_mode = kwargs['themeMode'] if 'warnColor' in kwargs: warn_color = kwargs['warnColor'] if 'warnColorDark' in kwargs: @@ -602,6 +628,8 @@ def _configure( _setter("primary_color_dark", primary_color_dark) if set_active is not None: _setter("set_active", set_active) + if theme_mode is not None: + _setter("theme_mode", theme_mode) if warn_color is not None: _setter("warn_color", warn_color) if warn_color_dark is not None: @@ -850,6 +878,18 @@ def set_active(self) -> Optional[pulumi.Input[bool]]: def set_active(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "set_active", value) + @property + @pulumi.getter(name="themeMode") + def theme_mode(self) -> Optional[pulumi.Input[str]]: + """ + theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + """ + return pulumi.get(self, "theme_mode") + + @theme_mode.setter + def theme_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "theme_mode", value) + @property @pulumi.getter(name="warnColor") def warn_color(self) -> Optional[pulumi.Input[str]]: @@ -899,6 +939,7 @@ def __init__(__self__, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None, __props__=None): @@ -907,7 +948,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultLabelPolicy:DefaultLabelPolicy imported '' @@ -924,6 +965,7 @@ def __init__(__self__, :param pulumi.Input[str] primary_color: hex value for primary color :param pulumi.Input[str] primary_color_dark: hex value for primary color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme """ @@ -938,7 +980,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultLabelPolicy:DefaultLabelPolicy imported '' @@ -982,6 +1024,7 @@ def _internal_init(__self__, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None, __props__=None): @@ -1028,6 +1071,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'primary_color_dark'") __props__.__dict__["primary_color_dark"] = primary_color_dark __props__.__dict__["set_active"] = set_active + __props__.__dict__["theme_mode"] = theme_mode if warn_color is None and not opts.urn: raise TypeError("Missing required property 'warn_color'") __props__.__dict__["warn_color"] = warn_color @@ -1073,6 +1117,7 @@ def get(resource_name: str, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None) -> 'DefaultLabelPolicy': """ @@ -1091,6 +1136,7 @@ def get(resource_name: str, :param pulumi.Input[str] primary_color: hex value for primary color :param pulumi.Input[str] primary_color_dark: hex value for primary color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme """ @@ -1122,6 +1168,7 @@ def get(resource_name: str, __props__.__dict__["primary_color"] = primary_color __props__.__dict__["primary_color_dark"] = primary_color_dark __props__.__dict__["set_active"] = set_active + __props__.__dict__["theme_mode"] = theme_mode __props__.__dict__["warn_color"] = warn_color __props__.__dict__["warn_color_dark"] = warn_color_dark return DefaultLabelPolicy(resource_name, opts=opts, __props__=__props__) @@ -1273,6 +1320,14 @@ def set_active(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "set_active") + @property + @pulumi.getter(name="themeMode") + def theme_mode(self) -> pulumi.Output[Optional[str]]: + """ + theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + """ + return pulumi.get(self, "theme_mode") + @property @pulumi.getter(name="warnColor") def warn_color(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumiverse_zitadel/default_lockout_policy.py b/sdk/python/pulumiverse_zitadel/default_lockout_policy.py index 115713a..22ec75b 100644 --- a/sdk/python/pulumiverse_zitadel/default_lockout_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_lockout_policy.py @@ -105,7 +105,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy imported '' @@ -135,7 +135,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultLockoutPolicy:DefaultLockoutPolicy imported '' diff --git a/sdk/python/pulumiverse_zitadel/default_login_policy.py b/sdk/python/pulumiverse_zitadel/default_login_policy.py index 1764f3b..7ca5961 100644 --- a/sdk/python/pulumiverse_zitadel/default_login_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_login_policy.py @@ -853,7 +853,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultLoginPolicy:DefaultLoginPolicy imported '' @@ -923,7 +923,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultLoginPolicy:DefaultLoginPolicy imported '' diff --git a/sdk/python/pulumiverse_zitadel/default_notification_policy.py b/sdk/python/pulumiverse_zitadel/default_notification_policy.py index 5142880..8e03b2a 100644 --- a/sdk/python/pulumiverse_zitadel/default_notification_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_notification_policy.py @@ -105,7 +105,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy imported '' @@ -135,7 +135,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultNotificationPolicy:DefaultNotificationPolicy imported '' diff --git a/sdk/python/pulumiverse_zitadel/default_password_complexity_policy.py b/sdk/python/pulumiverse_zitadel/default_password_complexity_policy.py index 1ba3573..995244d 100644 --- a/sdk/python/pulumiverse_zitadel/default_password_complexity_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_password_complexity_policy.py @@ -270,7 +270,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy imported '' @@ -309,7 +309,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultPasswordComplexityPolicy:DefaultPasswordComplexityPolicy imported '' diff --git a/sdk/python/pulumiverse_zitadel/default_privacy_policy.py b/sdk/python/pulumiverse_zitadel/default_privacy_policy.py index 99a8a33..727f0d1 100644 --- a/sdk/python/pulumiverse_zitadel/default_privacy_policy.py +++ b/sdk/python/pulumiverse_zitadel/default_privacy_policy.py @@ -201,7 +201,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy imported '' @@ -234,7 +234,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<>`, e.g. + bash The resource can be imported using the ID format `<>`, e.g. ```sh $ pulumi import zitadel:index/defaultPrivacyPolicy:DefaultPrivacyPolicy imported '' diff --git a/sdk/python/pulumiverse_zitadel/domain.py b/sdk/python/pulumiverse_zitadel/domain.py index c6d6990..5bc8ca4 100644 --- a/sdk/python/pulumiverse_zitadel/domain.py +++ b/sdk/python/pulumiverse_zitadel/domain.py @@ -227,7 +227,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `name[:org_id]`, e.g. + bash The resource can be imported using the ID format `name[:org_id]`, e.g. ```sh $ pulumi import zitadel:index/domain:Domain imported 'example.com:123456789012345678' @@ -262,7 +262,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `name[:org_id]`, e.g. + bash The resource can be imported using the ID format `name[:org_id]`, e.g. ```sh $ pulumi import zitadel:index/domain:Domain imported 'example.com:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/domain_policy.py b/sdk/python/pulumiverse_zitadel/domain_policy.py index fdb860f..dd29306 100644 --- a/sdk/python/pulumiverse_zitadel/domain_policy.py +++ b/sdk/python/pulumiverse_zitadel/domain_policy.py @@ -222,7 +222,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/domainPolicy:DomainPolicy imported '123456789012345678' @@ -258,7 +258,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/domainPolicy:DomainPolicy imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/get_idp_oauth.py b/sdk/python/pulumiverse_zitadel/get_idp_oauth.py new file mode 100644 index 0000000..7e7d51b --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/get_idp_oauth.py @@ -0,0 +1,247 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetIdpOauthResult', + 'AwaitableGetIdpOauthResult', + 'get_idp_oauth', + 'get_idp_oauth_output', +] + +@pulumi.output_type +class GetIdpOauthResult: + """ + A collection of values returned by getIdpOauth. + """ + def __init__(__self__, authorization_endpoint=None, client_id=None, client_secret=None, id=None, id_attribute=None, is_auto_creation=None, is_auto_update=None, is_creation_allowed=None, is_linking_allowed=None, name=None, scopes=None, token_endpoint=None, user_endpoint=None): + if authorization_endpoint and not isinstance(authorization_endpoint, str): + raise TypeError("Expected argument 'authorization_endpoint' to be a str") + pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) + if client_id and not isinstance(client_id, str): + raise TypeError("Expected argument 'client_id' to be a str") + pulumi.set(__self__, "client_id", client_id) + if client_secret and not isinstance(client_secret, str): + raise TypeError("Expected argument 'client_secret' to be a str") + pulumi.set(__self__, "client_secret", client_secret) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if id_attribute and not isinstance(id_attribute, str): + raise TypeError("Expected argument 'id_attribute' to be a str") + pulumi.set(__self__, "id_attribute", id_attribute) + if is_auto_creation and not isinstance(is_auto_creation, bool): + raise TypeError("Expected argument 'is_auto_creation' to be a bool") + pulumi.set(__self__, "is_auto_creation", is_auto_creation) + if is_auto_update and not isinstance(is_auto_update, bool): + raise TypeError("Expected argument 'is_auto_update' to be a bool") + pulumi.set(__self__, "is_auto_update", is_auto_update) + if is_creation_allowed and not isinstance(is_creation_allowed, bool): + raise TypeError("Expected argument 'is_creation_allowed' to be a bool") + pulumi.set(__self__, "is_creation_allowed", is_creation_allowed) + if is_linking_allowed and not isinstance(is_linking_allowed, bool): + raise TypeError("Expected argument 'is_linking_allowed' to be a bool") + pulumi.set(__self__, "is_linking_allowed", is_linking_allowed) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if scopes and not isinstance(scopes, list): + raise TypeError("Expected argument 'scopes' to be a list") + pulumi.set(__self__, "scopes", scopes) + if token_endpoint and not isinstance(token_endpoint, str): + raise TypeError("Expected argument 'token_endpoint' to be a str") + pulumi.set(__self__, "token_endpoint", token_endpoint) + if user_endpoint and not isinstance(user_endpoint, str): + raise TypeError("Expected argument 'user_endpoint' to be a str") + pulumi.set(__self__, "user_endpoint", user_endpoint) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> str: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> str: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> str: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> str: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> bool: + """ + enabled if a new account in ZITADEL are created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> bool: + """ + enabled if a the ZITADEL account fields are updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> bool: + """ + enabled if users are able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> bool: + """ + enabled if users are able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def scopes(self) -> Sequence[str]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> str: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> str: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + + +class AwaitableGetIdpOauthResult(GetIdpOauthResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetIdpOauthResult( + authorization_endpoint=self.authorization_endpoint, + client_id=self.client_id, + client_secret=self.client_secret, + id=self.id, + id_attribute=self.id_attribute, + is_auto_creation=self.is_auto_creation, + is_auto_update=self.is_auto_update, + is_creation_allowed=self.is_creation_allowed, + is_linking_allowed=self.is_linking_allowed, + name=self.name, + scopes=self.scopes, + token_endpoint=self.token_endpoint, + user_endpoint=self.user_endpoint) + + +def get_idp_oauth(id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIdpOauthResult: + """ + Datasource representing a generic OAuth2 IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_idp_oauth(id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + """ + __args__ = dict() + __args__['id'] = id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('zitadel:index/getIdpOauth:getIdpOauth', __args__, opts=opts, typ=GetIdpOauthResult).value + + return AwaitableGetIdpOauthResult( + authorization_endpoint=pulumi.get(__ret__, 'authorization_endpoint'), + client_id=pulumi.get(__ret__, 'client_id'), + client_secret=pulumi.get(__ret__, 'client_secret'), + id=pulumi.get(__ret__, 'id'), + id_attribute=pulumi.get(__ret__, 'id_attribute'), + is_auto_creation=pulumi.get(__ret__, 'is_auto_creation'), + is_auto_update=pulumi.get(__ret__, 'is_auto_update'), + is_creation_allowed=pulumi.get(__ret__, 'is_creation_allowed'), + is_linking_allowed=pulumi.get(__ret__, 'is_linking_allowed'), + name=pulumi.get(__ret__, 'name'), + scopes=pulumi.get(__ret__, 'scopes'), + token_endpoint=pulumi.get(__ret__, 'token_endpoint'), + user_endpoint=pulumi.get(__ret__, 'user_endpoint')) + + +@_utilities.lift_output_func(get_idp_oauth) +def get_idp_oauth_output(id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetIdpOauthResult]: + """ + Datasource representing a generic OAuth2 IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_idp_oauth(id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + """ + ... diff --git a/sdk/python/pulumiverse_zitadel/get_idp_saml.py b/sdk/python/pulumiverse_zitadel/get_idp_saml.py new file mode 100644 index 0000000..118bab9 --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/get_idp_saml.py @@ -0,0 +1,195 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetIdpSamlResult', + 'AwaitableGetIdpSamlResult', + 'get_idp_saml', + 'get_idp_saml_output', +] + +@pulumi.output_type +class GetIdpSamlResult: + """ + A collection of values returned by getIdpSaml. + """ + def __init__(__self__, binding=None, id=None, is_auto_creation=None, is_auto_update=None, is_creation_allowed=None, is_linking_allowed=None, metadata_xml=None, name=None, with_signed_request=None): + if binding and not isinstance(binding, str): + raise TypeError("Expected argument 'binding' to be a str") + pulumi.set(__self__, "binding", binding) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if is_auto_creation and not isinstance(is_auto_creation, bool): + raise TypeError("Expected argument 'is_auto_creation' to be a bool") + pulumi.set(__self__, "is_auto_creation", is_auto_creation) + if is_auto_update and not isinstance(is_auto_update, bool): + raise TypeError("Expected argument 'is_auto_update' to be a bool") + pulumi.set(__self__, "is_auto_update", is_auto_update) + if is_creation_allowed and not isinstance(is_creation_allowed, bool): + raise TypeError("Expected argument 'is_creation_allowed' to be a bool") + pulumi.set(__self__, "is_creation_allowed", is_creation_allowed) + if is_linking_allowed and not isinstance(is_linking_allowed, bool): + raise TypeError("Expected argument 'is_linking_allowed' to be a bool") + pulumi.set(__self__, "is_linking_allowed", is_linking_allowed) + if metadata_xml and not isinstance(metadata_xml, str): + raise TypeError("Expected argument 'metadata_xml' to be a str") + pulumi.set(__self__, "metadata_xml", metadata_xml) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if with_signed_request and not isinstance(with_signed_request, str): + raise TypeError("Expected argument 'with_signed_request' to be a str") + pulumi.set(__self__, "with_signed_request", with_signed_request) + + @property + @pulumi.getter + def binding(self) -> str: + """ + The binding + """ + return pulumi.get(self, "binding") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> bool: + """ + enabled if a new account in ZITADEL are created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> bool: + """ + enabled if a the ZITADEL account fields are updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> bool: + """ + enabled if users are able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> bool: + """ + enabled if users are able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> str: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> str: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + + +class AwaitableGetIdpSamlResult(GetIdpSamlResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetIdpSamlResult( + binding=self.binding, + id=self.id, + is_auto_creation=self.is_auto_creation, + is_auto_update=self.is_auto_update, + is_creation_allowed=self.is_creation_allowed, + is_linking_allowed=self.is_linking_allowed, + metadata_xml=self.metadata_xml, + name=self.name, + with_signed_request=self.with_signed_request) + + +def get_idp_saml(id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIdpSamlResult: + """ + Datasource representing a SAML IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_idp_saml(id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + """ + __args__ = dict() + __args__['id'] = id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('zitadel:index/getIdpSaml:getIdpSaml', __args__, opts=opts, typ=GetIdpSamlResult).value + + return AwaitableGetIdpSamlResult( + binding=pulumi.get(__ret__, 'binding'), + id=pulumi.get(__ret__, 'id'), + is_auto_creation=pulumi.get(__ret__, 'is_auto_creation'), + is_auto_update=pulumi.get(__ret__, 'is_auto_update'), + is_creation_allowed=pulumi.get(__ret__, 'is_creation_allowed'), + is_linking_allowed=pulumi.get(__ret__, 'is_linking_allowed'), + metadata_xml=pulumi.get(__ret__, 'metadata_xml'), + name=pulumi.get(__ret__, 'name'), + with_signed_request=pulumi.get(__ret__, 'with_signed_request')) + + +@_utilities.lift_output_func(get_idp_saml) +def get_idp_saml_output(id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetIdpSamlResult]: + """ + Datasource representing a SAML IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_idp_saml(id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + """ + ... diff --git a/sdk/python/pulumiverse_zitadel/get_org_idp_oauth.py b/sdk/python/pulumiverse_zitadel/get_org_idp_oauth.py new file mode 100644 index 0000000..c1e0d19 --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/get_org_idp_oauth.py @@ -0,0 +1,267 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetOrgIdpOauthResult', + 'AwaitableGetOrgIdpOauthResult', + 'get_org_idp_oauth', + 'get_org_idp_oauth_output', +] + +@pulumi.output_type +class GetOrgIdpOauthResult: + """ + A collection of values returned by getOrgIdpOauth. + """ + def __init__(__self__, authorization_endpoint=None, client_id=None, client_secret=None, id=None, id_attribute=None, is_auto_creation=None, is_auto_update=None, is_creation_allowed=None, is_linking_allowed=None, name=None, org_id=None, scopes=None, token_endpoint=None, user_endpoint=None): + if authorization_endpoint and not isinstance(authorization_endpoint, str): + raise TypeError("Expected argument 'authorization_endpoint' to be a str") + pulumi.set(__self__, "authorization_endpoint", authorization_endpoint) + if client_id and not isinstance(client_id, str): + raise TypeError("Expected argument 'client_id' to be a str") + pulumi.set(__self__, "client_id", client_id) + if client_secret and not isinstance(client_secret, str): + raise TypeError("Expected argument 'client_secret' to be a str") + pulumi.set(__self__, "client_secret", client_secret) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if id_attribute and not isinstance(id_attribute, str): + raise TypeError("Expected argument 'id_attribute' to be a str") + pulumi.set(__self__, "id_attribute", id_attribute) + if is_auto_creation and not isinstance(is_auto_creation, bool): + raise TypeError("Expected argument 'is_auto_creation' to be a bool") + pulumi.set(__self__, "is_auto_creation", is_auto_creation) + if is_auto_update and not isinstance(is_auto_update, bool): + raise TypeError("Expected argument 'is_auto_update' to be a bool") + pulumi.set(__self__, "is_auto_update", is_auto_update) + if is_creation_allowed and not isinstance(is_creation_allowed, bool): + raise TypeError("Expected argument 'is_creation_allowed' to be a bool") + pulumi.set(__self__, "is_creation_allowed", is_creation_allowed) + if is_linking_allowed and not isinstance(is_linking_allowed, bool): + raise TypeError("Expected argument 'is_linking_allowed' to be a bool") + pulumi.set(__self__, "is_linking_allowed", is_linking_allowed) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if org_id and not isinstance(org_id, str): + raise TypeError("Expected argument 'org_id' to be a str") + pulumi.set(__self__, "org_id", org_id) + if scopes and not isinstance(scopes, list): + raise TypeError("Expected argument 'scopes' to be a list") + pulumi.set(__self__, "scopes", scopes) + if token_endpoint and not isinstance(token_endpoint, str): + raise TypeError("Expected argument 'token_endpoint' to be a str") + pulumi.set(__self__, "token_endpoint", token_endpoint) + if user_endpoint and not isinstance(user_endpoint, str): + raise TypeError("Expected argument 'user_endpoint' to be a str") + pulumi.set(__self__, "user_endpoint", user_endpoint) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> str: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> str: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> str: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> str: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> bool: + """ + enabled if a new account in ZITADEL are created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> bool: + """ + enabled if a the ZITADEL account fields are updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> bool: + """ + enabled if users are able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> bool: + """ + enabled if users are able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[str]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter + def scopes(self) -> Sequence[str]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> str: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> str: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + + +class AwaitableGetOrgIdpOauthResult(GetOrgIdpOauthResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetOrgIdpOauthResult( + authorization_endpoint=self.authorization_endpoint, + client_id=self.client_id, + client_secret=self.client_secret, + id=self.id, + id_attribute=self.id_attribute, + is_auto_creation=self.is_auto_creation, + is_auto_update=self.is_auto_update, + is_creation_allowed=self.is_creation_allowed, + is_linking_allowed=self.is_linking_allowed, + name=self.name, + org_id=self.org_id, + scopes=self.scopes, + token_endpoint=self.token_endpoint, + user_endpoint=self.user_endpoint) + + +def get_org_idp_oauth(id: Optional[str] = None, + org_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetOrgIdpOauthResult: + """ + Datasource representing a generic OAuth2 IDP of the organization. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_org_idp_oauth(org_id=default_zitadel_org["id"], + id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + :param str org_id: ID of the organization + """ + __args__ = dict() + __args__['id'] = id + __args__['orgId'] = org_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('zitadel:index/getOrgIdpOauth:getOrgIdpOauth', __args__, opts=opts, typ=GetOrgIdpOauthResult).value + + return AwaitableGetOrgIdpOauthResult( + authorization_endpoint=pulumi.get(__ret__, 'authorization_endpoint'), + client_id=pulumi.get(__ret__, 'client_id'), + client_secret=pulumi.get(__ret__, 'client_secret'), + id=pulumi.get(__ret__, 'id'), + id_attribute=pulumi.get(__ret__, 'id_attribute'), + is_auto_creation=pulumi.get(__ret__, 'is_auto_creation'), + is_auto_update=pulumi.get(__ret__, 'is_auto_update'), + is_creation_allowed=pulumi.get(__ret__, 'is_creation_allowed'), + is_linking_allowed=pulumi.get(__ret__, 'is_linking_allowed'), + name=pulumi.get(__ret__, 'name'), + org_id=pulumi.get(__ret__, 'org_id'), + scopes=pulumi.get(__ret__, 'scopes'), + token_endpoint=pulumi.get(__ret__, 'token_endpoint'), + user_endpoint=pulumi.get(__ret__, 'user_endpoint')) + + +@_utilities.lift_output_func(get_org_idp_oauth) +def get_org_idp_oauth_output(id: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOrgIdpOauthResult]: + """ + Datasource representing a generic OAuth2 IDP of the organization. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_org_idp_oauth(org_id=default_zitadel_org["id"], + id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + :param str org_id: ID of the organization + """ + ... diff --git a/sdk/python/pulumiverse_zitadel/get_org_idp_saml.py b/sdk/python/pulumiverse_zitadel/get_org_idp_saml.py new file mode 100644 index 0000000..c022d60 --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/get_org_idp_saml.py @@ -0,0 +1,215 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetOrgIdpSamlResult', + 'AwaitableGetOrgIdpSamlResult', + 'get_org_idp_saml', + 'get_org_idp_saml_output', +] + +@pulumi.output_type +class GetOrgIdpSamlResult: + """ + A collection of values returned by getOrgIdpSaml. + """ + def __init__(__self__, binding=None, id=None, is_auto_creation=None, is_auto_update=None, is_creation_allowed=None, is_linking_allowed=None, metadata_xml=None, name=None, org_id=None, with_signed_request=None): + if binding and not isinstance(binding, str): + raise TypeError("Expected argument 'binding' to be a str") + pulumi.set(__self__, "binding", binding) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if is_auto_creation and not isinstance(is_auto_creation, bool): + raise TypeError("Expected argument 'is_auto_creation' to be a bool") + pulumi.set(__self__, "is_auto_creation", is_auto_creation) + if is_auto_update and not isinstance(is_auto_update, bool): + raise TypeError("Expected argument 'is_auto_update' to be a bool") + pulumi.set(__self__, "is_auto_update", is_auto_update) + if is_creation_allowed and not isinstance(is_creation_allowed, bool): + raise TypeError("Expected argument 'is_creation_allowed' to be a bool") + pulumi.set(__self__, "is_creation_allowed", is_creation_allowed) + if is_linking_allowed and not isinstance(is_linking_allowed, bool): + raise TypeError("Expected argument 'is_linking_allowed' to be a bool") + pulumi.set(__self__, "is_linking_allowed", is_linking_allowed) + if metadata_xml and not isinstance(metadata_xml, str): + raise TypeError("Expected argument 'metadata_xml' to be a str") + pulumi.set(__self__, "metadata_xml", metadata_xml) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if org_id and not isinstance(org_id, str): + raise TypeError("Expected argument 'org_id' to be a str") + pulumi.set(__self__, "org_id", org_id) + if with_signed_request and not isinstance(with_signed_request, str): + raise TypeError("Expected argument 'with_signed_request' to be a str") + pulumi.set(__self__, "with_signed_request", with_signed_request) + + @property + @pulumi.getter + def binding(self) -> str: + """ + The binding + """ + return pulumi.get(self, "binding") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of this resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> bool: + """ + enabled if a new account in ZITADEL are created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> bool: + """ + enabled if a the ZITADEL account fields are updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> bool: + """ + enabled if users are able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> bool: + """ + enabled if users are able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> str: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[str]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> str: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + + +class AwaitableGetOrgIdpSamlResult(GetOrgIdpSamlResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetOrgIdpSamlResult( + binding=self.binding, + id=self.id, + is_auto_creation=self.is_auto_creation, + is_auto_update=self.is_auto_update, + is_creation_allowed=self.is_creation_allowed, + is_linking_allowed=self.is_linking_allowed, + metadata_xml=self.metadata_xml, + name=self.name, + org_id=self.org_id, + with_signed_request=self.with_signed_request) + + +def get_org_idp_saml(id: Optional[str] = None, + org_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetOrgIdpSamlResult: + """ + Datasource representing a SAML IdP of the organization. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_org_idp_saml(org_id=default_zitadel_org["id"], + id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + :param str org_id: ID of the organization + """ + __args__ = dict() + __args__['id'] = id + __args__['orgId'] = org_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('zitadel:index/getOrgIdpSaml:getOrgIdpSaml', __args__, opts=opts, typ=GetOrgIdpSamlResult).value + + return AwaitableGetOrgIdpSamlResult( + binding=pulumi.get(__ret__, 'binding'), + id=pulumi.get(__ret__, 'id'), + is_auto_creation=pulumi.get(__ret__, 'is_auto_creation'), + is_auto_update=pulumi.get(__ret__, 'is_auto_update'), + is_creation_allowed=pulumi.get(__ret__, 'is_creation_allowed'), + is_linking_allowed=pulumi.get(__ret__, 'is_linking_allowed'), + metadata_xml=pulumi.get(__ret__, 'metadata_xml'), + name=pulumi.get(__ret__, 'name'), + org_id=pulumi.get(__ret__, 'org_id'), + with_signed_request=pulumi.get(__ret__, 'with_signed_request')) + + +@_utilities.lift_output_func(get_org_idp_saml) +def get_org_idp_saml_output(id: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOrgIdpSamlResult]: + """ + Datasource representing a SAML IdP of the organization. + + ## Example Usage + + ```python + import pulumi + import pulumi_zitadel as zitadel + + default = zitadel.get_org_idp_saml(org_id=default_zitadel_org["id"], + id="123456789012345678") + ``` + + + :param str id: The ID of this resource. + :param str org_id: ID of the organization + """ + ... diff --git a/sdk/python/pulumiverse_zitadel/human_user.py b/sdk/python/pulumiverse_zitadel/human_user.py index d76e270..18cbe34 100644 --- a/sdk/python/pulumiverse_zitadel/human_user.py +++ b/sdk/python/pulumiverse_zitadel/human_user.py @@ -655,7 +655,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. + bash The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. ```sh $ pulumi import zitadel:index/humanUser:HumanUser imported '123456789012345678:123456789012345678:Password1!' @@ -712,7 +712,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. + bash The resource can be imported using the ID format `id[:org_id][:initial_password]>`, e.g. ```sh $ pulumi import zitadel:index/humanUser:HumanUser imported '123456789012345678:123456789012345678:Password1!' diff --git a/sdk/python/pulumiverse_zitadel/idp_azure_ad.py b/sdk/python/pulumiverse_zitadel/idp_azure_ad.py index 6708a79..f597c01 100644 --- a/sdk/python/pulumiverse_zitadel/idp_azure_ad.py +++ b/sdk/python/pulumiverse_zitadel/idp_azure_ad.py @@ -516,7 +516,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpAzureAd:IdpAzureAd imported '123456789012345678:12345678-1234-1234-1234-123456789012' @@ -571,7 +571,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpAzureAd:IdpAzureAd imported '123456789012345678:12345678-1234-1234-1234-123456789012' diff --git a/sdk/python/pulumiverse_zitadel/idp_github.py b/sdk/python/pulumiverse_zitadel/idp_github.py index e4452c8..8d99df3 100644 --- a/sdk/python/pulumiverse_zitadel/idp_github.py +++ b/sdk/python/pulumiverse_zitadel/idp_github.py @@ -391,7 +391,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGithub:IdpGithub imported '123456789012345678:1234567890123456781234567890123456787890' @@ -440,7 +440,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGithub:IdpGithub imported '123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/python/pulumiverse_zitadel/idp_github_es.py b/sdk/python/pulumiverse_zitadel/idp_github_es.py index 5946e0c..6ed4694 100644 --- a/sdk/python/pulumiverse_zitadel/idp_github_es.py +++ b/sdk/python/pulumiverse_zitadel/idp_github_es.py @@ -514,7 +514,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGithubEs:IdpGithubEs imported '123456789012345678:1234567890123456781234567890123456787890' @@ -569,7 +569,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGithubEs:IdpGithubEs imported '123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/python/pulumiverse_zitadel/idp_gitlab.py b/sdk/python/pulumiverse_zitadel/idp_gitlab.py index defe92c..ac6c4aa 100644 --- a/sdk/python/pulumiverse_zitadel/idp_gitlab.py +++ b/sdk/python/pulumiverse_zitadel/idp_gitlab.py @@ -391,7 +391,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGitlab:IdpGitlab imported '123456789012345678:1234567890abcdef' @@ -440,7 +440,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGitlab:IdpGitlab imported '123456789012345678:1234567890abcdef' diff --git a/sdk/python/pulumiverse_zitadel/idp_gitlab_self_hosted.py b/sdk/python/pulumiverse_zitadel/idp_gitlab_self_hosted.py index e91777b..03f618e 100644 --- a/sdk/python/pulumiverse_zitadel/idp_gitlab_self_hosted.py +++ b/sdk/python/pulumiverse_zitadel/idp_gitlab_self_hosted.py @@ -428,7 +428,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted imported '123456789012345678:1234567890abcdef' @@ -479,7 +479,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGitlabSelfHosted:IdpGitlabSelfHosted imported '123456789012345678:1234567890abcdef' diff --git a/sdk/python/pulumiverse_zitadel/idp_google.py b/sdk/python/pulumiverse_zitadel/idp_google.py index fc3e9f0..ac5e87e 100644 --- a/sdk/python/pulumiverse_zitadel/idp_google.py +++ b/sdk/python/pulumiverse_zitadel/idp_google.py @@ -391,7 +391,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGoogle:IdpGoogle imported '123456789012345678:G1234567890123' @@ -440,7 +440,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpGoogle:IdpGoogle imported '123456789012345678:G1234567890123' diff --git a/sdk/python/pulumiverse_zitadel/idp_ldap.py b/sdk/python/pulumiverse_zitadel/idp_ldap.py index 5b8dd3b..0e6b75c 100644 --- a/sdk/python/pulumiverse_zitadel/idp_ldap.py +++ b/sdk/python/pulumiverse_zitadel/idp_ldap.py @@ -1170,7 +1170,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpLdap:IdpLdap imported '123456789012345678:b1nd_p4ssw0rd' @@ -1249,7 +1249,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/idpLdap:IdpLdap imported '123456789012345678:b1nd_p4ssw0rd' diff --git a/sdk/python/pulumiverse_zitadel/idp_oauth.py b/sdk/python/pulumiverse_zitadel/idp_oauth.py new file mode 100644 index 0000000..9523764 --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/idp_oauth.py @@ -0,0 +1,850 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['IdpOauthArgs', 'IdpOauth'] + +@pulumi.input_type +class IdpOauthArgs: + def __init__(__self__, *, + authorization_endpoint: pulumi.Input[str], + client_id: pulumi.Input[str], + client_secret: pulumi.Input[str], + id_attribute: pulumi.Input[str], + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + token_endpoint: pulumi.Input[str], + user_endpoint: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a IdpOauth resource. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + """ + IdpOauthArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + id_attribute=id_attribute, + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + token_endpoint=token_endpoint, + user_endpoint=user_endpoint, + name=name, + scopes=scopes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: pulumi.Input[str], + client_id: pulumi.Input[str], + client_secret: pulumi.Input[str], + id_attribute: pulumi.Input[str], + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + token_endpoint: pulumi.Input[str], + user_endpoint: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if 'clientId' in kwargs: + client_id = kwargs['clientId'] + if 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if 'idAttribute' in kwargs: + id_attribute = kwargs['idAttribute'] + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if 'userEndpoint' in kwargs: + user_endpoint = kwargs['userEndpoint'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("id_attribute", id_attribute) + _setter("is_auto_creation", is_auto_creation) + _setter("is_auto_update", is_auto_update) + _setter("is_creation_allowed", is_creation_allowed) + _setter("is_linking_allowed", is_linking_allowed) + _setter("token_endpoint", token_endpoint) + _setter("user_endpoint", user_endpoint) + if name is not None: + _setter("name", name) + if scopes is not None: + _setter("scopes", scopes) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> pulumi.Input[str]: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @authorization_endpoint.setter + def authorization_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "authorization_endpoint", value) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> pulumi.Input[str]: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: pulumi.Input[str]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> pulumi.Input[str]: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @client_secret.setter + def client_secret(self, value: pulumi.Input[str]): + pulumi.set(self, "client_secret", value) + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> pulumi.Input[str]: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @id_attribute.setter + def id_attribute(self, value: pulumi.Input[str]): + pulumi.set(self, "id_attribute", value) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Input[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Input[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> pulumi.Input[str]: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @token_endpoint.setter + def token_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "token_endpoint", value) + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> pulumi.Input[str]: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + + @user_endpoint.setter + def user_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "user_endpoint", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @scopes.setter + def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "scopes", value) + + +@pulumi.input_type +class _IdpOauthState: + def __init__(__self__, *, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering IdpOauth resources. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + """ + _IdpOauthState._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + id_attribute=id_attribute, + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + name=name, + scopes=scopes, + token_endpoint=token_endpoint, + user_endpoint=user_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if 'clientId' in kwargs: + client_id = kwargs['clientId'] + if 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if 'idAttribute' in kwargs: + id_attribute = kwargs['idAttribute'] + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if 'userEndpoint' in kwargs: + user_endpoint = kwargs['userEndpoint'] + + if authorization_endpoint is not None: + _setter("authorization_endpoint", authorization_endpoint) + if client_id is not None: + _setter("client_id", client_id) + if client_secret is not None: + _setter("client_secret", client_secret) + if id_attribute is not None: + _setter("id_attribute", id_attribute) + if is_auto_creation is not None: + _setter("is_auto_creation", is_auto_creation) + if is_auto_update is not None: + _setter("is_auto_update", is_auto_update) + if is_creation_allowed is not None: + _setter("is_creation_allowed", is_creation_allowed) + if is_linking_allowed is not None: + _setter("is_linking_allowed", is_linking_allowed) + if name is not None: + _setter("name", name) + if scopes is not None: + _setter("scopes", scopes) + if token_endpoint is not None: + _setter("token_endpoint", token_endpoint) + if user_endpoint is not None: + _setter("user_endpoint", user_endpoint) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @authorization_endpoint.setter + def authorization_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "authorization_endpoint", value) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[pulumi.Input[str]]: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> Optional[pulumi.Input[str]]: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @client_secret.setter + def client_secret(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_secret", value) + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> Optional[pulumi.Input[str]]: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @id_attribute.setter + def id_attribute(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id_attribute", value) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @scopes.setter + def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "scopes", value) + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @token_endpoint.setter + def token_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "token_endpoint", value) + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + + @user_endpoint.setter + def user_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_endpoint", value) + + +class IdpOauth(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource representing a generic OAuth2 IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.IdpOauth("default", + name="GitLab", + client_id="15765e...", + client_secret="*****abcxyz", + authorization_endpoint="https://accounts.google.com/o/oauth2/v2/auth", + token_endpoint="https://oauth2.googleapis.com/token", + user_endpoint="https://openidconnect.googleapis.com/v1/userinfo", + id_attribute="user_id", + scopes=[ + "openid", + "profile", + "email", + ], + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True) + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/idpOauth:IdpOauth imported '123456789012345678:1234567890abcdef' + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: IdpOauthArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource representing a generic OAuth2 IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.IdpOauth("default", + name="GitLab", + client_id="15765e...", + client_secret="*****abcxyz", + authorization_endpoint="https://accounts.google.com/o/oauth2/v2/auth", + token_endpoint="https://oauth2.googleapis.com/token", + user_endpoint="https://openidconnect.googleapis.com/v1/userinfo", + id_attribute="user_id", + scopes=[ + "openid", + "profile", + "email", + ], + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True) + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/idpOauth:IdpOauth imported '123456789012345678:1234567890abcdef' + ``` + + :param str resource_name: The name of the resource. + :param IdpOauthArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(IdpOauthArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdpOauthArgs._configure(_setter, **kwargs) + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = IdpOauthArgs.__new__(IdpOauthArgs) + + if authorization_endpoint is None and not opts.urn: + raise TypeError("Missing required property 'authorization_endpoint'") + __props__.__dict__["authorization_endpoint"] = authorization_endpoint + if client_id is None and not opts.urn: + raise TypeError("Missing required property 'client_id'") + __props__.__dict__["client_id"] = client_id + if client_secret is None and not opts.urn: + raise TypeError("Missing required property 'client_secret'") + __props__.__dict__["client_secret"] = None if client_secret is None else pulumi.Output.secret(client_secret) + if id_attribute is None and not opts.urn: + raise TypeError("Missing required property 'id_attribute'") + __props__.__dict__["id_attribute"] = id_attribute + if is_auto_creation is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_creation'") + __props__.__dict__["is_auto_creation"] = is_auto_creation + if is_auto_update is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_update'") + __props__.__dict__["is_auto_update"] = is_auto_update + if is_creation_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_creation_allowed'") + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + if is_linking_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_linking_allowed'") + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + __props__.__dict__["name"] = name + __props__.__dict__["scopes"] = scopes + if token_endpoint is None and not opts.urn: + raise TypeError("Missing required property 'token_endpoint'") + __props__.__dict__["token_endpoint"] = token_endpoint + if user_endpoint is None and not opts.urn: + raise TypeError("Missing required property 'user_endpoint'") + __props__.__dict__["user_endpoint"] = user_endpoint + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["clientSecret"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(IdpOauth, __self__).__init__( + 'zitadel:index/idpOauth:IdpOauth', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None) -> 'IdpOauth': + """ + Get an existing IdpOauth resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _IdpOauthState.__new__(_IdpOauthState) + + __props__.__dict__["authorization_endpoint"] = authorization_endpoint + __props__.__dict__["client_id"] = client_id + __props__.__dict__["client_secret"] = client_secret + __props__.__dict__["id_attribute"] = id_attribute + __props__.__dict__["is_auto_creation"] = is_auto_creation + __props__.__dict__["is_auto_update"] = is_auto_update + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + __props__.__dict__["name"] = name + __props__.__dict__["scopes"] = scopes + __props__.__dict__["token_endpoint"] = token_endpoint + __props__.__dict__["user_endpoint"] = user_endpoint + return IdpOauth(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> pulumi.Output[str]: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> pulumi.Output[str]: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> pulumi.Output[str]: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> pulumi.Output[str]: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Output[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Output[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def scopes(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> pulumi.Output[str]: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> pulumi.Output[str]: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + diff --git a/sdk/python/pulumiverse_zitadel/idp_saml.py b/sdk/python/pulumiverse_zitadel/idp_saml.py new file mode 100644 index 0000000..bb0eba6 --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/idp_saml.py @@ -0,0 +1,681 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['IdpSamlArgs', 'IdpSaml'] + +@pulumi.input_type +class IdpSamlArgs: + def __init__(__self__, *, + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + metadata_xml: pulumi.Input[str], + binding: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None): + """ + The set of arguments for constructing a IdpSaml resource. + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + IdpSamlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + metadata_xml=metadata_xml, + binding=binding, + name=name, + with_signed_request=with_signed_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + metadata_xml: pulumi.Input[str], + binding: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'metadataXml' in kwargs: + metadata_xml = kwargs['metadataXml'] + if 'withSignedRequest' in kwargs: + with_signed_request = kwargs['withSignedRequest'] + + _setter("is_auto_creation", is_auto_creation) + _setter("is_auto_update", is_auto_update) + _setter("is_creation_allowed", is_creation_allowed) + _setter("is_linking_allowed", is_linking_allowed) + _setter("metadata_xml", metadata_xml) + if binding is not None: + _setter("binding", binding) + if name is not None: + _setter("name", name) + if with_signed_request is not None: + _setter("with_signed_request", with_signed_request) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Input[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Input[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> pulumi.Input[str]: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @metadata_xml.setter + def metadata_xml(self, value: pulumi.Input[str]): + pulumi.set(self, "metadata_xml", value) + + @property + @pulumi.getter + def binding(self) -> Optional[pulumi.Input[str]]: + """ + The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + """ + return pulumi.get(self, "binding") + + @binding.setter + def binding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "binding", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + + @with_signed_request.setter + def with_signed_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "with_signed_request", value) + + +@pulumi.input_type +class _IdpSamlState: + def __init__(__self__, *, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None): + """ + Input properties used for looking up and filtering IdpSaml resources. + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + _IdpSamlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + binding=binding, + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + metadata_xml=metadata_xml, + name=name, + with_signed_request=with_signed_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'metadataXml' in kwargs: + metadata_xml = kwargs['metadataXml'] + if 'withSignedRequest' in kwargs: + with_signed_request = kwargs['withSignedRequest'] + + if binding is not None: + _setter("binding", binding) + if is_auto_creation is not None: + _setter("is_auto_creation", is_auto_creation) + if is_auto_update is not None: + _setter("is_auto_update", is_auto_update) + if is_creation_allowed is not None: + _setter("is_creation_allowed", is_creation_allowed) + if is_linking_allowed is not None: + _setter("is_linking_allowed", is_linking_allowed) + if metadata_xml is not None: + _setter("metadata_xml", metadata_xml) + if name is not None: + _setter("name", name) + if with_signed_request is not None: + _setter("with_signed_request", with_signed_request) + + @property + @pulumi.getter + def binding(self) -> Optional[pulumi.Input[str]]: + """ + The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + """ + return pulumi.get(self, "binding") + + @binding.setter + def binding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "binding", value) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> Optional[pulumi.Input[str]]: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @metadata_xml.setter + def metadata_xml(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metadata_xml", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + + @with_signed_request.setter + def with_signed_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "with_signed_request", value) + + +class IdpSaml(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + __props__=None): + """ + Resource representing a SAML IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.IdpSaml("default", + name="LDAP", + binding="SAML_BINDING_POST", + with_signed_request=True, + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True, + metadata_xml=\"\"\" + + + + + + MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== + + + + urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + + + + + \"\"\") + ``` + ## Loading the XML Metadata + + If you don't want to pass the XML metadata inline, you have plenty of options. For example: + - local_file Data Source + - http Data Source + - terracurl_request Data Source + - ... + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/idpSaml:IdpSaml imported '123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: IdpSamlArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource representing a SAML IDP on the instance. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.IdpSaml("default", + name="LDAP", + binding="SAML_BINDING_POST", + with_signed_request=True, + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True, + metadata_xml=\"\"\" + + + + + + MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== + + + + urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + + + + + \"\"\") + ``` + ## Loading the XML Metadata + + If you don't want to pass the XML metadata inline, you have plenty of options. For example: + - local_file Data Source + - http Data Source + - terracurl_request Data Source + - ... + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/idpSaml:IdpSaml imported '123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param IdpSamlArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(IdpSamlArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + IdpSamlArgs._configure(_setter, **kwargs) + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = IdpSamlArgs.__new__(IdpSamlArgs) + + __props__.__dict__["binding"] = binding + if is_auto_creation is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_creation'") + __props__.__dict__["is_auto_creation"] = is_auto_creation + if is_auto_update is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_update'") + __props__.__dict__["is_auto_update"] = is_auto_update + if is_creation_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_creation_allowed'") + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + if is_linking_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_linking_allowed'") + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + if metadata_xml is None and not opts.urn: + raise TypeError("Missing required property 'metadata_xml'") + __props__.__dict__["metadata_xml"] = metadata_xml + __props__.__dict__["name"] = name + __props__.__dict__["with_signed_request"] = with_signed_request + super(IdpSaml, __self__).__init__( + 'zitadel:index/idpSaml:IdpSaml', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None) -> 'IdpSaml': + """ + Get an existing IdpSaml resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _IdpSamlState.__new__(_IdpSamlState) + + __props__.__dict__["binding"] = binding + __props__.__dict__["is_auto_creation"] = is_auto_creation + __props__.__dict__["is_auto_update"] = is_auto_update + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + __props__.__dict__["metadata_xml"] = metadata_xml + __props__.__dict__["name"] = name + __props__.__dict__["with_signed_request"] = with_signed_request + return IdpSaml(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def binding(self) -> pulumi.Output[Optional[str]]: + """ + The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + """ + return pulumi.get(self, "binding") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Output[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Output[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> pulumi.Output[str]: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> pulumi.Output[Optional[bool]]: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + diff --git a/sdk/python/pulumiverse_zitadel/instance_member.py b/sdk/python/pulumiverse_zitadel/instance_member.py index ea2fe5e..7924737 100644 --- a/sdk/python/pulumiverse_zitadel/instance_member.py +++ b/sdk/python/pulumiverse_zitadel/instance_member.py @@ -143,7 +143,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/instanceMember:InstanceMember imported '123456789012345678' @@ -176,7 +176,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/instanceMember:InstanceMember imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/label_policy.py b/sdk/python/pulumiverse_zitadel/label_policy.py index 9db8083..66fbd7d 100644 --- a/sdk/python/pulumiverse_zitadel/label_policy.py +++ b/sdk/python/pulumiverse_zitadel/label_policy.py @@ -35,7 +35,8 @@ def __init__(__self__, *, logo_hash: Optional[pulumi.Input[str]] = None, logo_path: Optional[pulumi.Input[str]] = None, org_id: Optional[pulumi.Input[str]] = None, - set_active: Optional[pulumi.Input[bool]] = None): + set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a LabelPolicy resource. :param pulumi.Input[str] background_color: hex value for background color @@ -50,6 +51,7 @@ def __init__(__self__, *, :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme :param pulumi.Input[str] org_id: ID of the organization :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT """ LabelPolicyArgs._configure( lambda key, value: pulumi.set(__self__, key, value), @@ -75,6 +77,7 @@ def __init__(__self__, *, logo_path=logo_path, org_id=org_id, set_active=set_active, + theme_mode=theme_mode, ) @staticmethod def _configure( @@ -101,6 +104,7 @@ def _configure( logo_path: Optional[pulumi.Input[str]] = None, org_id: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.ResourceOptions]=None, **kwargs): if 'backgroundColor' in kwargs: @@ -147,6 +151,8 @@ def _configure( org_id = kwargs['orgId'] if 'setActive' in kwargs: set_active = kwargs['setActive'] + if 'themeMode' in kwargs: + theme_mode = kwargs['themeMode'] _setter("background_color", background_color) _setter("background_color_dark", background_color_dark) @@ -182,6 +188,8 @@ def _configure( _setter("org_id", org_id) if set_active is not None: _setter("set_active", set_active) + if theme_mode is not None: + _setter("theme_mode", theme_mode) @property @pulumi.getter(name="backgroundColor") @@ -417,6 +425,18 @@ def set_active(self) -> Optional[pulumi.Input[bool]]: def set_active(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "set_active", value) + @property + @pulumi.getter(name="themeMode") + def theme_mode(self) -> Optional[pulumi.Input[str]]: + """ + theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + """ + return pulumi.get(self, "theme_mode") + + @theme_mode.setter + def theme_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "theme_mode", value) + @pulumi.input_type class _LabelPolicyState: @@ -446,6 +466,7 @@ def __init__(__self__, *, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None): """ @@ -460,6 +481,7 @@ def __init__(__self__, *, :param pulumi.Input[str] primary_color: hex value for primary color :param pulumi.Input[str] primary_color_dark: hex value for primary color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme """ @@ -490,6 +512,7 @@ def __init__(__self__, *, primary_color=primary_color, primary_color_dark=primary_color_dark, set_active=set_active, + theme_mode=theme_mode, warn_color=warn_color, warn_color_dark=warn_color_dark, ) @@ -521,6 +544,7 @@ def _configure( primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.ResourceOptions]=None, @@ -575,6 +599,8 @@ def _configure( primary_color_dark = kwargs['primaryColorDark'] if 'setActive' in kwargs: set_active = kwargs['setActive'] + if 'themeMode' in kwargs: + theme_mode = kwargs['themeMode'] if 'warnColor' in kwargs: warn_color = kwargs['warnColor'] if 'warnColorDark' in kwargs: @@ -630,6 +656,8 @@ def _configure( _setter("primary_color_dark", primary_color_dark) if set_active is not None: _setter("set_active", set_active) + if theme_mode is not None: + _setter("theme_mode", theme_mode) if warn_color is not None: _setter("warn_color", warn_color) if warn_color_dark is not None: @@ -890,6 +918,18 @@ def set_active(self) -> Optional[pulumi.Input[bool]]: def set_active(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "set_active", value) + @property + @pulumi.getter(name="themeMode") + def theme_mode(self) -> Optional[pulumi.Input[str]]: + """ + theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + """ + return pulumi.get(self, "theme_mode") + + @theme_mode.setter + def theme_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "theme_mode", value) + @property @pulumi.getter(name="warnColor") def warn_color(self) -> Optional[pulumi.Input[str]]: @@ -940,6 +980,7 @@ def __init__(__self__, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None, __props__=None): @@ -948,7 +989,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/labelPolicy:LabelPolicy imported '123456789012345678' @@ -966,6 +1007,7 @@ def __init__(__self__, :param pulumi.Input[str] primary_color: hex value for primary color :param pulumi.Input[str] primary_color_dark: hex value for primary color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme """ @@ -980,7 +1022,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/labelPolicy:LabelPolicy imported '123456789012345678' @@ -1025,6 +1067,7 @@ def _internal_init(__self__, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None, __props__=None): @@ -1072,6 +1115,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'primary_color_dark'") __props__.__dict__["primary_color_dark"] = primary_color_dark __props__.__dict__["set_active"] = set_active + __props__.__dict__["theme_mode"] = theme_mode if warn_color is None and not opts.urn: raise TypeError("Missing required property 'warn_color'") __props__.__dict__["warn_color"] = warn_color @@ -1118,6 +1162,7 @@ def get(resource_name: str, primary_color: Optional[pulumi.Input[str]] = None, primary_color_dark: Optional[pulumi.Input[str]] = None, set_active: Optional[pulumi.Input[bool]] = None, + theme_mode: Optional[pulumi.Input[str]] = None, warn_color: Optional[pulumi.Input[str]] = None, warn_color_dark: Optional[pulumi.Input[str]] = None) -> 'LabelPolicy': """ @@ -1137,6 +1182,7 @@ def get(resource_name: str, :param pulumi.Input[str] primary_color: hex value for primary color :param pulumi.Input[str] primary_color_dark: hex value for primary color dark theme :param pulumi.Input[bool] set_active: set the label policy active after creating/updating + :param pulumi.Input[str] theme_mode: theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT :param pulumi.Input[str] warn_color: hex value for warn color :param pulumi.Input[str] warn_color_dark: hex value for warn color dark theme """ @@ -1169,6 +1215,7 @@ def get(resource_name: str, __props__.__dict__["primary_color"] = primary_color __props__.__dict__["primary_color_dark"] = primary_color_dark __props__.__dict__["set_active"] = set_active + __props__.__dict__["theme_mode"] = theme_mode __props__.__dict__["warn_color"] = warn_color __props__.__dict__["warn_color_dark"] = warn_color_dark return LabelPolicy(resource_name, opts=opts, __props__=__props__) @@ -1328,6 +1375,14 @@ def set_active(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "set_active") + @property + @pulumi.getter(name="themeMode") + def theme_mode(self) -> pulumi.Output[Optional[str]]: + """ + theme mode, supported values: THEME*MODE*UNSPECIFIED, THEME*MODE*AUTO, THEME*MODE*DARK, THEME*MODE*LIGHT + """ + return pulumi.get(self, "theme_mode") + @property @pulumi.getter(name="warnColor") def warn_color(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumiverse_zitadel/lockout_policy.py b/sdk/python/pulumiverse_zitadel/lockout_policy.py index 7b5f7e1..e023aed 100644 --- a/sdk/python/pulumiverse_zitadel/lockout_policy.py +++ b/sdk/python/pulumiverse_zitadel/lockout_policy.py @@ -148,7 +148,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/lockoutPolicy:LockoutPolicy imported '123456789012345678' @@ -181,7 +181,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/lockoutPolicy:LockoutPolicy imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/login_policy.py b/sdk/python/pulumiverse_zitadel/login_policy.py index 46df5d5..1671d6f 100644 --- a/sdk/python/pulumiverse_zitadel/login_policy.py +++ b/sdk/python/pulumiverse_zitadel/login_policy.py @@ -895,7 +895,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/loginPolicy:LoginPolicy imported '123456789012345678' @@ -967,7 +967,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/loginPolicy:LoginPolicy imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/machine_key.py b/sdk/python/pulumiverse_zitadel/machine_key.py index 2214a0f..2776a36 100644 --- a/sdk/python/pulumiverse_zitadel/machine_key.py +++ b/sdk/python/pulumiverse_zitadel/machine_key.py @@ -251,7 +251,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/machineKey:MachineKey imported '123456789012345678:123456789012345678:123456789012345678:{"type":"serviceaccount","keyId":"123456789012345678","key":"-----BEGIN RSA PRIVATE KEY-----\\nMIIEpQ...-----END RSA PRIVATE KEY-----\\n","userId":"123456789012345678"}' @@ -288,7 +288,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/machineKey:MachineKey imported '123456789012345678:123456789012345678:123456789012345678:{"type":"serviceaccount","keyId":"123456789012345678","key":"-----BEGIN RSA PRIVATE KEY-----\\nMIIEpQ...-----END RSA PRIVATE KEY-----\\n","userId":"123456789012345678"}' diff --git a/sdk/python/pulumiverse_zitadel/machine_user.py b/sdk/python/pulumiverse_zitadel/machine_user.py index 896f545..5d01497 100644 --- a/sdk/python/pulumiverse_zitadel/machine_user.py +++ b/sdk/python/pulumiverse_zitadel/machine_user.py @@ -405,7 +405,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/machineUser:MachineUser imported '123456789012345678:123456789012345678:true:my-machine-user:j76mh34CHVrGGoXPQOg80lch67FIxwc2qIXjBkZoB6oMbf31eGMkB6bvRyaPjR2t' @@ -445,7 +445,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/machineUser:MachineUser imported '123456789012345678:123456789012345678:true:my-machine-user:j76mh34CHVrGGoXPQOg80lch67FIxwc2qIXjBkZoB6oMbf31eGMkB6bvRyaPjR2t' diff --git a/sdk/python/pulumiverse_zitadel/notification_policy.py b/sdk/python/pulumiverse_zitadel/notification_policy.py index bbaf7fe..e9a3857 100644 --- a/sdk/python/pulumiverse_zitadel/notification_policy.py +++ b/sdk/python/pulumiverse_zitadel/notification_policy.py @@ -148,7 +148,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/notificationPolicy:NotificationPolicy imported '123456789012345678' @@ -181,7 +181,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/notificationPolicy:NotificationPolicy imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/org.py b/sdk/python/pulumiverse_zitadel/org.py index 74edca5..ef23dfc 100644 --- a/sdk/python/pulumiverse_zitadel/org.py +++ b/sdk/python/pulumiverse_zitadel/org.py @@ -181,7 +181,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/org:Org imported '123456789012345678' @@ -212,7 +212,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/org:Org imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_azure_ad.py b/sdk/python/pulumiverse_zitadel/org_idp_azure_ad.py index afc0a82..17d75ff 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_azure_ad.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_azure_ad.py @@ -558,7 +558,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpAzureAd:OrgIdpAzureAd imported '123456789012345678:123456789012345678:12345678-1234-1234-1234-123456789012' @@ -615,7 +615,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpAzureAd:OrgIdpAzureAd imported '123456789012345678:123456789012345678:12345678-1234-1234-1234-123456789012' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_github.py b/sdk/python/pulumiverse_zitadel/org_idp_github.py index dc98477..8d41304 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_github.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_github.py @@ -433,7 +433,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGithub:OrgIdpGithub imported '123456789012345678:123456789012345678:1234567890123456781234567890123456787890' @@ -484,7 +484,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGithub:OrgIdpGithub imported '123456789012345678:123456789012345678:1234567890123456781234567890123456787890' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_github_es.py b/sdk/python/pulumiverse_zitadel/org_idp_github_es.py index c17f2cd..e49e5f4 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_github_es.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_github_es.py @@ -556,7 +556,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGithubEs:OrgIdpGithubEs imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' @@ -613,7 +613,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGithubEs:OrgIdpGithubEs imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_gitlab.py b/sdk/python/pulumiverse_zitadel/org_idp_gitlab.py index e8a94f8..3f64f64 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_gitlab.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_gitlab.py @@ -433,7 +433,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGitlab:OrgIdpGitlab imported '123456789012345678:123456789012345678:1234567890abcdef' @@ -484,7 +484,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGitlab:OrgIdpGitlab imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_gitlab_self_hosted.py b/sdk/python/pulumiverse_zitadel/org_idp_gitlab_self_hosted.py index 233caf4..15c108e 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_gitlab_self_hosted.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_gitlab_self_hosted.py @@ -470,7 +470,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted imported '123456789012345678:123456789012345678:1234567890abcdef' @@ -523,7 +523,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGitlabSelfHosted:OrgIdpGitlabSelfHosted imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_google.py b/sdk/python/pulumiverse_zitadel/org_idp_google.py index 7fc3ec9..5384f38 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_google.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_google.py @@ -433,7 +433,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGoogle:OrgIdpGoogle imported '123456789012345678:123456789012345678:G1234567890123' @@ -484,7 +484,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpGoogle:OrgIdpGoogle imported '123456789012345678:123456789012345678:G1234567890123' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_jwt.py b/sdk/python/pulumiverse_zitadel/org_idp_jwt.py index da07214..e7e436b 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_jwt.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_jwt.py @@ -387,7 +387,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpJwt:OrgIdpJwt imported '123456789012345678:123456789012345678' @@ -432,7 +432,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpJwt:OrgIdpJwt imported '123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_ldap.py b/sdk/python/pulumiverse_zitadel/org_idp_ldap.py index db90923..4a30fd8 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_ldap.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_ldap.py @@ -1212,7 +1212,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpLdap:OrgIdpLdap imported '123456789012345678:123456789012345678:b1nd_p4ssw0rd' @@ -1293,7 +1293,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpLdap:OrgIdpLdap imported '123456789012345678:123456789012345678:b1nd_p4ssw0rd' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_oauth.py b/sdk/python/pulumiverse_zitadel/org_idp_oauth.py new file mode 100644 index 0000000..cd04890 --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/org_idp_oauth.py @@ -0,0 +1,907 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['OrgIdpOauthArgs', 'OrgIdpOauth'] + +@pulumi.input_type +class OrgIdpOauthArgs: + def __init__(__self__, *, + authorization_endpoint: pulumi.Input[str], + client_id: pulumi.Input[str], + client_secret: pulumi.Input[str], + id_attribute: pulumi.Input[str], + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + token_endpoint: pulumi.Input[str], + user_endpoint: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a OrgIdpOauth resource. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + """ + OrgIdpOauthArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + id_attribute=id_attribute, + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + token_endpoint=token_endpoint, + user_endpoint=user_endpoint, + name=name, + org_id=org_id, + scopes=scopes, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: pulumi.Input[str], + client_id: pulumi.Input[str], + client_secret: pulumi.Input[str], + id_attribute: pulumi.Input[str], + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + token_endpoint: pulumi.Input[str], + user_endpoint: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if 'clientId' in kwargs: + client_id = kwargs['clientId'] + if 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if 'idAttribute' in kwargs: + id_attribute = kwargs['idAttribute'] + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if 'userEndpoint' in kwargs: + user_endpoint = kwargs['userEndpoint'] + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + + _setter("authorization_endpoint", authorization_endpoint) + _setter("client_id", client_id) + _setter("client_secret", client_secret) + _setter("id_attribute", id_attribute) + _setter("is_auto_creation", is_auto_creation) + _setter("is_auto_update", is_auto_update) + _setter("is_creation_allowed", is_creation_allowed) + _setter("is_linking_allowed", is_linking_allowed) + _setter("token_endpoint", token_endpoint) + _setter("user_endpoint", user_endpoint) + if name is not None: + _setter("name", name) + if org_id is not None: + _setter("org_id", org_id) + if scopes is not None: + _setter("scopes", scopes) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> pulumi.Input[str]: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @authorization_endpoint.setter + def authorization_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "authorization_endpoint", value) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> pulumi.Input[str]: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: pulumi.Input[str]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> pulumi.Input[str]: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @client_secret.setter + def client_secret(self, value: pulumi.Input[str]): + pulumi.set(self, "client_secret", value) + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> pulumi.Input[str]: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @id_attribute.setter + def id_attribute(self, value: pulumi.Input[str]): + pulumi.set(self, "id_attribute", value) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Input[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Input[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> pulumi.Input[str]: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @token_endpoint.setter + def token_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "token_endpoint", value) + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> pulumi.Input[str]: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + + @user_endpoint.setter + def user_endpoint(self, value: pulumi.Input[str]): + pulumi.set(self, "user_endpoint", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter + def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @scopes.setter + def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "scopes", value) + + +@pulumi.input_type +class _OrgIdpOauthState: + def __init__(__self__, *, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering OrgIdpOauth resources. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + """ + _OrgIdpOauthState._configure( + lambda key, value: pulumi.set(__self__, key, value), + authorization_endpoint=authorization_endpoint, + client_id=client_id, + client_secret=client_secret, + id_attribute=id_attribute, + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + name=name, + org_id=org_id, + scopes=scopes, + token_endpoint=token_endpoint, + user_endpoint=user_endpoint, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'authorizationEndpoint' in kwargs: + authorization_endpoint = kwargs['authorizationEndpoint'] + if 'clientId' in kwargs: + client_id = kwargs['clientId'] + if 'clientSecret' in kwargs: + client_secret = kwargs['clientSecret'] + if 'idAttribute' in kwargs: + id_attribute = kwargs['idAttribute'] + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + if 'tokenEndpoint' in kwargs: + token_endpoint = kwargs['tokenEndpoint'] + if 'userEndpoint' in kwargs: + user_endpoint = kwargs['userEndpoint'] + + if authorization_endpoint is not None: + _setter("authorization_endpoint", authorization_endpoint) + if client_id is not None: + _setter("client_id", client_id) + if client_secret is not None: + _setter("client_secret", client_secret) + if id_attribute is not None: + _setter("id_attribute", id_attribute) + if is_auto_creation is not None: + _setter("is_auto_creation", is_auto_creation) + if is_auto_update is not None: + _setter("is_auto_update", is_auto_update) + if is_creation_allowed is not None: + _setter("is_creation_allowed", is_creation_allowed) + if is_linking_allowed is not None: + _setter("is_linking_allowed", is_linking_allowed) + if name is not None: + _setter("name", name) + if org_id is not None: + _setter("org_id", org_id) + if scopes is not None: + _setter("scopes", scopes) + if token_endpoint is not None: + _setter("token_endpoint", token_endpoint) + if user_endpoint is not None: + _setter("user_endpoint", user_endpoint) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @authorization_endpoint.setter + def authorization_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "authorization_endpoint", value) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[pulumi.Input[str]]: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> Optional[pulumi.Input[str]]: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @client_secret.setter + def client_secret(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_secret", value) + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> Optional[pulumi.Input[str]]: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @id_attribute.setter + def id_attribute(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id_attribute", value) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter + def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @scopes.setter + def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "scopes", value) + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @token_endpoint.setter + def token_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "token_endpoint", value) + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + + @user_endpoint.setter + def user_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_endpoint", value) + + +class OrgIdpOauth(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource representing a generic OAuth2 IDP on the organization. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.OrgIdpOauth("default", + org_id=default_zitadel_org["id"], + name="GitLab", + client_id="15765e...", + client_secret="*****abcxyz", + authorization_endpoint="https://accounts.google.com/o/oauth2/v2/auth", + token_endpoint="https://oauth2.googleapis.com/token", + user_endpoint="https://openidconnect.googleapis.com/v1/userinfo", + id_attribute="user_id", + scopes=[ + "openid", + "profile", + "email", + ], + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True) + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/orgIdpOauth:OrgIdpOauth imported '123456789012345678:123456789012345678:1234567890abcdef' + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: OrgIdpOauthArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource representing a generic OAuth2 IDP on the organization. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.OrgIdpOauth("default", + org_id=default_zitadel_org["id"], + name="GitLab", + client_id="15765e...", + client_secret="*****abcxyz", + authorization_endpoint="https://accounts.google.com/o/oauth2/v2/auth", + token_endpoint="https://oauth2.googleapis.com/token", + user_endpoint="https://openidconnect.googleapis.com/v1/userinfo", + id_attribute="user_id", + scopes=[ + "openid", + "profile", + "email", + ], + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True) + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/orgIdpOauth:OrgIdpOauth imported '123456789012345678:123456789012345678:1234567890abcdef' + ``` + + :param str resource_name: The name of the resource. + :param OrgIdpOauthArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(OrgIdpOauthArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrgIdpOauthArgs._configure(_setter, **kwargs) + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = OrgIdpOauthArgs.__new__(OrgIdpOauthArgs) + + if authorization_endpoint is None and not opts.urn: + raise TypeError("Missing required property 'authorization_endpoint'") + __props__.__dict__["authorization_endpoint"] = authorization_endpoint + if client_id is None and not opts.urn: + raise TypeError("Missing required property 'client_id'") + __props__.__dict__["client_id"] = client_id + if client_secret is None and not opts.urn: + raise TypeError("Missing required property 'client_secret'") + __props__.__dict__["client_secret"] = None if client_secret is None else pulumi.Output.secret(client_secret) + if id_attribute is None and not opts.urn: + raise TypeError("Missing required property 'id_attribute'") + __props__.__dict__["id_attribute"] = id_attribute + if is_auto_creation is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_creation'") + __props__.__dict__["is_auto_creation"] = is_auto_creation + if is_auto_update is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_update'") + __props__.__dict__["is_auto_update"] = is_auto_update + if is_creation_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_creation_allowed'") + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + if is_linking_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_linking_allowed'") + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + __props__.__dict__["name"] = name + __props__.__dict__["org_id"] = org_id + __props__.__dict__["scopes"] = scopes + if token_endpoint is None and not opts.urn: + raise TypeError("Missing required property 'token_endpoint'") + __props__.__dict__["token_endpoint"] = token_endpoint + if user_endpoint is None and not opts.urn: + raise TypeError("Missing required property 'user_endpoint'") + __props__.__dict__["user_endpoint"] = user_endpoint + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["clientSecret"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(OrgIdpOauth, __self__).__init__( + 'zitadel:index/orgIdpOauth:OrgIdpOauth', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + authorization_endpoint: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, + client_secret: Optional[pulumi.Input[str]] = None, + id_attribute: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + token_endpoint: Optional[pulumi.Input[str]] = None, + user_endpoint: Optional[pulumi.Input[str]] = None) -> 'OrgIdpOauth': + """ + Get an existing OrgIdpOauth resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] authorization_endpoint: The authorization endpoint + :param pulumi.Input[str] client_id: client id generated by the identity provider + :param pulumi.Input[str] client_secret: client secret generated by the identity provider + :param pulumi.Input[str] id_attribute: The id attribute + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: the scopes requested by ZITADEL during the request on the identity provider + :param pulumi.Input[str] token_endpoint: The token endpoint + :param pulumi.Input[str] user_endpoint: The user endpoint + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _OrgIdpOauthState.__new__(_OrgIdpOauthState) + + __props__.__dict__["authorization_endpoint"] = authorization_endpoint + __props__.__dict__["client_id"] = client_id + __props__.__dict__["client_secret"] = client_secret + __props__.__dict__["id_attribute"] = id_attribute + __props__.__dict__["is_auto_creation"] = is_auto_creation + __props__.__dict__["is_auto_update"] = is_auto_update + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + __props__.__dict__["name"] = name + __props__.__dict__["org_id"] = org_id + __props__.__dict__["scopes"] = scopes + __props__.__dict__["token_endpoint"] = token_endpoint + __props__.__dict__["user_endpoint"] = user_endpoint + return OrgIdpOauth(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="authorizationEndpoint") + def authorization_endpoint(self) -> pulumi.Output[str]: + """ + The authorization endpoint + """ + return pulumi.get(self, "authorization_endpoint") + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> pulumi.Output[str]: + """ + client id generated by the identity provider + """ + return pulumi.get(self, "client_id") + + @property + @pulumi.getter(name="clientSecret") + def client_secret(self) -> pulumi.Output[str]: + """ + client secret generated by the identity provider + """ + return pulumi.get(self, "client_secret") + + @property + @pulumi.getter(name="idAttribute") + def id_attribute(self) -> pulumi.Output[str]: + """ + The id attribute + """ + return pulumi.get(self, "id_attribute") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Output[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Output[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> pulumi.Output[Optional[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter + def scopes(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + the scopes requested by ZITADEL during the request on the identity provider + """ + return pulumi.get(self, "scopes") + + @property + @pulumi.getter(name="tokenEndpoint") + def token_endpoint(self) -> pulumi.Output[str]: + """ + The token endpoint + """ + return pulumi.get(self, "token_endpoint") + + @property + @pulumi.getter(name="userEndpoint") + def user_endpoint(self) -> pulumi.Output[str]: + """ + The user endpoint + """ + return pulumi.get(self, "user_endpoint") + diff --git a/sdk/python/pulumiverse_zitadel/org_idp_oidc.py b/sdk/python/pulumiverse_zitadel/org_idp_oidc.py index a48b9cf..8f1d951 100644 --- a/sdk/python/pulumiverse_zitadel/org_idp_oidc.py +++ b/sdk/python/pulumiverse_zitadel/org_idp_oidc.py @@ -511,7 +511,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpOidc:OrgIdpOidc imported '123456789012345678:123456789012345678:1234567890abcdef' @@ -566,7 +566,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgIdpOidc:OrgIdpOidc imported '123456789012345678:123456789012345678:1234567890abcdef' diff --git a/sdk/python/pulumiverse_zitadel/org_idp_saml.py b/sdk/python/pulumiverse_zitadel/org_idp_saml.py new file mode 100644 index 0000000..69ea01d --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/org_idp_saml.py @@ -0,0 +1,738 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['OrgIdpSamlArgs', 'OrgIdpSaml'] + +@pulumi.input_type +class OrgIdpSamlArgs: + def __init__(__self__, *, + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + metadata_xml: pulumi.Input[str], + binding: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None): + """ + The set of arguments for constructing a OrgIdpSaml resource. + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + OrgIdpSamlArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + metadata_xml=metadata_xml, + binding=binding, + name=name, + org_id=org_id, + with_signed_request=with_signed_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + is_auto_creation: pulumi.Input[bool], + is_auto_update: pulumi.Input[bool], + is_creation_allowed: pulumi.Input[bool], + is_linking_allowed: pulumi.Input[bool], + metadata_xml: pulumi.Input[str], + binding: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'metadataXml' in kwargs: + metadata_xml = kwargs['metadataXml'] + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + if 'withSignedRequest' in kwargs: + with_signed_request = kwargs['withSignedRequest'] + + _setter("is_auto_creation", is_auto_creation) + _setter("is_auto_update", is_auto_update) + _setter("is_creation_allowed", is_creation_allowed) + _setter("is_linking_allowed", is_linking_allowed) + _setter("metadata_xml", metadata_xml) + if binding is not None: + _setter("binding", binding) + if name is not None: + _setter("name", name) + if org_id is not None: + _setter("org_id", org_id) + if with_signed_request is not None: + _setter("with_signed_request", with_signed_request) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Input[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Input[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Input[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: pulumi.Input[bool]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> pulumi.Input[str]: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @metadata_xml.setter + def metadata_xml(self, value: pulumi.Input[str]): + pulumi.set(self, "metadata_xml", value) + + @property + @pulumi.getter + def binding(self) -> Optional[pulumi.Input[str]]: + """ + The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + """ + return pulumi.get(self, "binding") + + @binding.setter + def binding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "binding", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + + @with_signed_request.setter + def with_signed_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "with_signed_request", value) + + +@pulumi.input_type +class _OrgIdpSamlState: + def __init__(__self__, *, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None): + """ + Input properties used for looking up and filtering OrgIdpSaml resources. + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + _OrgIdpSamlState._configure( + lambda key, value: pulumi.set(__self__, key, value), + binding=binding, + is_auto_creation=is_auto_creation, + is_auto_update=is_auto_update, + is_creation_allowed=is_creation_allowed, + is_linking_allowed=is_linking_allowed, + metadata_xml=metadata_xml, + name=name, + org_id=org_id, + with_signed_request=with_signed_request, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'isAutoCreation' in kwargs: + is_auto_creation = kwargs['isAutoCreation'] + if 'isAutoUpdate' in kwargs: + is_auto_update = kwargs['isAutoUpdate'] + if 'isCreationAllowed' in kwargs: + is_creation_allowed = kwargs['isCreationAllowed'] + if 'isLinkingAllowed' in kwargs: + is_linking_allowed = kwargs['isLinkingAllowed'] + if 'metadataXml' in kwargs: + metadata_xml = kwargs['metadataXml'] + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + if 'withSignedRequest' in kwargs: + with_signed_request = kwargs['withSignedRequest'] + + if binding is not None: + _setter("binding", binding) + if is_auto_creation is not None: + _setter("is_auto_creation", is_auto_creation) + if is_auto_update is not None: + _setter("is_auto_update", is_auto_update) + if is_creation_allowed is not None: + _setter("is_creation_allowed", is_creation_allowed) + if is_linking_allowed is not None: + _setter("is_linking_allowed", is_linking_allowed) + if metadata_xml is not None: + _setter("metadata_xml", metadata_xml) + if name is not None: + _setter("name", name) + if org_id is not None: + _setter("org_id", org_id) + if with_signed_request is not None: + _setter("with_signed_request", with_signed_request) + + @property + @pulumi.getter + def binding(self) -> Optional[pulumi.Input[str]]: + """ + The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + """ + return pulumi.get(self, "binding") + + @binding.setter + def binding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "binding", value) + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @is_auto_creation.setter + def is_auto_creation(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_creation", value) + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> Optional[pulumi.Input[bool]]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @is_auto_update.setter + def is_auto_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_auto_update", value) + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @is_creation_allowed.setter + def is_creation_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_creation_allowed", value) + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> Optional[pulumi.Input[bool]]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @is_linking_allowed.setter + def is_linking_allowed(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_linking_allowed", value) + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> Optional[pulumi.Input[str]]: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @metadata_xml.setter + def metadata_xml(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metadata_xml", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + + @with_signed_request.setter + def with_signed_request(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "with_signed_request", value) + + +class OrgIdpSaml(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + __props__=None): + """ + Resource representing a SAML IdP on the organization. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.OrgIdpSaml("default", + org_id=default_zitadel_org["id"], + name="LDAP", + binding="SAML_BINDING_POST", + with_signed_request=True, + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True, + metadata_xml=\"\"\" + + + + + + MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== + + + + urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + + + + + \"\"\") + ``` + ## Loading the XML Metadata + + If you don't want to pass the XML metadata inline, you have plenty of options. For example: + - local_file Data Source + - http Data Source + - terracurl_request Data Source + - ... + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/orgIdpSaml:OrgIdpSaml imported '123456789012345678:123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: OrgIdpSamlArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource representing a SAML IdP on the organization. + + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.OrgIdpSaml("default", + org_id=default_zitadel_org["id"], + name="LDAP", + binding="SAML_BINDING_POST", + with_signed_request=True, + is_linking_allowed=False, + is_creation_allowed=True, + is_auto_creation=False, + is_auto_update=True, + metadata_xml=\"\"\" + + + + + + MIIC4jCCAcoCCQC33wnybT5QZDANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJV + SzEPMA0GA1UECgwGQm94eUhRMRIwEAYDVQQDDAlNb2NrIFNBTUwwIBcNMjIwMjI4 + MjE0NjM4WhgPMzAyMTA3MDEyMTQ2MzhaMDIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQK + DAZCb3h5SFExEjAQBgNVBAMMCU1vY2sgU0FNTDCCASIwDQYJKoZIhvcNAQEBBQAD + ggEPADCCAQoCggEBALGfYettMsct1T6tVUwTudNJH5Pnb9GGnkXi9Zw/e6x45DD0 + RuRONbFlJ2T4RjAE/uG+AjXxXQ8o2SZfb9+GgmCHuTJFNgHoZ1nFVXCmb/Hg8Hpd + 4vOAGXndixaReOiq3EH5XvpMjMkJ3+8+9VYMzMZOjkgQtAqO36eAFFfNKX7dTj3V + pwLkvz6/KFCq8OAwY+AUi4eZm5J57D31GzjHwfjH9WTeX0MyndmnNB1qV75qQR3b + 2/W5sGHRv+9AarggJkF+ptUkXoLtVA51wcfYm6hILptpde5FQC8RWY1YrswBWAEZ + NfyrR4JeSweElNHg4NVOs4TwGjOPwWGqzTfgTlECAwEAATANBgkqhkiG9w0BAQsF + AAOCAQEAAYRlYflSXAWoZpFfwNiCQVE5d9zZ0DPzNdWhAybXcTyMf0z5mDf6FWBW + 5Gyoi9u3EMEDnzLcJNkwJAAc39Apa4I2/tml+Jy29dk8bTyX6m93ngmCgdLh5Za4 + khuU3AM3L63g7VexCuO7kwkjh/+LqdcIXsVGO6XDfu2QOs1Xpe9zIzLpwm/RNYeX + UjbSj5ce/jekpAw7qyVVL4xOyh8AtUW1ek3wIw1MJvEgEPt0d16oshWJpoS1OT8L + r/22SvYEo3EmSGdTVGgk3x3s+A0qWAqTcyjr7Q4s/GKYRFfomGwz0TZ4Iw1ZN99M + m0eo2USlSRTVl7QHRTuiuSThHpLKQQ== + + + + urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + + + + + \"\"\") + ``` + ## Loading the XML Metadata + + If you don't want to pass the XML metadata inline, you have plenty of options. For example: + - local_file Data Source + - http Data Source + - terracurl_request Data Source + - ... + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/orgIdpSaml:OrgIdpSaml imported '123456789012345678:123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param OrgIdpSamlArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(OrgIdpSamlArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrgIdpSamlArgs._configure(_setter, **kwargs) + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = OrgIdpSamlArgs.__new__(OrgIdpSamlArgs) + + __props__.__dict__["binding"] = binding + if is_auto_creation is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_creation'") + __props__.__dict__["is_auto_creation"] = is_auto_creation + if is_auto_update is None and not opts.urn: + raise TypeError("Missing required property 'is_auto_update'") + __props__.__dict__["is_auto_update"] = is_auto_update + if is_creation_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_creation_allowed'") + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + if is_linking_allowed is None and not opts.urn: + raise TypeError("Missing required property 'is_linking_allowed'") + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + if metadata_xml is None and not opts.urn: + raise TypeError("Missing required property 'metadata_xml'") + __props__.__dict__["metadata_xml"] = metadata_xml + __props__.__dict__["name"] = name + __props__.__dict__["org_id"] = org_id + __props__.__dict__["with_signed_request"] = with_signed_request + super(OrgIdpSaml, __self__).__init__( + 'zitadel:index/orgIdpSaml:OrgIdpSaml', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + binding: Optional[pulumi.Input[str]] = None, + is_auto_creation: Optional[pulumi.Input[bool]] = None, + is_auto_update: Optional[pulumi.Input[bool]] = None, + is_creation_allowed: Optional[pulumi.Input[bool]] = None, + is_linking_allowed: Optional[pulumi.Input[bool]] = None, + metadata_xml: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + with_signed_request: Optional[pulumi.Input[bool]] = None) -> 'OrgIdpSaml': + """ + Get an existing OrgIdpSaml resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] binding: The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + :param pulumi.Input[bool] is_auto_creation: enable if a new account in ZITADEL should be created automatically on login with an external account + :param pulumi.Input[bool] is_auto_update: enable if a the ZITADEL account fields should be updated automatically on each login + :param pulumi.Input[bool] is_creation_allowed: enable if users should be able to create a new account in ZITADEL when using an external account + :param pulumi.Input[bool] is_linking_allowed: enable if users should be able to link an existing ZITADEL user with an external account + :param pulumi.Input[str] metadata_xml: The metadata XML as plain string + :param pulumi.Input[str] name: Name of the IDP + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[bool] with_signed_request: Whether the SAML IDP requires signed requests + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _OrgIdpSamlState.__new__(_OrgIdpSamlState) + + __props__.__dict__["binding"] = binding + __props__.__dict__["is_auto_creation"] = is_auto_creation + __props__.__dict__["is_auto_update"] = is_auto_update + __props__.__dict__["is_creation_allowed"] = is_creation_allowed + __props__.__dict__["is_linking_allowed"] = is_linking_allowed + __props__.__dict__["metadata_xml"] = metadata_xml + __props__.__dict__["name"] = name + __props__.__dict__["org_id"] = org_id + __props__.__dict__["with_signed_request"] = with_signed_request + return OrgIdpSaml(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def binding(self) -> pulumi.Output[Optional[str]]: + """ + The binding, supported values: SAML*BINDING*UNSPECIFIED, SAML*BINDING*POST, SAML*BINDING*REDIRECT, SAML*BINDING*ARTIFACT + """ + return pulumi.get(self, "binding") + + @property + @pulumi.getter(name="isAutoCreation") + def is_auto_creation(self) -> pulumi.Output[bool]: + """ + enable if a new account in ZITADEL should be created automatically on login with an external account + """ + return pulumi.get(self, "is_auto_creation") + + @property + @pulumi.getter(name="isAutoUpdate") + def is_auto_update(self) -> pulumi.Output[bool]: + """ + enable if a the ZITADEL account fields should be updated automatically on each login + """ + return pulumi.get(self, "is_auto_update") + + @property + @pulumi.getter(name="isCreationAllowed") + def is_creation_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to create a new account in ZITADEL when using an external account + """ + return pulumi.get(self, "is_creation_allowed") + + @property + @pulumi.getter(name="isLinkingAllowed") + def is_linking_allowed(self) -> pulumi.Output[bool]: + """ + enable if users should be able to link an existing ZITADEL user with an external account + """ + return pulumi.get(self, "is_linking_allowed") + + @property + @pulumi.getter(name="metadataXml") + def metadata_xml(self) -> pulumi.Output[str]: + """ + The metadata XML as plain string + """ + return pulumi.get(self, "metadata_xml") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the IDP + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> pulumi.Output[Optional[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter(name="withSignedRequest") + def with_signed_request(self) -> pulumi.Output[Optional[bool]]: + """ + Whether the SAML IDP requires signed requests + """ + return pulumi.get(self, "with_signed_request") + diff --git a/sdk/python/pulumiverse_zitadel/org_member.py b/sdk/python/pulumiverse_zitadel/org_member.py index 2440932..5c9fee8 100644 --- a/sdk/python/pulumiverse_zitadel/org_member.py +++ b/sdk/python/pulumiverse_zitadel/org_member.py @@ -185,7 +185,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgMember:OrgMember imported '123456789012345678:123456789012345678' @@ -220,7 +220,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/orgMember:OrgMember imported '123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/org_metadata.py b/sdk/python/pulumiverse_zitadel/org_metadata.py new file mode 100644 index 0000000..07edebf --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/org_metadata.py @@ -0,0 +1,315 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['OrgMetadataArgs', 'OrgMetadata'] + +@pulumi.input_type +class OrgMetadataArgs: + def __init__(__self__, *, + key: pulumi.Input[str], + value: pulumi.Input[str], + org_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a OrgMetadata resource. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + :param pulumi.Input[str] org_id: ID of the organization + """ + OrgMetadataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + value=value, + org_id=org_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: pulumi.Input[str], + value: pulumi.Input[str], + org_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + + _setter("key", key) + _setter("value", value) + if org_id is not None: + _setter("org_id", org_id) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + """ + The key of a metadata entry + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + +@pulumi.input_type +class _OrgMetadataState: + def __init__(__self__, *, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering OrgMetadata resources. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + _OrgMetadataState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + org_id=org_id, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + + if key is not None: + _setter("key", key) + if org_id is not None: + _setter("org_id", org_id) + if value is not None: + _setter("value", value) + + @property + @pulumi.getter + def key(self) -> Optional[pulumi.Input[str]]: + """ + The key of a metadata entry + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +class OrgMetadata(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.OrgMetadata("default", + org_id=default_zitadel_org["id"], + key="a_key", + value="a_value") + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/orgMetadata:OrgMetadata imported 'a_key:123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: OrgMetadataArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.OrgMetadata("default", + org_id=default_zitadel_org["id"], + key="a_key", + value="a_value") + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/orgMetadata:OrgMetadata imported 'a_key:123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param OrgMetadataArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(OrgMetadataArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + OrgMetadataArgs._configure(_setter, **kwargs) + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = OrgMetadataArgs.__new__(OrgMetadataArgs) + + if key is None and not opts.urn: + raise TypeError("Missing required property 'key'") + __props__.__dict__["key"] = key + __props__.__dict__["org_id"] = org_id + if value is None and not opts.urn: + raise TypeError("Missing required property 'value'") + __props__.__dict__["value"] = value + super(OrgMetadata, __self__).__init__( + 'zitadel:index/orgMetadata:OrgMetadata', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None) -> 'OrgMetadata': + """ + Get an existing OrgMetadata resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _OrgMetadataState.__new__(_OrgMetadataState) + + __props__.__dict__["key"] = key + __props__.__dict__["org_id"] = org_id + __props__.__dict__["value"] = value + return OrgMetadata(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def key(self) -> pulumi.Output[str]: + """ + The key of a metadata entry + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> pulumi.Output[Optional[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter + def value(self) -> pulumi.Output[str]: + """ + The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + return pulumi.get(self, "value") + diff --git a/sdk/python/pulumiverse_zitadel/personal_access_token.py b/sdk/python/pulumiverse_zitadel/personal_access_token.py index 18cf227..88bdbd6 100644 --- a/sdk/python/pulumiverse_zitadel/personal_access_token.py +++ b/sdk/python/pulumiverse_zitadel/personal_access_token.py @@ -208,7 +208,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/personalAccessToken:PersonalAccessToken imported '123456789012345678:123456789012345678:123456789012345678:LHt79...' @@ -243,7 +243,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/personalAccessToken:PersonalAccessToken imported '123456789012345678:123456789012345678:123456789012345678:LHt79...' diff --git a/sdk/python/pulumiverse_zitadel/privacy_policy.py b/sdk/python/pulumiverse_zitadel/privacy_policy.py index 587a213..3df66b9 100644 --- a/sdk/python/pulumiverse_zitadel/privacy_policy.py +++ b/sdk/python/pulumiverse_zitadel/privacy_policy.py @@ -243,7 +243,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/privacyPolicy:PrivacyPolicy imported '123456789012345678' @@ -278,7 +278,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[org_id]>`, e.g. + bash The resource can be imported using the ID format `<[org_id]>`, e.g. ```sh $ pulumi import zitadel:index/privacyPolicy:PrivacyPolicy imported '123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/project.py b/sdk/python/pulumiverse_zitadel/project.py index fe37721..9f00f34 100644 --- a/sdk/python/pulumiverse_zitadel/project.py +++ b/sdk/python/pulumiverse_zitadel/project.py @@ -331,7 +331,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/project:Project imported '123456789012345678:123456789012345678' @@ -372,7 +372,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/project:Project imported '123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/project_grant.py b/sdk/python/pulumiverse_zitadel/project_grant.py index e8e9a27..f903892 100644 --- a/sdk/python/pulumiverse_zitadel/project_grant.py +++ b/sdk/python/pulumiverse_zitadel/project_grant.py @@ -231,7 +231,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectGrant:ProjectGrant imported '123456789012345678:123456789012345678:123456789012345678' @@ -268,7 +268,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectGrant:ProjectGrant imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/project_grant_member.py b/sdk/python/pulumiverse_zitadel/project_grant_member.py index 3bdca1f..2201fc0 100644 --- a/sdk/python/pulumiverse_zitadel/project_grant_member.py +++ b/sdk/python/pulumiverse_zitadel/project_grant_member.py @@ -267,7 +267,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectGrantMember:ProjectGrantMember imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' @@ -306,7 +306,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectGrantMember:ProjectGrantMember imported '123456789012345678:123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/project_member.py b/sdk/python/pulumiverse_zitadel/project_member.py index bddfea6..f1436f3 100644 --- a/sdk/python/pulumiverse_zitadel/project_member.py +++ b/sdk/python/pulumiverse_zitadel/project_member.py @@ -226,7 +226,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectMember:ProjectMember imported '123456789012345678:123456789012345678:123456789012345678' @@ -263,7 +263,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectMember:ProjectMember imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/project_role.py b/sdk/python/pulumiverse_zitadel/project_role.py index 2bc6988..bf96687 100644 --- a/sdk/python/pulumiverse_zitadel/project_role.py +++ b/sdk/python/pulumiverse_zitadel/project_role.py @@ -268,7 +268,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectRole:ProjectRole imported '123456789012345678:my-role-key:123456789012345678' @@ -307,7 +307,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/projectRole:ProjectRole imported '123456789012345678:my-role-key:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/sms_provider_twilio.py b/sdk/python/pulumiverse_zitadel/sms_provider_twilio.py index 729ce31..09a19e2 100644 --- a/sdk/python/pulumiverse_zitadel/sms_provider_twilio.py +++ b/sdk/python/pulumiverse_zitadel/sms_provider_twilio.py @@ -180,7 +180,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/smsProviderTwilio:SmsProviderTwilio imported '123456789012345678:12345678901234567890123456abcdef' @@ -215,7 +215,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/smsProviderTwilio:SmsProviderTwilio imported '123456789012345678:12345678901234567890123456abcdef' diff --git a/sdk/python/pulumiverse_zitadel/smtp_config.py b/sdk/python/pulumiverse_zitadel/smtp_config.py index 5caf8e4..1e789db 100644 --- a/sdk/python/pulumiverse_zitadel/smtp_config.py +++ b/sdk/python/pulumiverse_zitadel/smtp_config.py @@ -340,7 +340,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[password]>`, e.g. + bash The resource can be imported using the ID format `<[password]>`, e.g. ```sh $ pulumi import zitadel:index/smtpConfig:SmtpConfig imported 'p4ssw0rd' @@ -383,7 +383,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format `<[password]>`, e.g. + bash The resource can be imported using the ID format `<[password]>`, e.g. ```sh $ pulumi import zitadel:index/smtpConfig:SmtpConfig imported 'p4ssw0rd' diff --git a/sdk/python/pulumiverse_zitadel/trigger_actions.py b/sdk/python/pulumiverse_zitadel/trigger_actions.py index 84600a8..86f83dc 100644 --- a/sdk/python/pulumiverse_zitadel/trigger_actions.py +++ b/sdk/python/pulumiverse_zitadel/trigger_actions.py @@ -230,7 +230,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/triggerActions:TriggerActions imported 'FLOW_TYPE_EXTERNAL_AUTHENTICATION:TRIGGER_TYPE_POST_CREATION:123456789012345678' @@ -267,7 +267,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/triggerActions:TriggerActions imported 'FLOW_TYPE_EXTERNAL_AUTHENTICATION:TRIGGER_TYPE_POST_CREATION:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/user_grant.py b/sdk/python/pulumiverse_zitadel/user_grant.py index bc27a26..b37f9ea 100644 --- a/sdk/python/pulumiverse_zitadel/user_grant.py +++ b/sdk/python/pulumiverse_zitadel/user_grant.py @@ -273,7 +273,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/userGrant:UserGrant imported '123456789012345678:123456789012345678:123456789012345678' @@ -311,7 +311,7 @@ def __init__(__self__, ## Import - terraform The resource can be imported using the ID format ``, e.g. + bash The resource can be imported using the ID format ``, e.g. ```sh $ pulumi import zitadel:index/userGrant:UserGrant imported '123456789012345678:123456789012345678:123456789012345678' diff --git a/sdk/python/pulumiverse_zitadel/user_metadata.py b/sdk/python/pulumiverse_zitadel/user_metadata.py new file mode 100644 index 0000000..d89dced --- /dev/null +++ b/sdk/python/pulumiverse_zitadel/user_metadata.py @@ -0,0 +1,373 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = ['UserMetadataArgs', 'UserMetadata'] + +@pulumi.input_type +class UserMetadataArgs: + def __init__(__self__, *, + key: pulumi.Input[str], + user_id: pulumi.Input[str], + value: pulumi.Input[str], + org_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a UserMetadata resource. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] user_id: ID of the user + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + :param pulumi.Input[str] org_id: ID of the organization + """ + UserMetadataArgs._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + user_id=user_id, + value=value, + org_id=org_id, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: pulumi.Input[str], + user_id: pulumi.Input[str], + value: pulumi.Input[str], + org_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'userId' in kwargs: + user_id = kwargs['userId'] + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + + _setter("key", key) + _setter("user_id", user_id) + _setter("value", value) + if org_id is not None: + _setter("org_id", org_id) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + """ + The key of a metadata entry + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Input[str]: + """ + ID of the user + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: pulumi.Input[str]): + pulumi.set(self, "user_id", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + +@pulumi.input_type +class _UserMetadataState: + def __init__(__self__, *, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering UserMetadata resources. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[str] user_id: ID of the user + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + _UserMetadataState._configure( + lambda key, value: pulumi.set(__self__, key, value), + key=key, + org_id=org_id, + user_id=user_id, + value=value, + ) + @staticmethod + def _configure( + _setter: Callable[[Any, Any], None], + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.ResourceOptions]=None, + **kwargs): + if 'orgId' in kwargs: + org_id = kwargs['orgId'] + if 'userId' in kwargs: + user_id = kwargs['userId'] + + if key is not None: + _setter("key", key) + if org_id is not None: + _setter("org_id", org_id) + if user_id is not None: + _setter("user_id", user_id) + if value is not None: + _setter("value", value) + + @property + @pulumi.getter + def key(self) -> Optional[pulumi.Input[str]]: + """ + The key of a metadata entry + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the user + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_id", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +class UserMetadata(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.UserMetadata("default", + org_id=default_zitadel_org["id"], + user_id=default_zitadel_human_user["id"], + key="a_key", + value="a_value") + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/userMetadata:UserMetadata imported '123456789012345678:a_key:123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[str] user_id: ID of the user + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: UserMetadataArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ```python + import pulumi + import pulumiverse_zitadel as zitadel + + default = zitadel.UserMetadata("default", + org_id=default_zitadel_org["id"], + user_id=default_zitadel_human_user["id"], + key="a_key", + value="a_value") + ``` + + ## Import + + bash The resource can be imported using the ID format ``, e.g. + + ```sh + $ pulumi import zitadel:index/userMetadata:UserMetadata imported '123456789012345678:a_key:123456789012345678' + ``` + + :param str resource_name: The name of the resource. + :param UserMetadataArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(UserMetadataArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + kwargs = kwargs or {} + def _setter(key, value): + kwargs[key] = value + UserMetadataArgs._configure(_setter, **kwargs) + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = UserMetadataArgs.__new__(UserMetadataArgs) + + if key is None and not opts.urn: + raise TypeError("Missing required property 'key'") + __props__.__dict__["key"] = key + __props__.__dict__["org_id"] = org_id + if user_id is None and not opts.urn: + raise TypeError("Missing required property 'user_id'") + __props__.__dict__["user_id"] = user_id + if value is None and not opts.urn: + raise TypeError("Missing required property 'value'") + __props__.__dict__["value"] = value + super(UserMetadata, __self__).__init__( + 'zitadel:index/userMetadata:UserMetadata', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None) -> 'UserMetadata': + """ + Get an existing UserMetadata resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] key: The key of a metadata entry + :param pulumi.Input[str] org_id: ID of the organization + :param pulumi.Input[str] user_id: ID of the user + :param pulumi.Input[str] value: The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _UserMetadataState.__new__(_UserMetadataState) + + __props__.__dict__["key"] = key + __props__.__dict__["org_id"] = org_id + __props__.__dict__["user_id"] = user_id + __props__.__dict__["value"] = value + return UserMetadata(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def key(self) -> pulumi.Output[str]: + """ + The key of a metadata entry + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> pulumi.Output[Optional[str]]: + """ + ID of the organization + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Output[str]: + """ + ID of the user + """ + return pulumi.get(self, "user_id") + + @property + @pulumi.getter + def value(self) -> pulumi.Output[str]: + """ + The string representation of a metadata entry value. For binary data, use the base64encode function. + """ + return pulumi.get(self, "value") +