From f79a588ba02700856372284a75e821a50fe130c8 Mon Sep 17 00:00:00 2001 From: Theo Gravity Date: Tue, 13 Jun 2023 17:09:56 -0700 Subject: [PATCH 1/3] Update to use terraform-provider-fusionauth@v0.1.90 --- README-PUBLISHING.md | 7 +- .../pulumi-resource-fusionauth/schema.json | 278 ++++++++++++++- provider/go.mod | 4 +- provider/go.sum | 8 +- provider/resources.go | 2 + sdk/dotnet/FusionAuthApplication.cs | 1 + sdk/dotnet/FusionAuthLambda.cs | 18 + sdk/dotnet/GetEMail.cs | 202 +++++++++++ sdk/dotnet/GetFormField.cs | 327 ++++++++++++++++++ ...onAuthApplicationOauthConfigurationArgs.cs | 9 + ...uthApplicationOauthConfigurationGetArgs.cs | 9 + .../FusionAuthTenantJwtConfigurationArgs.cs | 12 +- ...FusionAuthTenantJwtConfigurationGetArgs.cs | 12 +- sdk/dotnet/Inputs/GetFormFieldValidator.cs | 33 ++ .../Inputs/GetFormFieldValidatorArgs.cs | 33 ++ ...FusionAuthApplicationOauthConfiguration.cs | 11 + .../FusionAuthTenantJwtConfiguration.cs | 12 +- .../Outputs/GetFormFieldValidatorResult.cs | 36 ++ sdk/dotnet/logo.png | Bin 9664 -> 13446 bytes sdk/go/fusionauth/fusionAuthApplication.go | 1 + sdk/go/fusionauth/fusionAuthLambda.go | 15 + sdk/go/fusionauth/getEMail.go | 183 ++++++++++ sdk/go/fusionauth/getFormField.go | 233 +++++++++++++ sdk/go/fusionauth/pulumiTypes.go | 222 +++++++++++- sdk/nodejs/fusionAuthApplication.ts | 1 + sdk/nodejs/fusionAuthLambda.ts | 14 + sdk/nodejs/getEMail.ts | 128 +++++++ sdk/nodejs/getFormField.ts | 196 +++++++++++ sdk/nodejs/index.ts | 10 + sdk/nodejs/tsconfig.json | 2 + sdk/nodejs/types/input.ts | 35 +- sdk/nodejs/types/output.ts | 24 +- .../theogravity_pulumi-fusionauth/__init__.py | 2 + .../theogravity_pulumi-fusionauth/_inputs.py | 130 +++++-- .../fusion_auth_application.py | 2 + .../fusion_auth_lambda.py | 47 +++ .../get_e_mail.py | 231 +++++++++++++ .../get_form_field.py | 296 ++++++++++++++++ .../theogravity_pulumi-fusionauth/outputs.py | 112 ++++-- 39 files changed, 2787 insertions(+), 111 deletions(-) create mode 100644 sdk/dotnet/GetEMail.cs create mode 100644 sdk/dotnet/GetFormField.cs create mode 100644 sdk/dotnet/Inputs/GetFormFieldValidator.cs create mode 100644 sdk/dotnet/Inputs/GetFormFieldValidatorArgs.cs create mode 100644 sdk/dotnet/Outputs/GetFormFieldValidatorResult.cs create mode 100644 sdk/go/fusionauth/getEMail.go create mode 100644 sdk/go/fusionauth/getFormField.go create mode 100644 sdk/nodejs/getEMail.ts create mode 100644 sdk/nodejs/getFormField.ts create mode 100644 sdk/python/theogravity_pulumi-fusionauth/get_e_mail.py create mode 100644 sdk/python/theogravity_pulumi-fusionauth/get_form_field.py diff --git a/README-PUBLISHING.md b/README-PUBLISHING.md index 0729638..4ee4081 100644 --- a/README-PUBLISHING.md +++ b/README-PUBLISHING.md @@ -3,11 +3,12 @@ - Update `provider/go.mod` with the appropriate `github.com/gpsinsight/terraform-provider-fusionauth` version - Run `cd provider && go mod tidy && cd -` - Run `make tfgen` in the root of this directory -- Run `cd sdk && go mod tidy && cd -` -- Run `make build_sdks` - Check the warnings for any new mappings that need to be added to `provider/resources.go` and run `make tfgen` again after - corrections are made. + corrections are made. * See `Adding Mappings, Building the Provider and SDKs` in `README-BUILD.md` for more info. + * You'll have to run `gofmt -s provider/resources.go > provider/resources.go.new` and delete `resources.go` and rename `resources.go.new` to `resources.go` to get the formatting correct. +- Run `cd sdk && go mod tidy && cd -` +- Run `make build_sdks` - Commit all the generated files and push. - Make sure the CI passes green. - Create a release by making a git tag in the format of `vX.Y.Z` and push that tag to origin via `git push origin ` diff --git a/provider/cmd/pulumi-resource-fusionauth/schema.json b/provider/cmd/pulumi-resource-fusionauth/schema.json index a74aba7..b96c513 100644 --- a/provider/cmd/pulumi-resource-fusionauth/schema.json +++ b/provider/cmd/pulumi-resource-fusionauth/schema.json @@ -520,6 +520,15 @@ } } }, + "authorizedUrlValidationPolicy": { + "type": "string", + "description": "Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "clientAuthenticationPolicy": { "type": "string", "description": "Determines the client authentication requirements for the OAuth 2.0 Token endpoint.\n", @@ -529,6 +538,14 @@ } } }, + "clientId": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, "clientSecret": { "type": "string", "description": "The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored.\n", @@ -628,6 +645,7 @@ "language": { "nodejs": { "requiredOutputs": [ + "clientId", "clientSecret" ] } @@ -3586,7 +3604,7 @@ "properties": { "accessTokenKeyId": { "type": "string", - "description": "The unique id of the signing key used to sign the access token.\n", + "description": "The unique id of the signing key used to sign the access token. Required prior to `1.30.0`.\n", "language": { "python": { "mapCase": false @@ -3595,7 +3613,7 @@ }, "idTokenKeyId": { "type": "string", - "description": "The unique id of the signing key used to sign the Id token.\n", + "description": "The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`.\n", "language": { "python": { "mapCase": false @@ -3659,8 +3677,6 @@ }, "type": "object", "required": [ - "accessTokenKeyId", - "idTokenKeyId", "refreshTokenTimeToLiveInMinutes", "timeToLiveInSeconds" ] @@ -4598,6 +4614,29 @@ }, "type": "object" }, + "fusionauth:index/getFormFieldValidator:getFormFieldValidator": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines if user input should be validated.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "expression": { + "type": "string", + "description": "A regular expression used to validate user input. Must be a valid regular expression pattern.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "fusionauth:index/getFormStep:getFormStep": { "properties": { "fields": { @@ -4753,7 +4792,7 @@ } }, "fusionauth:index/fusionAuthApplication:FusionAuthApplication": { - "description": "## # Application Resource\n\n[Applications API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst forum = new fusionauth.FusionAuthApplication(\"forum\", {\n tenantId: fusionauth_tenant.portal.id,\n authenticationTokenConfigurationEnabled: false,\n formConfiguration: {\n adminRegistrationFormId: fusionauth_form.admin_registration.id,\n selfServiceFormId: fusionauth_form.self_service.id,\n },\n jwtConfiguration: {\n accessTokenId: fusionauth_key.access_token.id,\n enabled: true,\n idTokenKeyId: fusionauth_key.id_token.id,\n refreshTokenTtlMinutes: 43200,\n ttlSeconds: 3600,\n },\n lambdaConfiguration: {\n accessTokenPopulateId: fusionauth_lambda.token_populate.id,\n idTokenPopulateId: fusionauth_lambda.id_token_populate.id,\n },\n loginConfiguration: {\n allowTokenRefresh: false,\n generateRefreshTokens: false,\n requireAuthentication: true,\n },\n oauthConfiguration: {\n authorizedOriginUrls: [\"http://www.example.com/oauth-callback\"],\n enabledGrants: [\n \"authorization_code\",\n \"implicit\",\n ],\n generateRefreshTokens: false,\n logoutBehavior: \"AllApplications\",\n logoutUrl: \"http://www.example.com/logout\",\n requireClientAuthentication: false,\n },\n registrationConfiguration: {\n birthDate: {\n enabled: false,\n required: false,\n },\n confirmPassword: false,\n enabled: false,\n firstName: {\n enabled: false,\n required: false,\n },\n fullName: {\n enabled: false,\n required: false,\n },\n lastName: {\n enabled: false,\n required: false,\n },\n loginIdType: \"\",\n middleName: {\n enabled: false,\n required: false,\n },\n mobilePhone: {\n enabled: false,\n required: false,\n },\n type: \"\",\n },\n passwordlessConfigurationEnabled: false,\n registrationDeletePolicy: {\n unverifiedEnabled: true,\n unverifiedNumberOfDaysToRetain: 30,\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nforum = fusionauth.FusionAuthApplication(\"forum\",\n tenant_id=fusionauth_tenant[\"portal\"][\"id\"],\n authentication_token_configuration_enabled=False,\n form_configuration=fusionauth.FusionAuthApplicationFormConfigurationArgs(\n admin_registration_form_id=fusionauth_form[\"admin_registration\"][\"id\"],\n self_service_form_id=fusionauth_form[\"self_service\"][\"id\"],\n ),\n jwt_configuration=fusionauth.FusionAuthApplicationJwtConfigurationArgs(\n access_token_id=fusionauth_key[\"access_token\"][\"id\"],\n enabled=True,\n id_token_key_id=fusionauth_key[\"id_token\"][\"id\"],\n refresh_token_ttl_minutes=43200,\n ttl_seconds=3600,\n ),\n lambda_configuration=fusionauth.FusionAuthApplicationLambdaConfigurationArgs(\n access_token_populate_id=fusionauth_lambda[\"token_populate\"][\"id\"],\n id_token_populate_id=fusionauth_lambda[\"id_token_populate\"][\"id\"],\n ),\n login_configuration=fusionauth.FusionAuthApplicationLoginConfigurationArgs(\n allow_token_refresh=False,\n generate_refresh_tokens=False,\n require_authentication=True,\n ),\n oauth_configuration=fusionauth.FusionAuthApplicationOauthConfigurationArgs(\n authorized_origin_urls=[\"http://www.example.com/oauth-callback\"],\n enabled_grants=[\n \"authorization_code\",\n \"implicit\",\n ],\n generate_refresh_tokens=False,\n logout_behavior=\"AllApplications\",\n logout_url=\"http://www.example.com/logout\",\n require_client_authentication=False,\n ),\n registration_configuration=fusionauth.FusionAuthApplicationRegistrationConfigurationArgs(\n birth_date=fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs(\n enabled=False,\n required=False,\n ),\n confirm_password=False,\n enabled=False,\n first_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs(\n enabled=False,\n required=False,\n ),\n full_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs(\n enabled=False,\n required=False,\n ),\n last_name=fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs(\n enabled=False,\n required=False,\n ),\n login_id_type=\"\",\n middle_name=fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs(\n enabled=False,\n required=False,\n ),\n mobile_phone=fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs(\n enabled=False,\n required=False,\n ),\n type=\"\",\n ),\n passwordless_configuration_enabled=False,\n registration_delete_policy=fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs(\n unverified_enabled=True,\n unverified_number_of_days_to_retain=30,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var forum = new Fusionauth.FusionAuthApplication(\"forum\", new()\n {\n TenantId = fusionauth_tenant.Portal.Id,\n AuthenticationTokenConfigurationEnabled = false,\n FormConfiguration = new Fusionauth.Inputs.FusionAuthApplicationFormConfigurationArgs\n {\n AdminRegistrationFormId = fusionauth_form.Admin_registration.Id,\n SelfServiceFormId = fusionauth_form.Self_service.Id,\n },\n JwtConfiguration = new Fusionauth.Inputs.FusionAuthApplicationJwtConfigurationArgs\n {\n AccessTokenId = fusionauth_key.Access_token.Id,\n Enabled = true,\n IdTokenKeyId = fusionauth_key.Id_token.Id,\n RefreshTokenTtlMinutes = 43200,\n TtlSeconds = 3600,\n },\n LambdaConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLambdaConfigurationArgs\n {\n AccessTokenPopulateId = fusionauth_lambda.Token_populate.Id,\n IdTokenPopulateId = fusionauth_lambda.Id_token_populate.Id,\n },\n LoginConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLoginConfigurationArgs\n {\n AllowTokenRefresh = false,\n GenerateRefreshTokens = false,\n RequireAuthentication = true,\n },\n OauthConfiguration = new Fusionauth.Inputs.FusionAuthApplicationOauthConfigurationArgs\n {\n AuthorizedOriginUrls = new[]\n {\n \"http://www.example.com/oauth-callback\",\n },\n EnabledGrants = new[]\n {\n \"authorization_code\",\n \"implicit\",\n },\n GenerateRefreshTokens = false,\n LogoutBehavior = \"AllApplications\",\n LogoutUrl = \"http://www.example.com/logout\",\n RequireClientAuthentication = false,\n },\n RegistrationConfiguration = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationArgs\n {\n BirthDate = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs\n {\n Enabled = false,\n Required = false,\n },\n ConfirmPassword = false,\n Enabled = false,\n FirstName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs\n {\n Enabled = false,\n Required = false,\n },\n FullName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LastName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LoginIdType = \"\",\n MiddleName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs\n {\n Enabled = false,\n Required = false,\n },\n MobilePhone = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs\n {\n Enabled = false,\n Required = false,\n },\n Type = \"\",\n },\n PasswordlessConfigurationEnabled = false,\n RegistrationDeletePolicy = new Fusionauth.Inputs.FusionAuthApplicationRegistrationDeletePolicyArgs\n {\n UnverifiedEnabled = true,\n UnverifiedNumberOfDaysToRetain = 30,\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApplication(ctx, \"forum\", \u0026fusionauth.FusionAuthApplicationArgs{\n\t\t\tTenantId: pulumi.Any(fusionauth_tenant.Portal.Id),\n\t\t\tAuthenticationTokenConfigurationEnabled: pulumi.Bool(false),\n\t\t\tFormConfiguration: \u0026fusionauth.FusionAuthApplicationFormConfigurationArgs{\n\t\t\t\tAdminRegistrationFormId: pulumi.Any(fusionauth_form.Admin_registration.Id),\n\t\t\t\tSelfServiceFormId: pulumi.Any(fusionauth_form.Self_service.Id),\n\t\t\t},\n\t\t\tJwtConfiguration: \u0026fusionauth.FusionAuthApplicationJwtConfigurationArgs{\n\t\t\t\tAccessTokenId: pulumi.Any(fusionauth_key.Access_token.Id),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tIdTokenKeyId: pulumi.Any(fusionauth_key.Id_token.Id),\n\t\t\t\tRefreshTokenTtlMinutes: pulumi.Int(43200),\n\t\t\t\tTtlSeconds: pulumi.Int(3600),\n\t\t\t},\n\t\t\tLambdaConfiguration: \u0026fusionauth.FusionAuthApplicationLambdaConfigurationArgs{\n\t\t\t\tAccessTokenPopulateId: pulumi.Any(fusionauth_lambda.Token_populate.Id),\n\t\t\t\tIdTokenPopulateId: pulumi.Any(fusionauth_lambda.Id_token_populate.Id),\n\t\t\t},\n\t\t\tLoginConfiguration: \u0026fusionauth.FusionAuthApplicationLoginConfigurationArgs{\n\t\t\t\tAllowTokenRefresh: pulumi.Bool(false),\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tRequireAuthentication: pulumi.Bool(true),\n\t\t\t},\n\t\t\tOauthConfiguration: \u0026fusionauth.FusionAuthApplicationOauthConfigurationArgs{\n\t\t\t\tAuthorizedOriginUrls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://www.example.com/oauth-callback\"),\n\t\t\t\t},\n\t\t\t\tEnabledGrants: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"authorization_code\"),\n\t\t\t\t\tpulumi.String(\"implicit\"),\n\t\t\t\t},\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tLogoutBehavior: pulumi.String(\"AllApplications\"),\n\t\t\t\tLogoutUrl: pulumi.String(\"http://www.example.com/logout\"),\n\t\t\t\tRequireClientAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRegistrationConfiguration: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationArgs{\n\t\t\t\tBirthDate: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tConfirmPassword: pulumi.Bool(false),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tFirstName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tFullName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLastName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLoginIdType: pulumi.String(\"\"),\n\t\t\t\tMiddleName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tMobilePhone: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tType: pulumi.String(\"\"),\n\t\t\t},\n\t\t\tPasswordlessConfigurationEnabled: pulumi.Bool(false),\n\t\t\tRegistrationDeletePolicy: \u0026fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs{\n\t\t\t\tUnverifiedEnabled: pulumi.Bool(true),\n\t\t\t\tUnverifiedNumberOfDaysToRetain: pulumi.Int(30),\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.fusionauth.FusionAuthApplication;\nimport com.pulumi.fusionauth.FusionAuthApplicationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationFormConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationJwtConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLambdaConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLoginConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationOauthConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationDeletePolicyArgs;\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 forum = new FusionAuthApplication(\"forum\", FusionAuthApplicationArgs.builder() \n .tenantId(fusionauth_tenant.portal().id())\n .authenticationTokenConfigurationEnabled(false)\n .formConfiguration(FusionAuthApplicationFormConfigurationArgs.builder()\n .adminRegistrationFormId(fusionauth_form.admin_registration().id())\n .selfServiceFormId(fusionauth_form.self_service().id())\n .build())\n .jwtConfiguration(FusionAuthApplicationJwtConfigurationArgs.builder()\n .accessTokenId(fusionauth_key.access_token().id())\n .enabled(true)\n .idTokenKeyId(fusionauth_key.id_token().id())\n .refreshTokenTtlMinutes(43200)\n .ttlSeconds(3600)\n .build())\n .lambdaConfiguration(FusionAuthApplicationLambdaConfigurationArgs.builder()\n .accessTokenPopulateId(fusionauth_lambda.token_populate().id())\n .idTokenPopulateId(fusionauth_lambda.id_token_populate().id())\n .build())\n .loginConfiguration(FusionAuthApplicationLoginConfigurationArgs.builder()\n .allowTokenRefresh(false)\n .generateRefreshTokens(false)\n .requireAuthentication(true)\n .build())\n .oauthConfiguration(FusionAuthApplicationOauthConfigurationArgs.builder()\n .authorizedOriginUrls(\"http://www.example.com/oauth-callback\")\n .enabledGrants( \n \"authorization_code\",\n \"implicit\")\n .generateRefreshTokens(false)\n .logoutBehavior(\"AllApplications\")\n .logoutUrl(\"http://www.example.com/logout\")\n .requireClientAuthentication(false)\n .build())\n .registrationConfiguration(FusionAuthApplicationRegistrationConfigurationArgs.builder()\n .birthDate(FusionAuthApplicationRegistrationConfigurationBirthDateArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .confirmPassword(false)\n .enabled(false)\n .firstName(FusionAuthApplicationRegistrationConfigurationFirstNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .fullName(FusionAuthApplicationRegistrationConfigurationFullNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .lastName(FusionAuthApplicationRegistrationConfigurationLastNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .loginIdType(\"\")\n .middleName(FusionAuthApplicationRegistrationConfigurationMiddleNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .mobilePhone(FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .type(\"\")\n .build())\n .passwordlessConfigurationEnabled(false)\n .registrationDeletePolicy(FusionAuthApplicationRegistrationDeletePolicyArgs.builder()\n .unverifiedEnabled(true)\n .unverifiedNumberOfDaysToRetain(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n forum:\n type: fusionauth:FusionAuthApplication\n properties:\n tenantId: ${fusionauth_tenant.portal.id}\n authenticationTokenConfigurationEnabled: false\n formConfiguration:\n adminRegistrationFormId: ${fusionauth_form.admin_registration.id}\n selfServiceFormId: ${fusionauth_form.self_service.id}\n jwtConfiguration:\n accessTokenId: ${fusionauth_key.access_token.id}\n enabled: true\n idTokenKeyId: ${fusionauth_key.id_token.id}\n refreshTokenTtlMinutes: 43200\n ttlSeconds: 3600\n lambdaConfiguration:\n accessTokenPopulateId: ${fusionauth_lambda.token_populate.id}\n idTokenPopulateId: ${fusionauth_lambda.id_token_populate.id}\n loginConfiguration:\n allowTokenRefresh: false\n generateRefreshTokens: false\n requireAuthentication: true\n oauthConfiguration:\n authorizedOriginUrls:\n - http://www.example.com/oauth-callback\n enabledGrants:\n - authorization_code\n - implicit\n generateRefreshTokens: false\n logoutBehavior: AllApplications\n logoutUrl: http://www.example.com/logout\n requireClientAuthentication: false\n registrationConfiguration:\n birthDate:\n enabled: false\n required: false\n confirmPassword: false\n enabled: false\n firstName:\n enabled: false\n required: false\n fullName:\n enabled: false\n required: false\n lastName:\n enabled: false\n required: false\n loginIdType:\n middleName:\n enabled: false\n required: false\n mobilePhone:\n enabled: false\n required: false\n type:\n passwordlessConfigurationEnabled: false\n registrationDeletePolicy:\n unverifiedEnabled: true\n unverifiedNumberOfDaysToRetain: 30\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Application Resource\n\n[Applications API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst forum = new fusionauth.FusionAuthApplication(\"forum\", {\n tenantId: fusionauth_tenant.portal.id,\n authenticationTokenConfigurationEnabled: false,\n formConfiguration: {\n adminRegistrationFormId: fusionauth_form.admin_registration.id,\n selfServiceFormId: fusionauth_form.self_service.id,\n },\n jwtConfiguration: {\n accessTokenId: fusionauth_key.access_token.id,\n enabled: true,\n idTokenKeyId: fusionauth_key.id_token.id,\n refreshTokenTtlMinutes: 43200,\n ttlSeconds: 3600,\n },\n lambdaConfiguration: {\n accessTokenPopulateId: fusionauth_lambda.token_populate.id,\n idTokenPopulateId: fusionauth_lambda.id_token_populate.id,\n },\n loginConfiguration: {\n allowTokenRefresh: false,\n generateRefreshTokens: false,\n requireAuthentication: true,\n },\n oauthConfiguration: {\n authorizedOriginUrls: [\"http://www.example.com/oauth-callback\"],\n authorizedUrlValidationPolicy: \"ExactMatch\",\n enabledGrants: [\n \"authorization_code\",\n \"implicit\",\n ],\n generateRefreshTokens: false,\n logoutBehavior: \"AllApplications\",\n logoutUrl: \"http://www.example.com/logout\",\n requireClientAuthentication: false,\n },\n registrationConfiguration: {\n birthDate: {\n enabled: false,\n required: false,\n },\n confirmPassword: false,\n enabled: false,\n firstName: {\n enabled: false,\n required: false,\n },\n fullName: {\n enabled: false,\n required: false,\n },\n lastName: {\n enabled: false,\n required: false,\n },\n loginIdType: \"\",\n middleName: {\n enabled: false,\n required: false,\n },\n mobilePhone: {\n enabled: false,\n required: false,\n },\n type: \"\",\n },\n passwordlessConfigurationEnabled: false,\n registrationDeletePolicy: {\n unverifiedEnabled: true,\n unverifiedNumberOfDaysToRetain: 30,\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nforum = fusionauth.FusionAuthApplication(\"forum\",\n tenant_id=fusionauth_tenant[\"portal\"][\"id\"],\n authentication_token_configuration_enabled=False,\n form_configuration=fusionauth.FusionAuthApplicationFormConfigurationArgs(\n admin_registration_form_id=fusionauth_form[\"admin_registration\"][\"id\"],\n self_service_form_id=fusionauth_form[\"self_service\"][\"id\"],\n ),\n jwt_configuration=fusionauth.FusionAuthApplicationJwtConfigurationArgs(\n access_token_id=fusionauth_key[\"access_token\"][\"id\"],\n enabled=True,\n id_token_key_id=fusionauth_key[\"id_token\"][\"id\"],\n refresh_token_ttl_minutes=43200,\n ttl_seconds=3600,\n ),\n lambda_configuration=fusionauth.FusionAuthApplicationLambdaConfigurationArgs(\n access_token_populate_id=fusionauth_lambda[\"token_populate\"][\"id\"],\n id_token_populate_id=fusionauth_lambda[\"id_token_populate\"][\"id\"],\n ),\n login_configuration=fusionauth.FusionAuthApplicationLoginConfigurationArgs(\n allow_token_refresh=False,\n generate_refresh_tokens=False,\n require_authentication=True,\n ),\n oauth_configuration=fusionauth.FusionAuthApplicationOauthConfigurationArgs(\n authorized_origin_urls=[\"http://www.example.com/oauth-callback\"],\n authorized_url_validation_policy=\"ExactMatch\",\n enabled_grants=[\n \"authorization_code\",\n \"implicit\",\n ],\n generate_refresh_tokens=False,\n logout_behavior=\"AllApplications\",\n logout_url=\"http://www.example.com/logout\",\n require_client_authentication=False,\n ),\n registration_configuration=fusionauth.FusionAuthApplicationRegistrationConfigurationArgs(\n birth_date=fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs(\n enabled=False,\n required=False,\n ),\n confirm_password=False,\n enabled=False,\n first_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs(\n enabled=False,\n required=False,\n ),\n full_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs(\n enabled=False,\n required=False,\n ),\n last_name=fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs(\n enabled=False,\n required=False,\n ),\n login_id_type=\"\",\n middle_name=fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs(\n enabled=False,\n required=False,\n ),\n mobile_phone=fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs(\n enabled=False,\n required=False,\n ),\n type=\"\",\n ),\n passwordless_configuration_enabled=False,\n registration_delete_policy=fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs(\n unverified_enabled=True,\n unverified_number_of_days_to_retain=30,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var forum = new Fusionauth.FusionAuthApplication(\"forum\", new()\n {\n TenantId = fusionauth_tenant.Portal.Id,\n AuthenticationTokenConfigurationEnabled = false,\n FormConfiguration = new Fusionauth.Inputs.FusionAuthApplicationFormConfigurationArgs\n {\n AdminRegistrationFormId = fusionauth_form.Admin_registration.Id,\n SelfServiceFormId = fusionauth_form.Self_service.Id,\n },\n JwtConfiguration = new Fusionauth.Inputs.FusionAuthApplicationJwtConfigurationArgs\n {\n AccessTokenId = fusionauth_key.Access_token.Id,\n Enabled = true,\n IdTokenKeyId = fusionauth_key.Id_token.Id,\n RefreshTokenTtlMinutes = 43200,\n TtlSeconds = 3600,\n },\n LambdaConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLambdaConfigurationArgs\n {\n AccessTokenPopulateId = fusionauth_lambda.Token_populate.Id,\n IdTokenPopulateId = fusionauth_lambda.Id_token_populate.Id,\n },\n LoginConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLoginConfigurationArgs\n {\n AllowTokenRefresh = false,\n GenerateRefreshTokens = false,\n RequireAuthentication = true,\n },\n OauthConfiguration = new Fusionauth.Inputs.FusionAuthApplicationOauthConfigurationArgs\n {\n AuthorizedOriginUrls = new[]\n {\n \"http://www.example.com/oauth-callback\",\n },\n AuthorizedUrlValidationPolicy = \"ExactMatch\",\n EnabledGrants = new[]\n {\n \"authorization_code\",\n \"implicit\",\n },\n GenerateRefreshTokens = false,\n LogoutBehavior = \"AllApplications\",\n LogoutUrl = \"http://www.example.com/logout\",\n RequireClientAuthentication = false,\n },\n RegistrationConfiguration = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationArgs\n {\n BirthDate = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs\n {\n Enabled = false,\n Required = false,\n },\n ConfirmPassword = false,\n Enabled = false,\n FirstName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs\n {\n Enabled = false,\n Required = false,\n },\n FullName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LastName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LoginIdType = \"\",\n MiddleName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs\n {\n Enabled = false,\n Required = false,\n },\n MobilePhone = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs\n {\n Enabled = false,\n Required = false,\n },\n Type = \"\",\n },\n PasswordlessConfigurationEnabled = false,\n RegistrationDeletePolicy = new Fusionauth.Inputs.FusionAuthApplicationRegistrationDeletePolicyArgs\n {\n UnverifiedEnabled = true,\n UnverifiedNumberOfDaysToRetain = 30,\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApplication(ctx, \"forum\", \u0026fusionauth.FusionAuthApplicationArgs{\n\t\t\tTenantId: pulumi.Any(fusionauth_tenant.Portal.Id),\n\t\t\tAuthenticationTokenConfigurationEnabled: pulumi.Bool(false),\n\t\t\tFormConfiguration: \u0026fusionauth.FusionAuthApplicationFormConfigurationArgs{\n\t\t\t\tAdminRegistrationFormId: pulumi.Any(fusionauth_form.Admin_registration.Id),\n\t\t\t\tSelfServiceFormId: pulumi.Any(fusionauth_form.Self_service.Id),\n\t\t\t},\n\t\t\tJwtConfiguration: \u0026fusionauth.FusionAuthApplicationJwtConfigurationArgs{\n\t\t\t\tAccessTokenId: pulumi.Any(fusionauth_key.Access_token.Id),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tIdTokenKeyId: pulumi.Any(fusionauth_key.Id_token.Id),\n\t\t\t\tRefreshTokenTtlMinutes: pulumi.Int(43200),\n\t\t\t\tTtlSeconds: pulumi.Int(3600),\n\t\t\t},\n\t\t\tLambdaConfiguration: \u0026fusionauth.FusionAuthApplicationLambdaConfigurationArgs{\n\t\t\t\tAccessTokenPopulateId: pulumi.Any(fusionauth_lambda.Token_populate.Id),\n\t\t\t\tIdTokenPopulateId: pulumi.Any(fusionauth_lambda.Id_token_populate.Id),\n\t\t\t},\n\t\t\tLoginConfiguration: \u0026fusionauth.FusionAuthApplicationLoginConfigurationArgs{\n\t\t\t\tAllowTokenRefresh: pulumi.Bool(false),\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tRequireAuthentication: pulumi.Bool(true),\n\t\t\t},\n\t\t\tOauthConfiguration: \u0026fusionauth.FusionAuthApplicationOauthConfigurationArgs{\n\t\t\t\tAuthorizedOriginUrls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://www.example.com/oauth-callback\"),\n\t\t\t\t},\n\t\t\t\tAuthorizedUrlValidationPolicy: pulumi.String(\"ExactMatch\"),\n\t\t\t\tEnabledGrants: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"authorization_code\"),\n\t\t\t\t\tpulumi.String(\"implicit\"),\n\t\t\t\t},\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tLogoutBehavior: pulumi.String(\"AllApplications\"),\n\t\t\t\tLogoutUrl: pulumi.String(\"http://www.example.com/logout\"),\n\t\t\t\tRequireClientAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRegistrationConfiguration: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationArgs{\n\t\t\t\tBirthDate: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tConfirmPassword: pulumi.Bool(false),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tFirstName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tFullName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLastName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLoginIdType: pulumi.String(\"\"),\n\t\t\t\tMiddleName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tMobilePhone: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tType: pulumi.String(\"\"),\n\t\t\t},\n\t\t\tPasswordlessConfigurationEnabled: pulumi.Bool(false),\n\t\t\tRegistrationDeletePolicy: \u0026fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs{\n\t\t\t\tUnverifiedEnabled: pulumi.Bool(true),\n\t\t\t\tUnverifiedNumberOfDaysToRetain: pulumi.Int(30),\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.fusionauth.FusionAuthApplication;\nimport com.pulumi.fusionauth.FusionAuthApplicationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationFormConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationJwtConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLambdaConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLoginConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationOauthConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationDeletePolicyArgs;\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 forum = new FusionAuthApplication(\"forum\", FusionAuthApplicationArgs.builder() \n .tenantId(fusionauth_tenant.portal().id())\n .authenticationTokenConfigurationEnabled(false)\n .formConfiguration(FusionAuthApplicationFormConfigurationArgs.builder()\n .adminRegistrationFormId(fusionauth_form.admin_registration().id())\n .selfServiceFormId(fusionauth_form.self_service().id())\n .build())\n .jwtConfiguration(FusionAuthApplicationJwtConfigurationArgs.builder()\n .accessTokenId(fusionauth_key.access_token().id())\n .enabled(true)\n .idTokenKeyId(fusionauth_key.id_token().id())\n .refreshTokenTtlMinutes(43200)\n .ttlSeconds(3600)\n .build())\n .lambdaConfiguration(FusionAuthApplicationLambdaConfigurationArgs.builder()\n .accessTokenPopulateId(fusionauth_lambda.token_populate().id())\n .idTokenPopulateId(fusionauth_lambda.id_token_populate().id())\n .build())\n .loginConfiguration(FusionAuthApplicationLoginConfigurationArgs.builder()\n .allowTokenRefresh(false)\n .generateRefreshTokens(false)\n .requireAuthentication(true)\n .build())\n .oauthConfiguration(FusionAuthApplicationOauthConfigurationArgs.builder()\n .authorizedOriginUrls(\"http://www.example.com/oauth-callback\")\n .authorizedUrlValidationPolicy(\"ExactMatch\")\n .enabledGrants( \n \"authorization_code\",\n \"implicit\")\n .generateRefreshTokens(false)\n .logoutBehavior(\"AllApplications\")\n .logoutUrl(\"http://www.example.com/logout\")\n .requireClientAuthentication(false)\n .build())\n .registrationConfiguration(FusionAuthApplicationRegistrationConfigurationArgs.builder()\n .birthDate(FusionAuthApplicationRegistrationConfigurationBirthDateArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .confirmPassword(false)\n .enabled(false)\n .firstName(FusionAuthApplicationRegistrationConfigurationFirstNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .fullName(FusionAuthApplicationRegistrationConfigurationFullNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .lastName(FusionAuthApplicationRegistrationConfigurationLastNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .loginIdType(\"\")\n .middleName(FusionAuthApplicationRegistrationConfigurationMiddleNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .mobilePhone(FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .type(\"\")\n .build())\n .passwordlessConfigurationEnabled(false)\n .registrationDeletePolicy(FusionAuthApplicationRegistrationDeletePolicyArgs.builder()\n .unverifiedEnabled(true)\n .unverifiedNumberOfDaysToRetain(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n forum:\n type: fusionauth:FusionAuthApplication\n properties:\n tenantId: ${fusionauth_tenant.portal.id}\n authenticationTokenConfigurationEnabled: false\n formConfiguration:\n adminRegistrationFormId: ${fusionauth_form.admin_registration.id}\n selfServiceFormId: ${fusionauth_form.self_service.id}\n jwtConfiguration:\n accessTokenId: ${fusionauth_key.access_token.id}\n enabled: true\n idTokenKeyId: ${fusionauth_key.id_token.id}\n refreshTokenTtlMinutes: 43200\n ttlSeconds: 3600\n lambdaConfiguration:\n accessTokenPopulateId: ${fusionauth_lambda.token_populate.id}\n idTokenPopulateId: ${fusionauth_lambda.id_token_populate.id}\n loginConfiguration:\n allowTokenRefresh: false\n generateRefreshTokens: false\n requireAuthentication: true\n oauthConfiguration:\n authorizedOriginUrls:\n - http://www.example.com/oauth-callback\n authorizedUrlValidationPolicy: ExactMatch\n enabledGrants:\n - authorization_code\n - implicit\n generateRefreshTokens: false\n logoutBehavior: AllApplications\n logoutUrl: http://www.example.com/logout\n requireClientAuthentication: false\n registrationConfiguration:\n birthDate:\n enabled: false\n required: false\n confirmPassword: false\n enabled: false\n firstName:\n enabled: false\n required: false\n fullName:\n enabled: false\n required: false\n lastName:\n enabled: false\n required: false\n loginIdType:\n middleName:\n enabled: false\n required: false\n mobilePhone:\n enabled: false\n required: false\n type:\n passwordlessConfigurationEnabled: false\n registrationDeletePolicy:\n unverifiedEnabled: true\n unverifiedNumberOfDaysToRetain: 30\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "accessControlConfiguration": { "$ref": "#/types/fusionauth:index/FusionAuthApplicationAccessControlConfiguration:FusionAuthApplicationAccessControlConfiguration" @@ -8940,6 +8979,10 @@ "type": "string", "description": "The JavaScript execution engine for the lambda.\n" }, + "lambdaId": { + "type": "string", + "description": "The Id to use for the new lambda. If not specified a secure random UUID will be generated.\n" + }, "name": { "type": "string", "description": "The name of the lambda.\n" @@ -8951,6 +8994,7 @@ }, "required": [ "body", + "lambdaId", "name", "type" ], @@ -8972,6 +9016,10 @@ "type": "string", "description": "The JavaScript execution engine for the lambda.\n" }, + "lambdaId": { + "type": "string", + "description": "The Id to use for the new lambda. If not specified a secure random UUID will be generated.\n" + }, "name": { "type": "string", "description": "The name of the lambda.\n" @@ -9005,6 +9053,10 @@ "type": "string", "description": "The JavaScript execution engine for the lambda.\n" }, + "lambdaId": { + "type": "string", + "description": "The Id to use for the new lambda. If not specified a secure random UUID will be generated.\n" + }, "name": { "type": "string", "description": "The name of the lambda.\n" @@ -11203,6 +11255,99 @@ ] } }, + "fusionauth:index/getEMail:getEMail": { + "description": "## # Email Resource\n\nThis data source is used to fetch information about a specific Email Template.\n\n[Emails API](https://fusionauth.io/docs/v1/tech/apis/emails)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst defaultBreachedPassword = fusionauth.getEMail({\n name: \"[FusionAuth Default] Breached Password Notification\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault_breached_password = fusionauth.get_e_mail(name=\"[FusionAuth Default] Breached Password Notification\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultBreachedPassword = Fusionauth.GetEMail.Invoke(new()\n {\n Name = \"[FusionAuth Default] Breached Password Notification\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetEMail(ctx, \u0026fusionauth.GetEMailArgs{\n\t\t\tName: \"[FusionAuth Default] Breached Password Notification\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetEMailArgs;\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 defaultBreachedPassword = FusionauthFunctions.getEMail(GetEMailArgs.builder()\n .name(\"[FusionAuth Default] Breached Password Notification\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n defaultBreachedPassword:\n fn::invoke:\n Function: fusionauth:getEMail\n Arguments:\n name: '[FusionAuth Default] Breached Password Notification'\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getEMail.\n", + "properties": { + "fromEmail": { + "type": "string", + "description": "The email address that this email will be sent from.\n" + }, + "name": { + "type": "string", + "description": "The name of the Email Template.\n" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "outputs": { + "description": "A collection of values returned by getEMail.\n", + "properties": { + "defaultFromName": { + "type": "string", + "description": "The default From Name used when sending emails.\n" + }, + "defaultHtmlTemplate": { + "type": "string", + "description": "The default HTML Email Template.\n" + }, + "defaultSubject": { + "type": "string", + "description": "The default Subject used when sending emails.\n" + }, + "defaultTextTemplate": { + "type": "string", + "description": "The default Text Email Template.\n" + }, + "fromEmail": { + "type": "string", + "description": "The email address that this email will be sent from.\n" + }, + "id": { + "type": "string", + "description": "The Id of the Email Template.\n" + }, + "localizedFromNames": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "The From Name used when sending emails to users who speak other languages.\n" + }, + "localizedHtmlTemplates": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "The HTML Email Template used when sending emails to users who speak other languages.\n" + }, + "localizedSubjects": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "The Subject used when sending emails to users who speak other languages.\n" + }, + "localizedTextTemplates": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "The Text Email Template used when sending emails to users who speak other languages.\n" + }, + "name": { + "type": "string" + } + }, + "type": "object", + "required": [ + "defaultFromName", + "defaultHtmlTemplate", + "defaultSubject", + "defaultTextTemplate", + "id", + "localizedFromNames", + "localizedHtmlTemplates", + "localizedSubjects", + "localizedTextTemplates", + "name" + ] + } + }, "fusionauth:index/getForm:getForm": { "description": "## # Form Resource\n\nA FusionAuth Form is a customizable object that contains one-to-many ordered steps. Each step is comprised of one or more Form Fields.\n\n[Forms API](https://fusionauth.io/docs/v1/tech/apis/forms)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getForm({\n name: \"Default User Self Service provided by FusionAuth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_form(name=\"Default User Self Service provided by FusionAuth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetForm.Invoke(new()\n {\n Name = \"Default User Self Service provided by FusionAuth\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetForm(ctx, \u0026fusionauth.GetFormArgs{\n\t\t\tName: pulumi.StringRef(\"Default User Self Service provided by FusionAuth\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetFormArgs;\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 = FusionauthFunctions.getForm(GetFormArgs.builder()\n .name(\"Default User Self Service provided by FusionAuth\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getForm\n Arguments:\n name: Default User Self Service provided by FusionAuth\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { @@ -11278,6 +11423,129 @@ ] } }, + "fusionauth:index/getFormField:getFormField": { + "description": "## # Form Field Resource\n\nA FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms).\n\n[Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getFormField({\n name: \"Email\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_form_field(name=\"Email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetFormField.Invoke(new()\n {\n Name = \"Email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetFormField(ctx, \u0026fusionauth.GetFormFieldArgs{\n\t\t\tName: pulumi.StringRef(\"Email\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetFormFieldArgs;\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 = FusionauthFunctions.getFormField(GetFormFieldArgs.builder()\n .name(\"Email\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getFormField\n Arguments:\n name: Email\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getFormField.\n", + "properties": { + "confirm": { + "type": "boolean", + "description": "Determines if the user input should be confirmed by requiring the value to be entered twice.\n- consent_id\n- control\n" + }, + "consentId": { + "type": "string" + }, + "control": { + "type": "string" + }, + "data": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "An object that can hold any information about the Form Field that should be persisted.\n- description\n- key\n" + }, + "description": { + "type": "string" + }, + "formFieldId": { + "type": "string", + "description": "The unique id of the Form Field. Either `form_field_id` or `name` must be specified.\n" + }, + "key": { + "type": "string", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the Form field. Either `form_field_id` or `name` must be specified.\n" + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of options that are applied to checkbox, radio, or select controls.\n" + }, + "required": { + "type": "boolean", + "description": "Determines if a value is required to complete the form.\n" + }, + "type": { + "type": "string", + "description": "The form field type. The possible values are:\n" + }, + "validator": { + "$ref": "#/types/fusionauth:index/getFormFieldValidator:getFormFieldValidator" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getFormField.\n", + "properties": { + "confirm": { + "type": "boolean", + "description": "Determines if the user input should be confirmed by requiring the value to be entered twice.\n- consent_id\n- control\n" + }, + "consentId": { + "type": "string" + }, + "control": { + "type": "string" + }, + "data": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" + }, + "description": "An object that can hold any information about the Form Field that should be persisted.\n- description\n- key\n" + }, + "description": { + "type": "string" + }, + "formFieldId": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "key": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The unique name of the Form Field.\n" + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of options that are applied to checkbox, radio, or select controls.\n" + }, + "required": { + "type": "boolean", + "description": "Determines if a value is required to complete the form.\n" + }, + "type": { + "type": "string", + "description": "The form field type. The possible values are:\n" + }, + "validator": { + "$ref": "#/types/fusionauth:index/getFormFieldValidator:getFormFieldValidator" + } + }, + "type": "object", + "required": [ + "control", + "formFieldId", + "validator", + "id" + ] + } + }, "fusionauth:index/getIdp:getIdp": { "description": "## # Application Resource\n\n[Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst fusionAuth = fusionauth.getIdp({\n name: \"Apple\",\n type: \"Apple\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nfusion_auth = fusionauth.get_idp(name=\"Apple\",\n type=\"Apple\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fusionAuth = Fusionauth.GetIdp.Invoke(new()\n {\n Name = \"Apple\",\n Type = \"Apple\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetIdp(ctx, \u0026fusionauth.GetIdpArgs{\n\t\t\tName: \"Apple\",\n\t\t\tType: \"Apple\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetIdpArgs;\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 fusionAuth = FusionauthFunctions.getIdp(GetIdpArgs.builder()\n .name(\"Apple\")\n .type(\"Apple\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n fusionAuth:\n fn::invoke:\n Function: fusionauth:getIdp\n Arguments:\n name: Apple\n type: Apple\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index 26d5a6b..68d6a82 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -5,7 +5,7 @@ go 1.19 replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9 require ( - github.com/gpsinsight/terraform-provider-fusionauth v0.1.82 + github.com/gpsinsight/terraform-provider-fusionauth v0.1.90 github.com/pulumi/pulumi-terraform-bridge/v3 v3.42.1 github.com/pulumi/pulumi/sdk/v3 v3.57.1 ) @@ -36,7 +36,7 @@ require ( github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect - github.com/FusionAuth/go-client v0.0.0-20230109034857-35e1b8c0fa82 // indirect + github.com/FusionAuth/go-client v0.0.0-20230313183733-29fd62bc04f7 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/Masterminds/sprig v2.22.0+incompatible // indirect diff --git a/provider/go.sum b/provider/go.sum index ca32eb8..1fd71a7 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -279,8 +279,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9s github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/FusionAuth/go-client v0.0.0-20230109034857-35e1b8c0fa82 h1:J5G0yXeCdftSggDSSLxJrL9iLSFVB/T2wLqdPWV+iJQ= -github.com/FusionAuth/go-client v0.0.0-20230109034857-35e1b8c0fa82/go.mod h1:SyRrXMJAzMVQLiJjKfQUR59dRI3jPyZv+BXIZ//HwE4= +github.com/FusionAuth/go-client v0.0.0-20230313183733-29fd62bc04f7 h1:NQgZJFG6wHSr+R5ni/orajx1eB/O1GUPcxvgi7kZhJs= +github.com/FusionAuth/go-client v0.0.0-20230313183733-29fd62bc04f7/go.mod h1:SyRrXMJAzMVQLiJjKfQUR59dRI3jPyZv+BXIZ//HwE4= github.com/GoogleCloudPlatform/cloudsql-proxy v1.31.2/go.mod h1:qR6jVnZTKDCW3j+fC9mOEPHm++1nKDMkqbbkD6KNsfo= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= @@ -1042,8 +1042,8 @@ github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gpsinsight/terraform-provider-fusionauth v0.1.82 h1:twdBX0P8mABCuGO5N7fjUwmjcqsT7JjSPt4sHn2xhrQ= -github.com/gpsinsight/terraform-provider-fusionauth v0.1.82/go.mod h1:aYPVUGOJba9IIkFUO+pS6Ibxx/hym8CdlVto4tMp0NM= +github.com/gpsinsight/terraform-provider-fusionauth v0.1.90 h1:jG6s1zPULVCExnbIJYu+7OhOWyoO+Avz1ATnx4VsCxE= +github.com/gpsinsight/terraform-provider-fusionauth v0.1.90/go.mod h1:L/kvY5R8r1cfGkVzQFMw5ED0MqAPeowGdUGgDEIqDyU= github.com/grafana/regexp v0.0.0-20220304095617-2e8d9baf4ac2/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= diff --git a/provider/resources.go b/provider/resources.go index 125ff3c..8676fc8 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -140,7 +140,9 @@ func Provider() tfbridge.ProviderInfo { DataSources: map[string]*tfbridge.DataSourceInfo{ "fusionauth_lambda": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getLambda")}, "fusionauth_application": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getApplication")}, + "fusionauth_email": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getEMail")}, "fusionauth_form": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getForm")}, + "fusionauth_form_field": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getFormField")}, "fusionauth_tenant": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getTenant")}, "fusionauth_application_role": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getApplicationRole")}, "fusionauth_idp": {Tok: tfbridge.MakeDataSource(mainPkg, mainMod, "getIdp")}, diff --git a/sdk/dotnet/FusionAuthApplication.cs b/sdk/dotnet/FusionAuthApplication.cs index cfa589a..21237c9 100644 --- a/sdk/dotnet/FusionAuthApplication.cs +++ b/sdk/dotnet/FusionAuthApplication.cs @@ -58,6 +58,7 @@ namespace theogravity.Fusionauth /// { /// "http://www.example.com/oauth-callback", /// }, + /// AuthorizedUrlValidationPolicy = "ExactMatch", /// EnabledGrants = new[] /// { /// "authorization_code", diff --git a/sdk/dotnet/FusionAuthLambda.cs b/sdk/dotnet/FusionAuthLambda.cs index 3669cc6..e582b43 100644 --- a/sdk/dotnet/FusionAuthLambda.cs +++ b/sdk/dotnet/FusionAuthLambda.cs @@ -68,6 +68,12 @@ public partial class FusionAuthLambda : global::Pulumi.CustomResource [Output("engineType")] public Output EngineType { get; private set; } = null!; + /// + /// The Id to use for the new lambda. If not specified a secure random UUID will be generated. + /// + [Output("lambdaId")] + public Output LambdaId { get; private set; } = null!; + /// /// The name of the lambda. /// @@ -151,6 +157,12 @@ public sealed class FusionAuthLambdaArgs : global::Pulumi.ResourceArgs [Input("engineType")] public Input? EngineType { get; set; } + /// + /// The Id to use for the new lambda. If not specified a secure random UUID will be generated. + /// + [Input("lambdaId")] + public Input? LambdaId { get; set; } + /// /// The name of the lambda. /// @@ -195,6 +207,12 @@ public sealed class FusionAuthLambdaState : global::Pulumi.ResourceArgs [Input("engineType")] public Input? EngineType { get; set; } + /// + /// The Id to use for the new lambda. If not specified a secure random UUID will be generated. + /// + [Input("lambdaId")] + public Input? LambdaId { get; set; } + /// /// The name of the lambda. /// diff --git a/sdk/dotnet/GetEMail.cs b/sdk/dotnet/GetEMail.cs new file mode 100644 index 0000000..c741f75 --- /dev/null +++ b/sdk/dotnet/GetEMail.cs @@ -0,0 +1,202 @@ +// *** 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 theogravity.Fusionauth +{ + public static class GetEMail + { + /// + /// ## # Email Resource + /// + /// This data source is used to fetch information about a specific Email Template. + /// + /// [Emails API](https://fusionauth.io/docs/v1/tech/apis/emails) + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Fusionauth = Pulumi.Fusionauth; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var defaultBreachedPassword = Fusionauth.GetEMail.Invoke(new() + /// { + /// Name = "[FusionAuth Default] Breached Password Notification", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetEMailArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("fusionauth:index/getEMail:getEMail", args ?? new GetEMailArgs(), options.WithDefaults()); + + /// + /// ## # Email Resource + /// + /// This data source is used to fetch information about a specific Email Template. + /// + /// [Emails API](https://fusionauth.io/docs/v1/tech/apis/emails) + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Fusionauth = Pulumi.Fusionauth; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var defaultBreachedPassword = Fusionauth.GetEMail.Invoke(new() + /// { + /// Name = "[FusionAuth Default] Breached Password Notification", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetEMailInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("fusionauth:index/getEMail:getEMail", args ?? new GetEMailInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetEMailArgs : global::Pulumi.InvokeArgs + { + /// + /// The email address that this email will be sent from. + /// + [Input("fromEmail")] + public string? FromEmail { get; set; } + + /// + /// The name of the Email Template. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + public GetEMailArgs() + { + } + public static new GetEMailArgs Empty => new GetEMailArgs(); + } + + public sealed class GetEMailInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The email address that this email will be sent from. + /// + [Input("fromEmail")] + public Input? FromEmail { get; set; } + + /// + /// The name of the Email Template. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public GetEMailInvokeArgs() + { + } + public static new GetEMailInvokeArgs Empty => new GetEMailInvokeArgs(); + } + + + [OutputType] + public sealed class GetEMailResult + { + /// + /// The default From Name used when sending emails. + /// + public readonly string DefaultFromName; + /// + /// The default HTML Email Template. + /// + public readonly string DefaultHtmlTemplate; + /// + /// The default Subject used when sending emails. + /// + public readonly string DefaultSubject; + /// + /// The default Text Email Template. + /// + public readonly string DefaultTextTemplate; + /// + /// The email address that this email will be sent from. + /// + public readonly string? FromEmail; + /// + /// The Id of the Email Template. + /// + public readonly string Id; + /// + /// The From Name used when sending emails to users who speak other languages. + /// + public readonly ImmutableDictionary LocalizedFromNames; + /// + /// The HTML Email Template used when sending emails to users who speak other languages. + /// + public readonly ImmutableDictionary LocalizedHtmlTemplates; + /// + /// The Subject used when sending emails to users who speak other languages. + /// + public readonly ImmutableDictionary LocalizedSubjects; + /// + /// The Text Email Template used when sending emails to users who speak other languages. + /// + public readonly ImmutableDictionary LocalizedTextTemplates; + public readonly string Name; + + [OutputConstructor] + private GetEMailResult( + string defaultFromName, + + string defaultHtmlTemplate, + + string defaultSubject, + + string defaultTextTemplate, + + string? fromEmail, + + string id, + + ImmutableDictionary localizedFromNames, + + ImmutableDictionary localizedHtmlTemplates, + + ImmutableDictionary localizedSubjects, + + ImmutableDictionary localizedTextTemplates, + + string name) + { + DefaultFromName = defaultFromName; + DefaultHtmlTemplate = defaultHtmlTemplate; + DefaultSubject = defaultSubject; + DefaultTextTemplate = defaultTextTemplate; + FromEmail = fromEmail; + Id = id; + LocalizedFromNames = localizedFromNames; + LocalizedHtmlTemplates = localizedHtmlTemplates; + LocalizedSubjects = localizedSubjects; + LocalizedTextTemplates = localizedTextTemplates; + Name = name; + } + } +} diff --git a/sdk/dotnet/GetFormField.cs b/sdk/dotnet/GetFormField.cs new file mode 100644 index 0000000..c631a23 --- /dev/null +++ b/sdk/dotnet/GetFormField.cs @@ -0,0 +1,327 @@ +// *** 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 theogravity.Fusionauth +{ + public static class GetFormField + { + /// + /// ## # Form Field Resource + /// + /// A FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms). + /// + /// [Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields) + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Fusionauth = Pulumi.Fusionauth; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Fusionauth.GetFormField.Invoke(new() + /// { + /// Name = "Email", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetFormFieldArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("fusionauth:index/getFormField:getFormField", args ?? new GetFormFieldArgs(), options.WithDefaults()); + + /// + /// ## # Form Field Resource + /// + /// A FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms). + /// + /// [Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields) + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Fusionauth = Pulumi.Fusionauth; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = Fusionauth.GetFormField.Invoke(new() + /// { + /// Name = "Email", + /// }); + /// + /// }); + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Output Invoke(GetFormFieldInvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("fusionauth:index/getFormField:getFormField", args ?? new GetFormFieldInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetFormFieldArgs : global::Pulumi.InvokeArgs + { + /// + /// Determines if the user input should be confirmed by requiring the value to be entered twice. + /// - consent_id + /// - control + /// + [Input("confirm")] + public bool? Confirm { get; set; } + + [Input("consentId")] + public string? ConsentId { get; set; } + + [Input("control")] + public string? Control { get; set; } + + [Input("data")] + private Dictionary? _data; + + /// + /// An object that can hold any information about the Form Field that should be persisted. + /// - description + /// - key + /// + public Dictionary Data + { + get => _data ?? (_data = new Dictionary()); + set => _data = value; + } + + [Input("description")] + public string? Description { get; set; } + + /// + /// The unique id of the Form Field. Either `form_field_id` or `name` must be specified. + /// + [Input("formFieldId")] + public string? FormFieldId { get; set; } + + [Input("key")] + public string? Key { get; set; } + + /// + /// The name of the Form field. Either `form_field_id` or `name` must be specified. + /// + [Input("name")] + public string? Name { get; set; } + + [Input("options")] + private List? _options; + + /// + /// A list of options that are applied to checkbox, radio, or select controls. + /// + public List Options + { + get => _options ?? (_options = new List()); + set => _options = value; + } + + /// + /// Determines if a value is required to complete the form. + /// + [Input("required")] + public bool? Required { get; set; } + + /// + /// The form field type. The possible values are: + /// + [Input("type")] + public string? Type { get; set; } + + [Input("validator")] + public Inputs.GetFormFieldValidatorArgs? Validator { get; set; } + + public GetFormFieldArgs() + { + } + public static new GetFormFieldArgs Empty => new GetFormFieldArgs(); + } + + public sealed class GetFormFieldInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Determines if the user input should be confirmed by requiring the value to be entered twice. + /// - consent_id + /// - control + /// + [Input("confirm")] + public Input? Confirm { get; set; } + + [Input("consentId")] + public Input? ConsentId { get; set; } + + [Input("control")] + public Input? Control { get; set; } + + [Input("data")] + private InputMap? _data; + + /// + /// An object that can hold any information about the Form Field that should be persisted. + /// - description + /// - key + /// + public InputMap Data + { + get => _data ?? (_data = new InputMap()); + set => _data = value; + } + + [Input("description")] + public Input? Description { get; set; } + + /// + /// The unique id of the Form Field. Either `form_field_id` or `name` must be specified. + /// + [Input("formFieldId")] + public Input? FormFieldId { get; set; } + + [Input("key")] + public Input? Key { get; set; } + + /// + /// The name of the Form field. Either `form_field_id` or `name` must be specified. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("options")] + private InputList? _options; + + /// + /// A list of options that are applied to checkbox, radio, or select controls. + /// + public InputList Options + { + get => _options ?? (_options = new InputList()); + set => _options = value; + } + + /// + /// Determines if a value is required to complete the form. + /// + [Input("required")] + public Input? Required { get; set; } + + /// + /// The form field type. The possible values are: + /// + [Input("type")] + public Input? Type { get; set; } + + [Input("validator")] + public Input? Validator { get; set; } + + public GetFormFieldInvokeArgs() + { + } + public static new GetFormFieldInvokeArgs Empty => new GetFormFieldInvokeArgs(); + } + + + [OutputType] + public sealed class GetFormFieldResult + { + /// + /// Determines if the user input should be confirmed by requiring the value to be entered twice. + /// - consent_id + /// - control + /// + public readonly bool? Confirm; + public readonly string? ConsentId; + public readonly string Control; + /// + /// An object that can hold any information about the Form Field that should be persisted. + /// - description + /// - key + /// + public readonly ImmutableDictionary? Data; + public readonly string? Description; + public readonly string FormFieldId; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string? Key; + /// + /// The unique name of the Form Field. + /// + public readonly string? Name; + /// + /// A list of options that are applied to checkbox, radio, or select controls. + /// + public readonly ImmutableArray Options; + /// + /// Determines if a value is required to complete the form. + /// + public readonly bool? Required; + /// + /// The form field type. The possible values are: + /// + public readonly string? Type; + public readonly Outputs.GetFormFieldValidatorResult Validator; + + [OutputConstructor] + private GetFormFieldResult( + bool? confirm, + + string? consentId, + + string control, + + ImmutableDictionary? data, + + string? description, + + string formFieldId, + + string id, + + string? key, + + string? name, + + ImmutableArray options, + + bool? required, + + string? type, + + Outputs.GetFormFieldValidatorResult validator) + { + Confirm = confirm; + ConsentId = consentId; + Control = control; + Data = data; + Description = description; + FormFieldId = formFieldId; + Id = id; + Key = key; + Name = name; + Options = options; + Required = required; + Type = type; + Validator = validator; + } + } +} diff --git a/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationArgs.cs b/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationArgs.cs index b20040a..c7eeb97 100644 --- a/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationArgs.cs +++ b/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationArgs.cs @@ -37,12 +37,21 @@ public InputList AuthorizedRedirectUrls set => _authorizedRedirectUrls = value; } + /// + /// Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. + /// + [Input("authorizedUrlValidationPolicy")] + public Input? AuthorizedUrlValidationPolicy { get; set; } + /// /// Determines the client authentication requirements for the OAuth 2.0 Token endpoint. /// [Input("clientAuthenticationPolicy")] public Input? ClientAuthenticationPolicy { get; set; } + [Input("clientId")] + public Input? ClientId { get; set; } + /// /// The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. /// diff --git a/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationGetArgs.cs b/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationGetArgs.cs index 03b9640..0cb75f3 100644 --- a/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationGetArgs.cs +++ b/sdk/dotnet/Inputs/FusionAuthApplicationOauthConfigurationGetArgs.cs @@ -37,12 +37,21 @@ public InputList AuthorizedRedirectUrls set => _authorizedRedirectUrls = value; } + /// + /// Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. + /// + [Input("authorizedUrlValidationPolicy")] + public Input? AuthorizedUrlValidationPolicy { get; set; } + /// /// Determines the client authentication requirements for the OAuth 2.0 Token endpoint. /// [Input("clientAuthenticationPolicy")] public Input? ClientAuthenticationPolicy { get; set; } + [Input("clientId")] + public Input? ClientId { get; set; } + /// /// The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. /// diff --git a/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationArgs.cs b/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationArgs.cs index 360de2b..382b6ff 100644 --- a/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationArgs.cs +++ b/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationArgs.cs @@ -14,16 +14,16 @@ namespace theogravity.Fusionauth.Inputs public sealed class FusionAuthTenantJwtConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// The unique id of the signing key used to sign the access token. + /// The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. /// - [Input("accessTokenKeyId", required: true)] - public Input AccessTokenKeyId { get; set; } = null!; + [Input("accessTokenKeyId")] + public Input? AccessTokenKeyId { get; set; } /// - /// The unique id of the signing key used to sign the Id token. + /// The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. /// - [Input("idTokenKeyId", required: true)] - public Input IdTokenKeyId { get; set; } = null!; + [Input("idTokenKeyId")] + public Input? IdTokenKeyId { get; set; } /// /// The refresh token expiration policy. diff --git a/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationGetArgs.cs b/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationGetArgs.cs index 6930c0e..68670f7 100644 --- a/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationGetArgs.cs +++ b/sdk/dotnet/Inputs/FusionAuthTenantJwtConfigurationGetArgs.cs @@ -14,16 +14,16 @@ namespace theogravity.Fusionauth.Inputs public sealed class FusionAuthTenantJwtConfigurationGetArgs : global::Pulumi.ResourceArgs { /// - /// The unique id of the signing key used to sign the access token. + /// The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. /// - [Input("accessTokenKeyId", required: true)] - public Input AccessTokenKeyId { get; set; } = null!; + [Input("accessTokenKeyId")] + public Input? AccessTokenKeyId { get; set; } /// - /// The unique id of the signing key used to sign the Id token. + /// The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. /// - [Input("idTokenKeyId", required: true)] - public Input IdTokenKeyId { get; set; } = null!; + [Input("idTokenKeyId")] + public Input? IdTokenKeyId { get; set; } /// /// The refresh token expiration policy. diff --git a/sdk/dotnet/Inputs/GetFormFieldValidator.cs b/sdk/dotnet/Inputs/GetFormFieldValidator.cs new file mode 100644 index 0000000..16b0d38 --- /dev/null +++ b/sdk/dotnet/Inputs/GetFormFieldValidator.cs @@ -0,0 +1,33 @@ +// *** 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 theogravity.Fusionauth.Inputs +{ + + public sealed class GetFormFieldValidatorArgs : global::Pulumi.InvokeArgs + { + /// + /// Determines if user input should be validated. + /// + [Input("enabled")] + public bool? Enabled { get; set; } + + /// + /// A regular expression used to validate user input. Must be a valid regular expression pattern. + /// + [Input("expression")] + public string? Expression { get; set; } + + public GetFormFieldValidatorArgs() + { + } + public static new GetFormFieldValidatorArgs Empty => new GetFormFieldValidatorArgs(); + } +} diff --git a/sdk/dotnet/Inputs/GetFormFieldValidatorArgs.cs b/sdk/dotnet/Inputs/GetFormFieldValidatorArgs.cs new file mode 100644 index 0000000..b2e0eb1 --- /dev/null +++ b/sdk/dotnet/Inputs/GetFormFieldValidatorArgs.cs @@ -0,0 +1,33 @@ +// *** 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 theogravity.Fusionauth.Inputs +{ + + public sealed class GetFormFieldValidatorInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Determines if user input should be validated. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// A regular expression used to validate user input. Must be a valid regular expression pattern. + /// + [Input("expression")] + public Input? Expression { get; set; } + + public GetFormFieldValidatorInputArgs() + { + } + public static new GetFormFieldValidatorInputArgs Empty => new GetFormFieldValidatorInputArgs(); + } +} diff --git a/sdk/dotnet/Outputs/FusionAuthApplicationOauthConfiguration.cs b/sdk/dotnet/Outputs/FusionAuthApplicationOauthConfiguration.cs index 572a0cd..9d1490e 100644 --- a/sdk/dotnet/Outputs/FusionAuthApplicationOauthConfiguration.cs +++ b/sdk/dotnet/Outputs/FusionAuthApplicationOauthConfiguration.cs @@ -23,9 +23,14 @@ public sealed class FusionAuthApplicationOauthConfiguration /// public readonly ImmutableArray AuthorizedRedirectUrls; /// + /// Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. + /// + public readonly string? AuthorizedUrlValidationPolicy; + /// /// Determines the client authentication requirements for the OAuth 2.0 Token endpoint. /// public readonly string? ClientAuthenticationPolicy; + public readonly string? ClientId; /// /// The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. /// @@ -73,8 +78,12 @@ private FusionAuthApplicationOauthConfiguration( ImmutableArray authorizedRedirectUrls, + string? authorizedUrlValidationPolicy, + string? clientAuthenticationPolicy, + string? clientId, + string? clientSecret, bool? debug, @@ -97,7 +106,9 @@ private FusionAuthApplicationOauthConfiguration( { AuthorizedOriginUrls = authorizedOriginUrls; AuthorizedRedirectUrls = authorizedRedirectUrls; + AuthorizedUrlValidationPolicy = authorizedUrlValidationPolicy; ClientAuthenticationPolicy = clientAuthenticationPolicy; + ClientId = clientId; ClientSecret = clientSecret; Debug = debug; DeviceVerificationUrl = deviceVerificationUrl; diff --git a/sdk/dotnet/Outputs/FusionAuthTenantJwtConfiguration.cs b/sdk/dotnet/Outputs/FusionAuthTenantJwtConfiguration.cs index 82ef0e8..5520e25 100644 --- a/sdk/dotnet/Outputs/FusionAuthTenantJwtConfiguration.cs +++ b/sdk/dotnet/Outputs/FusionAuthTenantJwtConfiguration.cs @@ -15,13 +15,13 @@ namespace theogravity.Fusionauth.Outputs public sealed class FusionAuthTenantJwtConfiguration { /// - /// The unique id of the signing key used to sign the access token. + /// The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. /// - public readonly string AccessTokenKeyId; + public readonly string? AccessTokenKeyId; /// - /// The unique id of the signing key used to sign the Id token. + /// The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. /// - public readonly string IdTokenKeyId; + public readonly string? IdTokenKeyId; /// /// The refresh token expiration policy. /// @@ -49,9 +49,9 @@ public sealed class FusionAuthTenantJwtConfiguration [OutputConstructor] private FusionAuthTenantJwtConfiguration( - string accessTokenKeyId, + string? accessTokenKeyId, - string idTokenKeyId, + string? idTokenKeyId, string? refreshTokenExpirationPolicy, diff --git a/sdk/dotnet/Outputs/GetFormFieldValidatorResult.cs b/sdk/dotnet/Outputs/GetFormFieldValidatorResult.cs new file mode 100644 index 0000000..73d5fa5 --- /dev/null +++ b/sdk/dotnet/Outputs/GetFormFieldValidatorResult.cs @@ -0,0 +1,36 @@ +// *** 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 theogravity.Fusionauth.Outputs +{ + + [OutputType] + public sealed class GetFormFieldValidatorResult + { + /// + /// Determines if user input should be validated. + /// + public readonly bool? Enabled; + /// + /// A regular expression used to validate user input. Must be a valid regular expression pattern. + /// + public readonly string? Expression; + + [OutputConstructor] + private GetFormFieldValidatorResult( + bool? enabled, + + string? expression) + { + Enabled = enabled; + Expression = expression; + } + } +} diff --git a/sdk/dotnet/logo.png b/sdk/dotnet/logo.png index 1ed60c3c64398742c19610d07a97059e19225845..464a94699c2174d6f4f337350aa42c2b0e478c10 100644 GIT binary patch literal 13446 zcmb`O?sUlRzI=9fDqg%0vLu`-C6e%hHP`XGysA zsjxQMRay%wCs^=*@HMbUC#S^@618IV+eVfWLxpAQ*jS0@yaHZcLZtN%UpHU%GWS&8 z$bEoD_gX3Rhp)uWpJ|s%sT|8*lyB2rJm;0*E;c~EaV|j=h(t)CekzB4g8)vPo8XY-QR1&4AR}i7rZW0fu zmZF7G2R|DiT^exOy|zH5AHQ;;QlS*EMB}O~EVMp7p%7^jFfd4i$NJSl!F_Ctf?++w zRAT7#$TK)0`6eionJ=u}dhRI_5^BLDi<;(vw?A{6oZ0nKi^<~9cP`RzMdLAG(l0@8sI%t1|`o;_*k@r@9tz?yH21=_r=s7hG^{sHm`U=K5d5QxvLf zks~b6e5{^xDMVI{CH`%%PFCkyv!wnrsKL)tg>qr0{}^XVpb~fcZ4u~PEK6&4x5=0? zV&C3S>YZQeZQ&8%?zQ+Q_X6eN`)2T9I>{W&Lz;PR3F{0_3MwkvKD zC42kS`R5=nc+iPk^dT?v2)#(k+}QMNZz-KKFmUJQG zg}V$UdH+kA0cB6Q+RPuXH1WN`YTJBf0!cEad~0@Y%)sK)+oKA+*Bi?Dhwu=-nX6>a zl85@`>?3v}C$ohY=QZ1VLs`^tcJSwxK6rSnwF(G|+BS>yCH<(HZroI<-N`)(DR3F7a}{?&zg3Rz(Ar9B##c$36TVaKmCt+#Mae z1fSpY4>ip&0{3QqN!#|?a%rA$P;I}%)>&HjzBTvqKZ{=n6$0%i*O-`bttPp8oyYW8 zaWIQb>XuWKE3&W3BN+^_u^OEH9evlRB-i0VoFrI1-wB3;!<36ZTXRyFpm*s5`9)1?CyIH5z5AGEo?R>@$ zuoJC0j=ds6k(j6V=usI%InnUwb;}|}jy=RkNW^P{OC_m?uSvxd z4D___XEENZ%0Fhg1kca-28aKnT5uK%%y_r063i=7<0HVnxxa7Fjo?!kpoX#K!{wZ%L9@x=d=HA{|i@i(%@1qbN{ z5j7CVs&3f!ts&c>EbUt{9+hNknwp|~ClgEN-TDLdyxZg8j_I~W+@W-%M;^?bYahKwD zJkK_Xr{Bj*n-4$FH3V#PKDfWjqEL~U@t`Il%gP|9$ckl37Opa4!F~Ux4F{~nLdc&* zYL!2NfJ523_Ltf*->5_VI20qQg{6ZM4eDQGp6q-2^UIltKv8BGO|Xf7BGZ0}&G+^L2cER`#?8JQPw)x5OXIk$ixCA)M@wiIv8ZR6cC zI9N&&!Jidp_0~V*M@Q3FyqIOh#NFZH{=sFvHAru=V*f#|$lZa#ldh4~2*3VYOdfvm zs~T^KpyQl`Ncq9p!=VlbBqgnnX3sxvb-Cf(WFE`p9B{WWCw|7{k*y@Rupc2T$X6v(l#iISf z@;8R`5llZd2mvKU)*5Qp+!ZlV7p_3>fUEHL za}kg|RbH~JTraS+WsZK1vw_=2n!zxiL+YxSfRMAfx4?!l1_o$)W%kxQxV849LIu}Y z1d5!Nw{ZLO^?mzhQ1HM3cI6%42UNVMuYFtS;4tB;6}#!WQz+eMWkllV0sNFXj+-?< zlYN)UhFWE({qCnbSW)DSQUjQc3v9 zVOD;m&6}FD(}hI8PKb?^KK5;2)PZUvc8iH8v&90XE3|Abz}J^p52wecLC<{)nvnW^ z;+8GN;@Jic4MFm{j5w6ev@0H@7bOd2cv05o&wquhT^7}VzMt)L-V@yMP+G6;$bZn= z^K*+*b^NAcaV(|e<0D?iOtHDOZSqJAMTiC`1f%<7p5MTU7yOQcguDF|kO|Tmu zJzsDV8#VLW^89%JyW!dAB7Car_Cv#`rYh1A>(N7Ze6XRJeqrJmQLu$&5`+-_WnU5g zacX>>c&|1yA#j_Xj1>KAfa^a={$0lw_kZr=%;uOPGhZ#CrqmELrKC(SFx49*yALfa z(`IH;s&6k1j)F*^KqDn3z*6z#8{W6mX2sHz_o1@1zK6$S#1dU!5UX|j#Ha<3u$>lN zT78H$H$s-J_l|^0Zu(^@16;khsLn?a4+|_^;7XsQD5{NY$Fs9y0j_mK%E zo%XU(8R2vO_vzJRA63x#!b(JFB?gwkZQkxJtetQK{c5N%6BKN#0O6arDCsuS}vf3p{!NKgn+X6x(mVgU9Qj ze|LO$K6dF?qb7AHtK{(P3~|E|R6S=OPrlaR(~bnv)V31xJhwXyF9`jf)Yw`cS=m_I zZ#6T=6z}A0KTc%BCn|il#gyLW|8Hp@?aZgltkk)z=0jNp2WNu~eX;JS9Bua04m(A| zD3@v`wN;%DHI93$7_i^leqHlt*Uj*PSgii5fl{=>QkS3G3g$)=5p65w15`K`(Bs9D zQVsIV%%&PQ(6A9kMQ7FCbm+Q6YS@(>HOc+ug-cME7b{tuTOb21u9>mvOxHU{9T{gm z8^nOq7o}oWRpv1esOL5ycFKTdch81D`K$C+?fMouCH&Xno0fIAnqb#Y$5ePR12xaH zTKWzP$BmUGF!?G`4~x^B>fF5Qhu*_f(cVn5Q=_<}MuVx-)pbUkTKe!=-p2(2iN}jS z*rg>c>q$53X%>AX%)S=QvL*X+mQk{!atB8i zXMLVNu22iegpIfbZ4xF}hODu?smZ4$GxXe4po$rQpmZX;} z65S60#>Yg9yQs}W|L(J>Ogd-2%WGLD*p6IwRj}G!?!zuI5jI=8W3BeSyT`o>9ay{?GDtTqy~F3}5;&A`#y({f zmgquJ%G1BU`hWe{-Tk)yCl>=O{asTKFRpmbKKUyMgo<==7f^?quGr5~Y*L|T%w95j zK6_MNpGwfPbvAu8T5rIStq0k4>Aq0{Zr9$YBm4G?bB!hM#^#mE{Q-q4qPft(_G**% zMw9|tN1DnicC0w8#!6!&0y)!Guj7-)uHNcTFF?Tf$k~0n#>4db*dxBi~5!_kR!GrbvBF#m1F#8e-2;&CH8>+t-)OEd*c?_pZ(eVnS-*ZQ3*3Osfe8OP2 zEz)Ii8*dZ+*o72teC882bndgYNH|IW)d++r0o0+AstM-QDSENFZ!54Ez+iQ;$v#gP*q#PCK5Ly(M;y zWj|SFKt%x=yDA~bEh>8A;mZ|Uqs;;hWF`G19XeCi=N90wqSZ4^9bIS_U7vyJ*{BzD zDl~Xds(mIvTDkdPRVqR!dXE`FBx-YV&uCanD}!vbE14Z0`M( z=)lp^a1Ymb<=o>yG1bPy(tyh5124C*R!>i|hwvW{UzA9BK=kZHeKjinqTFCRx+7g6 zRU>EN6JS*y^14Ho8@A)K+GLxA8oaAHxR{;mc6p6ObmUR#%F0#;y*z?7IIlM4Lt@@~ zU+6C>Yz{HU);oL~lAf^&V?N5c-bu~G3+HrH(c_JQ99xd9R)6EiUGtG7v`fh(JKyB(amblmJ2 zr2l!%RO&TY!yLM!)42s3Sb8d#KQ*%q6E`RnZ|5NOw(nS&r+Lsf!JIFHFb3@7HS ziapL@p(uy{Ke9I^n0<3{L%3^F>H6yfPSoFsdxu3-(g;i8_BP-&p%adl>NDpB9sLDH zxq3ZgRr=)3XP-a8&u1T&)*Cspa#a~c+S}$1dDXO-;wh{HC%DABo&7I>Loa<#o-1Vj z#8hnWXXU=He((s?g#rCg`6>s8GC)nO4T!k5bZc4hr2k;6Jhfv#^18X~2F96Vfz#T>)t8_zX-0XX_1zuwMu|L(cq4UZh^P_L z#gB&`nSM?AbJE{a|06btYN+V<_br=q62|$mXyOUY!7l!*P5VwMKZk$p`V&h$?|Cit zahM;=Wm31DTy_0>dXJ3~0hOTcsRim(?vLh=jcO+KTOPiC_b5 z-QnN*ZHZ!_<-$qy3v&WL*)-ikXYs~>3a-j1cC3{r@%Ju$)AZ?X5C!p-FoCJstow1~ z{ibzAmBsY&^~r{ozAfwU;Tolj#wK-zu@oCoY8te@cykZipts&o&95rLQ)lt`LPLES z18*#(aCq{1u>|Fsn~y;5(Y@h#c1fb`Tv1)tA|Fq>(V=Z!@VQ1^t>P0-=8*Hn{ljKJ z@E*Vn4D$pMB7q+Bd%4w_ArLQ(fha~pUEO~l>aOn#DPOW5x0QK%Zwaf=vou8L6?|zR z6MMIl^6_I=n4r_8@SpfU?8^}qQ6q4b%_l*@?00r=kfBM-;MOCHdEgrK@O-|#h^yB= z-tP1Tc!as}LVaCx3opt{|hI-3V5a-^gY+7;B2sFz5`P6?1+;WgF63FP9` zRPP>M{&+!%T3a=NwY)g~AM&a87PS4i%-M@$mk@P-TD5z~Qm*>+N^e5KhlC|*W=db{ zSp%bPN%@^nXBK6`%}QMSceZ6LqK1M-8+a2MD?JWoT)akIwG4w*((<>X4+*TF@GX^! zt*Yb)jE)8H;)HT?Woeq+oQQOsJz=uFwB`UDZCzeoU(J)DqX6am@jXgYG>*w`byOlp z;MjPP9AY%?5@Efp5f8~NEZcZ0c+fg#n_&Cf4{@~^k!mwoI@N8sx_RrYD~Rj3Y^9WM1vkX7D8y#RrCx^qOV(IC-O_lrW6Yw1E7b5tc_P zclymI00V8+<#xSTY`2`Yuc#RHb<(1#piS}ohc`YKv`xuZ5QTb`)BZ+TT8SRk~0+*(7dm;S|8#+#*CEX_T#H zQ9+_fNb(hzyVbV|P|!d63667_!>Hj#MXdp+g$>rM-4PhDEL#>Z2tw$-c!Y@qzI*&` zP1A%rVJp)#N~<&H)!vtCyaop0P}%6~kOB}uK7^ZV*v7roer3xwPD8zcQjeMNC9Xa# ze3a;OtYyGrX2_k6k0lK%TheDk(=D)6L~oKcO}#djFqUJ>$3e~`_k$A$CObPl6^!W6 zSptg;@+zn1ArZcblNxP^HA*-~@ISE}M%pAu#X!{Aoi-vPhN7<*14B;J1Y!{D@C`g`lWA0DKVj4@QlduZe*6cDSS@dHRAvXkp?)tAYi*%9_g6KXUqU!cN*uF>;a?FGVz@~ZCzM?JCDx=0)1U!|GPE;iVD-mHyi49xs zn4won?mv&p9}B~Pseqe?cA^5*aTTQ{)cYvZ1sm6Tlr=BP+eBab@AyvWpUKi1*W*N- zxi!gdE=bQ195aG3k;U^Od$Obewoejj$R4ii_cXv9;{9c6>^hl22O%1hK8rbj9J={N zQsjM-u9qX1n#_&Za69rZQvvC{n{d>yVIr@_WDV;F~_e^mY)1Ad#xpwPEzs4k7(D_eV!p0z5XdYNG7I#LutJ(5>Nr zH7N(v#xm{ejS}m3xiE{ICRrjZ?V|Ukq1oX3E9}^Zojj^>-$&!DH@eDlqPZkwq|fIS zR3A25%@Yw^NvgJvnlU@QPJ!44F(#lx*NCa>BbtzzpRw}8vgmKE(7->oX)#D=?P;Im z0E;x5w(|5%9~ZrndlK$sR4pXB&9~jrVa3c;uSB2u-C6(e@a_D!B2A&dLl0r1gcSM# zZ6tK!=mAXC+6cZybdVyG)i*&NO2E6}!i*W9U9`Z-EWwYmeo}JBfT8;S zwtvB!!-(q8fXez&=lAQA(v*4%Jv7ps&m-(c`!~bZ+MW7+M>?nqg=Xf|!N{ngxCNR$4m64M zgc|gaa!BP%k_fl<&dSiYAW+Oei^oV~Dz)T3jNv`@Ooqbvdk;anQ4uqfDsAYv{Gy&E zgxqb)_kx&c6lhSmj$Z|(l4tBhBS9xN%U^oKsE6MkkEbPR>09x^FMZpBt;6oN&}Hhy zbtyx5Y2_Klj}gcqRg}OcUD9q&i{=I}M-5SdWWMIGp^G95933p3)wf>DuR1jjz^TeH z(jqAXeX9wc0lBy-Y(ht4yEl71=<|5J!)v z)zk|I46JILQs}rXp?)ScV1Yp&Z$Tj?gDXIn%-&h*aZmF{Nljdg`juT|WI3(aOdN31w|t8^C&4B9F3+YBTe%W2LjClr;ix1? zhX?F8HlG;wr;f3w7T(dND`hp$>wT&Ff;Mq!bV>!0Z0%G1ohemg8t}Q~P*cz(vC<>$ z!u_n+vF~>G^6xKj#j_?g&hM2OBLm~qEHuvVBvqerIZ8>yG40(H;VF-=L1pDEtF1+; z3kQIfS0Ey@-u*j~0I;4M{fW#!De9$xT_A%$i!HaajWl>so;Q~w*&K^SSDtzz-rx55 z?MB|pGebw+fhprF!FVuty3X)dk=3RT_T}%ygpV%)u}-|3G)8o!RM)m%RM!HSxmu0G zYHVzoCI8t?ujA{8852KaQ~X%3FQ$q7I}An>b^ECiM&CN$ZGrBCN8NQVW0s_M%kr`Jv{&a(~6H~>CS zNcjDRG|PfLy#<_0a%%hUctJ+Cqi4l>6zQo^WTg^Sx@J{+X4@kVV9Ih=0EWrJCf1a&84vZSPngN z!jOnista1RQ>A@_8wYAcuU}3{Nn047q$FeN=YiYUz{Mm-bVo}7r~qSvng3OQ%11HB zwUQ;`+lN_i^PoVX91ckmqS2j^uXx~4Ix4I^gvsGp zbHghE8EiNa!&AI}fK-(^b)ca>0Te{XxkmmsT$oF`>D|{yt$nXmLT1DOv$N`R^h_}DrKa@eH_eh~Q*mA|%XwlRh&HwG9{p5;hS2kw(vNyAt5Q!!V zs;gr<>3~rLao|0|0mC!v|Ftd?8>4|j0OH2VDeirASX9r}`1;T5gMR=qS;scO_;D&e zcRP9FdUcJpc6#DH-lmwWJ#5pUJ_QU;oVtj|0nyjJg^*Dy)Xdnn=ySZqAU>oQw)~`; zV0hgW3c8l8ePa)oi51U(_Rrmc`q4K-Z-cJqvlW0uW)z7LW!m;8{rdasw&$lJJzh@T zRM1VI-pLAcWoa!a1U;1!4_yIZ0fvYLJBtKIoEX=NfzOs1eTT16WbT+Is>#7pETc}G zov!;DQ#mFk*8IqFTK}`V_FnRr<=4A`(SE8E8;Sk;wn|pothcH2zDs1pw7jRKP$c@FLH62#M-Jg3!%{j zx6mtq{i24jY1`JogUYi-4V7{rbl9oW{%n`8>DJ2%#&%;d-))0G;|h(&&?}|;tJ4yt zr!V&#y5qZ=K>wrI-=eI04=@O7pZBalAoNzJsgtJehr5T7cage=(Hu7VVR-@96CzXr zX&;w#2qIMRY`ata+QNd`!i3G#DZXj_1NMWwkZ%e2rk}7G6mirJbe)))78Ri+NR7V` zANl5CDCcNz^l0AC3(^nlKOdhgm#FLj=~&1>KAtJvqCD$kFCx?}5RWbkUFJ!+F3WZLB*lC%bZ=oSt%+2VVS1 z7##d~skbd!VmOvvQ^YZ!@~To7o~?xeH$P>6ojM9sN!yhF^(h0um(}JZ#z9`-Q)>#~@>de(aQ9oCu`Ydh{1bO`;(4>T zuhHu}txos2WP5aot{mQQKtKc1M$dO(aK@2(0%yck!T`n&*yl}wLMniW%4@ZZ2rlaEglX^UUv` zQl`2{DRYMBa2*JEt{l7^1MR`6)+tgp?)zO?GL~+R@BVPjzH-w2FyhSxUeARoguCXl z0s#j>UeW!lJD7B+GzUJqzHl1>PK0Gx!CzqEHgA^(uqB=x7*Cy~NF>#Sk8~N>w+`I> zt>{TE_w=^h4O=Mc2#_KgF{hPr&PcNbf?r*11_JUlFYs)AcYb_iCldSjrklT|y&t?c4v(Im&KHim*WCQk6FKuPh4cc4bN^8 z@%MXG{XFY-b^ixpuVC4SX>a?q->;;YJy(%bn9o%QU&orm#ToVd={*!8VHo237Z(zp znO#5iBgdd-bEB@a)!F}JptBxgqEMUpg7c*!&etibjO=Vu60**9-{-|Y9PNE0awAxo zp%2W%gvhOXw~^Ww!r$O9K1xY)+$ zRfx5fSxo~S`^Jn|lpLet9yjt4?OWd&Pi_J^COotn&YvEwr6m-|;Y9$5xyFtKhmoTY za^vjA_J*6aXsOkBF(;SMD1dj(xj)#q5T^juTxY*#lq|*Yst4LN31%NS ztib$(=f+V>h3+uxsIy+`9s_@aR*hac0XIUIcF>KS*dpLdr0tpouUZNiu38LaGw8`M zV07Z$mC1x%UoUu6{UN7qQqA%xHkII zkPfGVaFO^wlM;5Ru8-2AUHK$7Q&DfK<%4fNUK#bjOXB6l1$WW+%TSY2;pJPL$%7{( za|Le)LLV+(+|Lm-uR;^>nbCjH^$;RU6C|J0WDnsTsn7P{BQH^q>d`2To~2a%Evy({Jnn8FI?i|<%Z@S31K+k6DZOKLMzn`P9)k~b*? ze8I@C0$d?z+Zb{Ts3^2$F#jyDj^%ANMk{Ybmq5?4E3Lgl+y>O5YMo-c1WL^c8PDhk zR8XBF$)Plx8vV=VB8%x)*|>s_Lo`Mqmj2$&dIss6haH>iJUyn>vpX-SA~3Dm6OEeS#SOZKm+eq3w@2l^@)$3W>>*z1P(xSRbyOdcC&eXFANt*`s^5|lXhRSm1L zRD;6*PwGdtI8S)KCxM)blWm+bDe9;FjwfB3l~m%bFIc*Rs8WdlX72P~d400k*x0JY z_)o?g?L`D&I2f=HvVJ)qlQ3gd9E+e`s|%H9ql~5$ZaLr#7T;W%9VT-Np{`xFhBO*N zGQC<4fDD6{@tZU(dNzlG$`D;zj=IbNE8JsB*Ag}@PaC)<5Ri)Sj$~?576s5uqCgZjr$?qgi1ecM^jsUNjdotEJ~J}Eav_3QF{_D z`b+(oy0-Fhhqp1ZJ}hEWe&)JnPMVfB=(d<~v2sOjaYn`3qv@aDL|8&g^<3;L8<)pL zDKpja>wE(KAb)k2p~m@=3Vr>1)ARaLXDUy~cXxWDZACd$5(o7YR3z{N5r1_pcc&u| zw-Wnk)~Z^r&)T5JI0^(Fd=XWR#UoC$MWU2RjN4KD@@71?(Vu^BHth7?&DC^xcuiIR zu}%4&zqF`tz&mfCL%_!^Jh`&rq*Ge}OJy$Q7k?`z_U@oSG)|tO7p7u8iVTva?I>w0 zY%HF!p2vV8p-M){E~eca!xTROO7r*XoEPAu*K~P!z4x!sW$|rMeF0J|#)GSJ3)yfg zisX1&7GbdB!%s3iu`uHpQ<#gjIntHV$^=t=x$vS|x|+&6tBO138Hu(;#S;n-Jy<5> z+OJdlb_yI)3#*%se&V;A`)ys0af&xrbfz}Wd`)>(h#8E zh?AWAbRfN8Odm_D>U#m|akI3MJFLETj=SRX%aLbE9cPU#L`#Nd1w>*(qK9qj&)tmy z_i0Ci(&uh~=OEYLPvxB{Khxi5*dY~3m;2S?eHW%sL+CYnIs;i;V9?>enX?ffSRvu- z6Ksg^WN0m+#qH|!RB==(8rtdH6mdNbI-UOe-!yu74wl)n<{p3zTafHu+yTkH8oeyl zi1O&!#k4`dO7Y9Fh5Zqd*(zJzS^rwTV%;rOy8D{>wKPhWCxp+kvR|N!x#SdLu_B+J$BuJuUcg|!psogJt41f=WrT?XNlq@2# zV&T8&uA$a{T};QcTB|}o6)TJJGZ1wG`g@kZ2d^EJdv+|$zP;k6(s(M-0N0>E;A|MI zUL;#)07C29hl#Ni@H2mVm9Fkw{R=Npq^H!N#~=A$;1f0Mt9@qS!3&HYu89t@=fl z9+VV}1O!ov+8!Rk#26|~z+eiXH&rDkq2#*{`tl@NTi{7vwdz7sE;8w@x)I!Ufa^+&wEaa zz{kEB$k2esVmOfPCk25pY}P8gom_xuSe;Sa|I%q^z8!p&eW+ovvPHQdG$7Th^^jX(+Z7jx5_?6_E}g$MkIA6ArWXeC}{v z7D52k0^IOD7ab~hlA`RpGgm7N9J-~L=T5;(+KV_)g45vno z$G{R+i<+>iBbi_fmnuzS-L=Byz_CEW+<6xuo)B4x8chv~;CX_@-h`IeTTv!ce+Di| zRmPn&Yc2xd#(!PvZ)@x2J_;0>DwXw0tlsXLT1w!-gTf1K9cDs|mrGx@5wi5XZUvw| zE`Tu;Bz%Qr(vR>;(c_Ik*(jq1kwO9b2LxrdT)$9{G_GxI4FB)hnHG*4)7{N4|ECYm j{C_-#^BfF3QuO?c5PzR7?-DNqya6f6smoSNTZH{T3ttU~ literal 9664 zcmcJVQ1g6{k4G-MzR4inO>E*FtbBL5dd&6qiDA zcRxJmd^mr=yWS7?++SwRnwhm{W?#Q+N2w~y;$o9y0{{SAc{wTdr~klzANbi*Tlu~! z8vvk>ke3qI^vc}J!tye(n0+|B75Ut5!IBX)u7u6Tm{eHwLgBMp-d;3AUNUoTP6-(M zCh9$cu{ZzZQu4|GAZ>1w@f@m{=kc@NjbM&0T7u<8%Q!xc#E|KH1^4E)F}F<$@@J-} z<)|RH{L-@f_Eb#U5I6Ux=;1}%Sb@nKQXdo;Wg-_s5ZR3Y(LzFLuw?B?f;KOk|p5(Y$yyekho0^=gNiMnXmdzTB=5~A@$*4d4w7RV4$;ftifpx6cH zySz&Ktc0k6E6trm10&5Zo}8WS0U3eQWEZ_)I=K18Pt3+Xj}9oTzgQz@{RU>+Wz%+C zblKiGI!?!Dfq!7QsVisO8#*{*^8y>Q$p621*cu@&nvrNl|2{c^&#j zf=9W5$JDfl7mQhN_dzlRY2r>c!_MJ*#vzXG#*^2dE~g{$?a7~3hYFiy7!zm{nGV3B z{7RGctFG`b;MfB{@cPSUIDxFs(zg#{v2dSUza;-u)Kz8tD6;hUP~J9#j&Wy|qjE_v zEq5e>5BJstbVBga)^_SHWmgnkw&Sl9r_hu;`mag-Ed6$)PUN2pGmWk2 z;;T-hCa@YBZrj~Tuyck71{`wNy`Lr*c(X6>qgy0G-jxL--L+^Q}E%BpCRle>A%5RGIt> zPeVK3ANJK;KKMA~EA>ej`Ii%X5#Sxk2xfP*-8RrMQajZZyBXEG>3v~qSLE-8=_CgF zEMkMOE_Uk3f2;0i_cO!-|7~vj#+=LUN)DEjq23~)=gZ}K!O9k)*s3x?j(-9wt#fFi zmQ1@lQ@E~=+i7gg5;-Jt-dZDW{mu_0UE)+cjY-(};A894B&WF<6VFAVE9Sl#F?gP` zH_%?f-SDT3S-BqHJhqc~p!aJ7N}13d z_@Lricra!(J9F}PwO`Ka4D*En4DQ@0LR1MHwlLaCU3+D8>7Qtzr*?mIuwBdtIuNNi z8n7i{ZE9T<8>*Adc_F78CIUo#hLI*ZyaIVdu06t%13gcFMED-n4pLmt{>e{8HZm|_ zGGIAt<~w$4%dT#${h%c|z1h4M2s=!zE897YqFt=YOA@b3q;YrtoA3R&nP4$nFosoF zQD<4!^%bW(*oGI5TK?3@&faCu^77O2`9c@P>soE1HlPW7r=eL%_seusVL%i$(jrEb z9`WCZktQCdGxY8t)M1{J;%U;+OX}fW;$&?tV<}8mjQj@CIh+Z!qxOGt_X+-->^Nsw z!S6~carX^64m@Elx*+bA+DXUT_SlgI_0Gb98yO!& zf0e%w3G8i|1=Rb6UBF!q5R%Tv-xJ0-TQ#X_KlCgMB|JVwasR9NcyuQPY%RqEDj{aa z-EZ#gmM;!@Z4v*SP{mtJ@y|epTvvTKBX9E@sT`$?7`%e7}p%^etnI zXb@Lxs-RPMj#r71SWZf=bPK!TXG?OrMfdJ#fmMMSCOAB(d4>2qdj?Le>7g%e9p5%I_TY+ z`Vrv4`F*Fy&mS9=+8b>4)pL{-GcvUtbyGy-BM(37Kp&hQbZPxt<3ElU)aE@{CY{!^ z2)Jn6HC{}WJRgt`j;*@6gA%;0Xx*Yc_IrT7tFEkcziS*tJWq0Y-%XH4WKg6p4Z2jy zep`UDnw)?!U=V(u7KREKl)pJnPyWR2B}##}_b-b^5a;E>B0G9T4BTP73@YH@YjvC8 z$IpuE;y_aV-`hbH_Kk>U8B=$OqIB|>#wDm$V^7jlEf&%Z#v~O#0>ht4yaBAhRT+O! zf;_M-Fb5iw2YkBp4wIeyPbXb{l~U)W@Q9tWNt~73vzqLP)hQZ%P8V(4rLHVhM_NehMvj*FyHaRyBD!JIQ_lhAG?P+3|S_)ZT#x-xgr=w({>zQH2cEm>29K0LQ z?%&d@U&Ku0XnskTV;%oH@HM31BJYmkR<1ZM@Y6ssm)%E(NQ)OTq)A1ih|n3nWnaf) z<=$GP;fuvl7fctS?n$&vdKjj;Ic}|TSjG46#7-?0`8R4=1Gk`n>3W{KN|TBmNRx2NL@?qo;)5Xy!9xI`VoX|Ou6;Vhp@NIG+$D79QXgYSy=NKf%z0Ot;_l;X0HvO6bI{#RS)9yZ+0oe2M*`$ZNwyoO9cc?(yi+}%}v;^teHIWTGyI(?2aXVPKkGb|~duvKVI)1Hl^m{`jI}5(DOQxvJu#j_D?^?A^_i&nJUB$9U@w zV9~GY(rZP*n8~rm7btYr2H~-D} zTMc5&$ZHJrXUP`&6wc(d=R=rO`dr~%jv8f*0^XaQdQ@09N=mA>FQNnwG&se;22i4p zwvwPxPZrs=cFEHOKNx9w3uAd%haMTesj3$4&1^=qZF$|FrY)z>fwL5)DuR>hRgj!cmZJaZ2lV1sPl-v4H%7v;&2jLY_G%b=gOB=z4<#!*|q1($?qRA;Jc%ZQW}vCUzsFk zwisaD*mN}*D&D>IYIyk^ttmLn$tr#U`);P~qxa6z2ERzLZ1?L6qkqq9@9qYQ#>Km) z=Gywpn6gA}gqbDyW)lzj5m@M2jA#;U>NdL2nR^bhv1Hhx}7+yjcoNX2jae{K)xS~_#TXo4IY(Xh{Y%ZmrzDDhg=axFY%Y;Qd-@n)m$*JpU{ z?NG>*+-cr3)3d^5CJlygNf(TZjlK$8li;{b5snwrM08gnj&4$Q`*$hoKTfvMwGpCh z5B&dTLhHn_R$8uJcIR>z&qZ9@P|jc7vh z-F9*4a<;DW)A;D2)KiS^b7Ul2>v0`&q_@fj+f`$)`23TIynP*m`9yFAP2x-)pP4A!u^sH}$pmwZMgpG? zw-L8U2g~CSJp5{Sj7Z-!5V|3s^&ApJJQ`PJaX!?+zwDS2JIt*j}xo?n<0WT8~ThzmPK0Ah`bHRwo0vb^hlU$*PA)achp zMu1`%Goq?hkIsXsY$)2&;Y93jQnA9vb%A-+riZdoYHVWJRN z5s)?zKawqMQP%bD$w-}EUOA6z&xQz*i&d>Zkr$EgdrCsc1>QRVoabO*0B!$!#C5=h z$-IZCl)qruLM_n9>~BAJXgn zBQ>PCt;7G)$)ukL%$@%0BrJ$%6&XCaSEz?C@M}md9na&fD`cPL4zSels0>VzcG?pN z6@OC|3ai`xMK-0#y_u2LZIso-z)ol__31JwfF6Oe;mkY!=gb3qXC5iQv<^-DeUeg$ zwo3IqwhOPb?fFIDVoH`mKPA2EO$ywj;P_eLqi!X5UroGAN(bRZwVTNqS{y-&#u$INqIb`e(R{&O0e(FE*VA0 z9dd<+K`}U3rgrVAVf>;~ELw9u_@GBkn$T!l3DWjwZSOVrl9vBfQ zZSG$sYG<)^*uI~r`Q-HQTg7nBrEaX86P#4mdN)bJdB1BGsXTW(r+^Z?^0HH-jv2{N z1fS=7G3Ll5zIeIi3&}zH%omJK2{p2o-ey@usv1n{#H=*@N2szgd5CU`;H(xSQJrB1 zIM^Ltea&et#&rs4PfQ0Up`Nf!C(v|0O^|KrM{YYWooi4u<(rL7M_r)3U^wB~KP_^m z7+m4-=)6EDG0 zt5V}ZfHSwMf%5R{EM-mt1Cf?8nLx$qu(q|N5ur=?MHq@*m18Ft&x~ciK)Qr@H*Ng3 zifbe8vVs%Rbn`)t^Gz^lCniNP)AL_Re~wYd1uxiu0*!u*U;%9f$Z@mb&Jh6hq!6oX zZ#dP2Z@1@azBA1WNyB#ZaxW+0Lu~^N!e#2oAdUk^p_?{#@m8_4@yfpyYo*#(I(ZF2 z>FWG5jO8UA>QKGwKk`O%FG?@z^X0~ql`5K5P2;t*C5nDe#o@Ylo-H%yR@B`H5|HK8 zLyjB&$qCd5bKQGJ69*FeujNL#q1R$L8GHBgsLTLnbKM3lsEK6jsl0%WX?|^60gshC z5>Ont6uADv`m>3=>P2oRPT}>EuQ1j^q1O9CDN^6Jk*%-*PVbXgLN|}$hygXB4fz1E zlKtNTBZ)`*BZ*Eaerqe}r6%Zq#u~z~V?ygN@BO12Fe~%?@z;qq6R5pwXG#g~z9Es? zBgP#ESOkK`-v@WT$=(0SW&eIIs4Gjj(`_=QAnI>uh%fu!GW@*o1@PLl{E~M$Zcd6J{ z|4Et$O2@@|kJXyQ9G{Ovwj3CI8 zm`s1=s;*jvMh+z59iOXLwEz93NqC8{qu`Po1xNIBL|n?#(cjnDL$K$UHyf%iNzY$r ztjEI5w?C=wma*|ca|pzHv;UOSNd-017(B;GAYN`dw&@Ii;M6FlCbB*BQrmU&=BG1i z08Q#};PT&o&}hjt^4@l)-13tFmF~6qn{2H9=8gHW-H)#v5?Nz$F@8$W)0_Ja=2SS4 zZH1VZW5u|N$nU`m;E7Dj#}lMM7=C|dEVrs6&4E5?oE)|r-O+e0C}#I0(8gYN-~Cq)=%mIK8-kzAIJh2Oa>GA zDKS18x=dOc+sTJjU`rKhH;nom$pSaSHFx%nq#itvhvUc-u{0P`&{6ICYcBL{(+Owx zLQhm!MJDzV=%QEVe*YF?_m%f7Bgj>@Ow_vYM*i3E*s`4EVbN!;;QC>5m&Qmxk;NO$ zD~IFZ5wVNuGWJ21GDkP4m_k7r#Ls~BTKtJiLq#Pwh&U*jmCrI@SJCmiKKyqz-Zob+ zsozNsRdg>Ch|hHr5C^Kgb=8;~llx|_1g&huZJ%(?OkSR#4ht$U$ysgfs4gLCc7YFqvpRdm2x_)|B+jtWg)}NKQ92A5>779_EI3ph4Tf(~;PvJs}=35l?-y!Uqa8SYSMBya zOgvmn7l4uuy?aF83Oj&AdkJL{j!eGQP~&ZY0k7H|y&XMr)|Lg46L_9MVxgNFSP3*a zK}n80Y^BQ+zaj6^lvzCrsrRD^jpvkPR)A{t55z==_qP>@tDMF)+PBnLkLYlvYt+sy zDv>(62{RCnFe$Fkud_B!^oS`>`i^C%M^SZqz2)r73WlkmzL{ud%s=7l?8O=7us-^8 zMF1lC6jt1qdwm{39&=m!O2pfMilXtBgGY8^@2wF%*p75 zCxBvID}&C6sl(=bG0vkKQ;vBKj57eOizg9P&jDVd7aSwJ_OB99LJpJPc@ku$;&C7QbkX5jGyy^?ml}Xk<`)wQ9CUfh>mip?^xyA6y?ieca1$e`2|x=b+uP}q6?)-~-c>HqRu)7;876m{RHI!JW%rBA_D?@e?K#lA z?S9F9Lp+YX*~aWM|8&u~=Q!m-p2ajGLfYKt+dgEczn9bL`el9d7bC&ZlfIW20z`YW#&vhZ-|!Vx^o)Zy*gH>Qy8 zZ-v=xdxgeEEn_^eK8{$4&hNo59ZVVG4R4RC=GR~Lt`>({S&k1c$KXHD>a#V*_rt`Q zeLe?y?9yg@d>djjGKR(Xl6b>^I+E5i>X9#M8T?zGzc$eSr~$>DMDGlpS5v}vH0Z2l zEba{u z=s8kqZ;v-8hF}3_5B!WxXJcQJR88w|O zs$|GH0Vk6xsr8NfLfqdn&4``8{5=v;U1CK(t5}cYXwR{~6;&9;qBB%ru?tytYy>lESiH=S5T{K6pB?UU2ov(UVSb5Hf zeX`*H&pSOL0rWJmB(|0aELP`Qhj%De;~2GjFSf)d;0t;SGV-ltk2&yP1IiMf$nC`j zhi0`N(oT1}AoZ0GX1fDuwr49kT}9B1Ts^8FBPjBP-gK;1%%;W0Lu8)kFI$X|z~%O? zq-1HJ!}k}}?t( z7m*0MW@1~ogtrxxR5{v}_@YSuK5tJKr9lW3l#7ZDBqIA8TyYQ3yXljx3@6*H4_KD; zXM7n&0_XC|dP_Z|!qwMv>QAU_4Y(M}@j_<{$G{+8(;0`&YU%Z8w;j*0_4UIOnugYb z)U#J>Kf0>^crrEVK_8vz=qMwHPgrhzt0s#x+4K$w#=*`dvFp2zBL*>Dy50CK=zE%P=)*akY>h$@D?D$ z+e+4lolI^S_EC@YhIfov);ROs%VuEZxZ4%-`-r4id{z}cQJ%)aKst78~koHfc(9^hq|1xt%e zR+iH^c0NXkHeo6N1IPr`1tf+--%3Q%{vzJ>ga;uz3Zg6I-0vE6eMG2?k^ttIL>3`oA)DVcZ|L(i}5)QD^c8m>W7S z4PGP#Ttc=~`I`UHNo5_vj|9=8>+BP%5qQusJOYV!Q=1Wd?|0 zq*?a9Z^IU_*BS@aFL~M1(7zTP07l)=i^0XAs{b-8YM1CMFCt-?yEz5Wec z4}G*PnB`-d;RMPP5UkpyOcl#?y8<%NO?jm1$o~p3p7-gm~_UOVnFM7p8$wc(z%jJN~ zYqI<8upw+9KC}f!)R5achGLjDW+G<0*ar|H#O#~081!WfRgAKrcI4B2Ru7;DL`$iH z@*|G}C9%QvST&zRvH%`^kCg+I@dML{B0h=VuW3P{-3WIVPiLDq>wy2wVx<3H-gNYc d4gfqp7Wi=Va_^Z1Jym7_; + /** + * The Id to use for the new lambda. If not specified a secure random UUID will be generated. + */ + public readonly lambdaId!: pulumi.Output; /** * The name of the lambda. */ @@ -101,6 +105,7 @@ export class FusionAuthLambda extends pulumi.CustomResource { resourceInputs["debug"] = state ? state.debug : undefined; resourceInputs["enabled"] = state ? state.enabled : undefined; resourceInputs["engineType"] = state ? state.engineType : undefined; + resourceInputs["lambdaId"] = state ? state.lambdaId : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["type"] = state ? state.type : undefined; } else { @@ -115,6 +120,7 @@ export class FusionAuthLambda extends pulumi.CustomResource { resourceInputs["debug"] = args ? args.debug : undefined; resourceInputs["enabled"] = args ? args.enabled : undefined; resourceInputs["engineType"] = args ? args.engineType : undefined; + resourceInputs["lambdaId"] = args ? args.lambdaId : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["type"] = args ? args.type : undefined; } @@ -145,6 +151,10 @@ export interface FusionAuthLambdaState { * The JavaScript execution engine for the lambda. */ engineType?: pulumi.Input; + /** + * The Id to use for the new lambda. If not specified a secure random UUID will be generated. + */ + lambdaId?: pulumi.Input; /** * The name of the lambda. */ @@ -177,6 +187,10 @@ export interface FusionAuthLambdaArgs { * The JavaScript execution engine for the lambda. */ engineType?: pulumi.Input; + /** + * The Id to use for the new lambda. If not specified a secure random UUID will be generated. + */ + lambdaId?: pulumi.Input; /** * The name of the lambda. */ diff --git a/sdk/nodejs/getEMail.ts b/sdk/nodejs/getEMail.ts new file mode 100644 index 0000000..d8bc5e9 --- /dev/null +++ b/sdk/nodejs/getEMail.ts @@ -0,0 +1,128 @@ +// *** 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"; + +/** + * ## # Email Resource + * + * This data source is used to fetch information about a specific Email Template. + * + * [Emails API](https://fusionauth.io/docs/v1/tech/apis/emails) + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as fusionauth from "@pulumi/fusionauth"; + * + * const defaultBreachedPassword = fusionauth.getEMail({ + * name: "[FusionAuth Default] Breached Password Notification", + * }); + * ``` + */ +export function getEMail(args: GetEMailArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("fusionauth:index/getEMail:getEMail", { + "fromEmail": args.fromEmail, + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getEMail. + */ +export interface GetEMailArgs { + /** + * The email address that this email will be sent from. + */ + fromEmail?: string; + /** + * The name of the Email Template. + */ + name: string; +} + +/** + * A collection of values returned by getEMail. + */ +export interface GetEMailResult { + /** + * The default From Name used when sending emails. + */ + readonly defaultFromName: string; + /** + * The default HTML Email Template. + */ + readonly defaultHtmlTemplate: string; + /** + * The default Subject used when sending emails. + */ + readonly defaultSubject: string; + /** + * The default Text Email Template. + */ + readonly defaultTextTemplate: string; + /** + * The email address that this email will be sent from. + */ + readonly fromEmail?: string; + /** + * The Id of the Email Template. + */ + readonly id: string; + /** + * The From Name used when sending emails to users who speak other languages. + */ + readonly localizedFromNames: {[key: string]: any}; + /** + * The HTML Email Template used when sending emails to users who speak other languages. + */ + readonly localizedHtmlTemplates: {[key: string]: any}; + /** + * The Subject used when sending emails to users who speak other languages. + */ + readonly localizedSubjects: {[key: string]: any}; + /** + * The Text Email Template used when sending emails to users who speak other languages. + */ + readonly localizedTextTemplates: {[key: string]: any}; + readonly name: string; +} +/** + * ## # Email Resource + * + * This data source is used to fetch information about a specific Email Template. + * + * [Emails API](https://fusionauth.io/docs/v1/tech/apis/emails) + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as fusionauth from "@pulumi/fusionauth"; + * + * const defaultBreachedPassword = fusionauth.getEMail({ + * name: "[FusionAuth Default] Breached Password Notification", + * }); + * ``` + */ +export function getEMailOutput(args: GetEMailOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getEMail(a, opts)) +} + +/** + * A collection of arguments for invoking getEMail. + */ +export interface GetEMailOutputArgs { + /** + * The email address that this email will be sent from. + */ + fromEmail?: pulumi.Input; + /** + * The name of the Email Template. + */ + name: pulumi.Input; +} diff --git a/sdk/nodejs/getFormField.ts b/sdk/nodejs/getFormField.ts new file mode 100644 index 0000000..ef94550 --- /dev/null +++ b/sdk/nodejs/getFormField.ts @@ -0,0 +1,196 @@ +// *** 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 inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * ## # Form Field Resource + * + * A FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms). + * + * [Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields) + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as fusionauth from "@pulumi/fusionauth"; + * + * const default = fusionauth.getFormField({ + * name: "Email", + * }); + * ``` + */ +export function getFormField(args?: GetFormFieldArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("fusionauth:index/getFormField:getFormField", { + "confirm": args.confirm, + "consentId": args.consentId, + "control": args.control, + "data": args.data, + "description": args.description, + "formFieldId": args.formFieldId, + "key": args.key, + "name": args.name, + "options": args.options, + "required": args.required, + "type": args.type, + "validator": args.validator, + }, opts); +} + +/** + * A collection of arguments for invoking getFormField. + */ +export interface GetFormFieldArgs { + /** + * Determines if the user input should be confirmed by requiring the value to be entered twice. + * - consentId + * - control + */ + confirm?: boolean; + consentId?: string; + control?: string; + /** + * An object that can hold any information about the Form Field that should be persisted. + * - description + * - key + */ + data?: {[key: string]: any}; + description?: string; + /** + * The unique id of the Form Field. Either `formFieldId` or `name` must be specified. + */ + formFieldId?: string; + key?: string; + /** + * The name of the Form field. Either `formFieldId` or `name` must be specified. + */ + name?: string; + /** + * A list of options that are applied to checkbox, radio, or select controls. + */ + options?: string[]; + /** + * Determines if a value is required to complete the form. + */ + required?: boolean; + /** + * The form field type. The possible values are: + */ + type?: string; + validator?: inputs.GetFormFieldValidator; +} + +/** + * A collection of values returned by getFormField. + */ +export interface GetFormFieldResult { + /** + * Determines if the user input should be confirmed by requiring the value to be entered twice. + * - consentId + * - control + */ + readonly confirm?: boolean; + readonly consentId?: string; + readonly control: string; + /** + * An object that can hold any information about the Form Field that should be persisted. + * - description + * - key + */ + readonly data?: {[key: string]: any}; + readonly description?: string; + readonly formFieldId: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly key?: string; + /** + * The unique name of the Form Field. + */ + readonly name?: string; + /** + * A list of options that are applied to checkbox, radio, or select controls. + */ + readonly options?: string[]; + /** + * Determines if a value is required to complete the form. + */ + readonly required?: boolean; + /** + * The form field type. The possible values are: + */ + readonly type?: string; + readonly validator: outputs.GetFormFieldValidator; +} +/** + * ## # Form Field Resource + * + * A FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms). + * + * [Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields) + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as fusionauth from "@pulumi/fusionauth"; + * + * const default = fusionauth.getFormField({ + * name: "Email", + * }); + * ``` + */ +export function getFormFieldOutput(args?: GetFormFieldOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getFormField(a, opts)) +} + +/** + * A collection of arguments for invoking getFormField. + */ +export interface GetFormFieldOutputArgs { + /** + * Determines if the user input should be confirmed by requiring the value to be entered twice. + * - consentId + * - control + */ + confirm?: pulumi.Input; + consentId?: pulumi.Input; + control?: pulumi.Input; + /** + * An object that can hold any information about the Form Field that should be persisted. + * - description + * - key + */ + data?: pulumi.Input<{[key: string]: any}>; + description?: pulumi.Input; + /** + * The unique id of the Form Field. Either `formFieldId` or `name` must be specified. + */ + formFieldId?: pulumi.Input; + key?: pulumi.Input; + /** + * The name of the Form field. Either `formFieldId` or `name` must be specified. + */ + name?: pulumi.Input; + /** + * A list of options that are applied to checkbox, radio, or select controls. + */ + options?: pulumi.Input[]>; + /** + * Determines if a value is required to complete the form. + */ + required?: pulumi.Input; + /** + * The form field type. The possible values are: + */ + type?: pulumi.Input; + validator?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index afdab4b..036bf60 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -190,11 +190,21 @@ export const getApplicationRole: typeof import("./getApplicationRole").getApplic export const getApplicationRoleOutput: typeof import("./getApplicationRole").getApplicationRoleOutput = null as any; utilities.lazyLoad(exports, ["getApplicationRole","getApplicationRoleOutput"], () => require("./getApplicationRole")); +export { GetEMailArgs, GetEMailResult, GetEMailOutputArgs } from "./getEMail"; +export const getEMail: typeof import("./getEMail").getEMail = null as any; +export const getEMailOutput: typeof import("./getEMail").getEMailOutput = null as any; +utilities.lazyLoad(exports, ["getEMail","getEMailOutput"], () => require("./getEMail")); + export { GetFormArgs, GetFormResult, GetFormOutputArgs } from "./getForm"; export const getForm: typeof import("./getForm").getForm = null as any; export const getFormOutput: typeof import("./getForm").getFormOutput = null as any; utilities.lazyLoad(exports, ["getForm","getFormOutput"], () => require("./getForm")); +export { GetFormFieldArgs, GetFormFieldResult, GetFormFieldOutputArgs } from "./getFormField"; +export const getFormField: typeof import("./getFormField").getFormField = null as any; +export const getFormFieldOutput: typeof import("./getFormField").getFormFieldOutput = null as any; +utilities.lazyLoad(exports, ["getFormField","getFormFieldOutput"], () => require("./getFormField")); + export { GetIdpArgs, GetIdpResult, GetIdpOutputArgs } from "./getIdp"; export const getIdp: typeof import("./getIdp").getIdp = null as any; export const getIdpOutput: typeof import("./getIdp").getIdpOutput = null as any; diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index a007768..545d0f0 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -52,7 +52,9 @@ "fusionAuthWebhook.ts", "getApplication.ts", "getApplicationRole.ts", + "getEMail.ts", "getForm.ts", + "getFormField.ts", "getIdp.ts", "getLambda.ts", "getTenant.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index b435536..2e8ae09 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -198,10 +198,15 @@ export interface FusionAuthApplicationOauthConfiguration { * An array of URLs that are the authorized redirect URLs for FusionAuth OAuth. */ authorizedRedirectUrls?: pulumi.Input[]>; + /** + * Determines whether wildcard expressions will be allowed in the authorizedRedirectUrls and authorized_origin_urls. + */ + authorizedUrlValidationPolicy?: pulumi.Input; /** * Determines the client authentication requirements for the OAuth 2.0 Token endpoint. */ clientAuthenticationPolicy?: pulumi.Input; + clientId?: pulumi.Input; /** * The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. */ @@ -1477,13 +1482,13 @@ export interface FusionAuthTenantFormConfiguration { export interface FusionAuthTenantJwtConfiguration { /** - * The unique id of the signing key used to sign the access token. + * The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. */ - accessTokenKeyId: pulumi.Input; + accessTokenKeyId?: pulumi.Input; /** - * The unique id of the signing key used to sign the Id token. + * The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. */ - idTokenKeyId: pulumi.Input; + idTokenKeyId?: pulumi.Input; /** * The refresh token expiration policy. */ @@ -1903,6 +1908,28 @@ export interface FusionAuthWebhookEventsEnabled { userUpdateComplete?: pulumi.Input; } +export interface GetFormFieldValidator { + /** + * Determines if user input should be validated. + */ + enabled?: boolean; + /** + * A regular expression used to validate user input. Must be a valid regular expression pattern. + */ + expression?: string; +} + +export interface GetFormFieldValidatorArgs { + /** + * Determines if user input should be validated. + */ + enabled?: pulumi.Input; + /** + * A regular expression used to validate user input. Must be a valid regular expression pattern. + */ + expression?: pulumi.Input; +} + export interface GetFormStep { fields: string[]; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index c2f2c11..71baa7e 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -198,10 +198,15 @@ export interface FusionAuthApplicationOauthConfiguration { * An array of URLs that are the authorized redirect URLs for FusionAuth OAuth. */ authorizedRedirectUrls?: string[]; + /** + * Determines whether wildcard expressions will be allowed in the authorizedRedirectUrls and authorized_origin_urls. + */ + authorizedUrlValidationPolicy?: string; /** * Determines the client authentication requirements for the OAuth 2.0 Token endpoint. */ clientAuthenticationPolicy?: string; + clientId: string; /** * The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. */ @@ -1477,13 +1482,13 @@ export interface FusionAuthTenantFormConfiguration { export interface FusionAuthTenantJwtConfiguration { /** - * The unique id of the signing key used to sign the access token. + * The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. */ - accessTokenKeyId: string; + accessTokenKeyId?: string; /** - * The unique id of the signing key used to sign the Id token. + * The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. */ - idTokenKeyId: string; + idTokenKeyId?: string; /** * The refresh token expiration policy. */ @@ -1903,6 +1908,17 @@ export interface FusionAuthWebhookEventsEnabled { userUpdateComplete?: boolean; } +export interface GetFormFieldValidator { + /** + * Determines if user input should be validated. + */ + enabled?: boolean; + /** + * A regular expression used to validate user input. Must be a valid regular expression pattern. + */ + expression?: string; +} + export interface GetFormStep { fields: string[]; } diff --git a/sdk/python/theogravity_pulumi-fusionauth/__init__.py b/sdk/python/theogravity_pulumi-fusionauth/__init__.py index faf051b..956f199 100644 --- a/sdk/python/theogravity_pulumi-fusionauth/__init__.py +++ b/sdk/python/theogravity_pulumi-fusionauth/__init__.py @@ -42,7 +42,9 @@ from .fusion_auth_webhook import * from .get_application import * from .get_application_role import * +from .get_e_mail import * from .get_form import * +from .get_form_field import * from .get_idp import * from .get_lambda import * from .get_tenant import * diff --git a/sdk/python/theogravity_pulumi-fusionauth/_inputs.py b/sdk/python/theogravity_pulumi-fusionauth/_inputs.py index e302a22..c3e7968 100644 --- a/sdk/python/theogravity_pulumi-fusionauth/_inputs.py +++ b/sdk/python/theogravity_pulumi-fusionauth/_inputs.py @@ -104,6 +104,7 @@ 'FusionAuthUserActionOptionArgs', 'FusionAuthUserTwoFactorMethodArgs', 'FusionAuthWebhookEventsEnabledArgs', + 'GetFormFieldValidatorArgs', 'GetFormStepArgs', ] @@ -813,7 +814,9 @@ class FusionAuthApplicationOauthConfigurationArgs: def __init__(__self__, *, authorized_origin_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, authorized_redirect_urls: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + authorized_url_validation_policy: Optional[pulumi.Input[str]] = None, client_authentication_policy: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, client_secret: Optional[pulumi.Input[str]] = None, debug: Optional[pulumi.Input[bool]] = None, device_verification_url: Optional[pulumi.Input[str]] = None, @@ -827,6 +830,7 @@ def __init__(__self__, *, """ :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_origin_urls: An array of URLs that are the authorized origins for FusionAuth OAuth. :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_redirect_urls: An array of URLs that are the authorized redirect URLs for FusionAuth OAuth. + :param pulumi.Input[str] authorized_url_validation_policy: Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. :param pulumi.Input[str] client_authentication_policy: Determines the client authentication requirements for the OAuth 2.0 Token endpoint. :param pulumi.Input[str] client_secret: The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. :param pulumi.Input[bool] debug: Whether or not FusionAuth will log SAML debug messages to the event log. This is useful for debugging purposes. @@ -843,8 +847,12 @@ def __init__(__self__, *, pulumi.set(__self__, "authorized_origin_urls", authorized_origin_urls) if authorized_redirect_urls is not None: pulumi.set(__self__, "authorized_redirect_urls", authorized_redirect_urls) + if authorized_url_validation_policy is not None: + pulumi.set(__self__, "authorized_url_validation_policy", authorized_url_validation_policy) if client_authentication_policy is not None: pulumi.set(__self__, "client_authentication_policy", client_authentication_policy) + if client_id is not None: + pulumi.set(__self__, "client_id", client_id) if client_secret is not None: pulumi.set(__self__, "client_secret", client_secret) if debug is not None: @@ -893,6 +901,18 @@ def authorized_redirect_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Inpu def authorized_redirect_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "authorized_redirect_urls", value) + @property + @pulumi.getter(name="authorizedUrlValidationPolicy") + def authorized_url_validation_policy(self) -> Optional[pulumi.Input[str]]: + """ + Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. + """ + return pulumi.get(self, "authorized_url_validation_policy") + + @authorized_url_validation_policy.setter + def authorized_url_validation_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "authorized_url_validation_policy", value) + @property @pulumi.getter(name="clientAuthenticationPolicy") def client_authentication_policy(self) -> Optional[pulumi.Input[str]]: @@ -905,6 +925,15 @@ def client_authentication_policy(self) -> Optional[pulumi.Input[str]]: def client_authentication_policy(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "client_authentication_policy", value) + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[pulumi.Input[str]]: + 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]]: @@ -5824,28 +5853,30 @@ def admin_user_form_id(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class FusionAuthTenantJwtConfigurationArgs: def __init__(__self__, *, - access_token_key_id: pulumi.Input[str], - id_token_key_id: pulumi.Input[str], refresh_token_time_to_live_in_minutes: pulumi.Input[int], time_to_live_in_seconds: pulumi.Input[int], + access_token_key_id: Optional[pulumi.Input[str]] = None, + id_token_key_id: Optional[pulumi.Input[str]] = None, refresh_token_expiration_policy: Optional[pulumi.Input[str]] = None, refresh_token_revocation_policy_on_login_prevented: Optional[pulumi.Input[bool]] = None, refresh_token_revocation_policy_on_password_change: Optional[pulumi.Input[bool]] = None, refresh_token_usage_policy: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] access_token_key_id: The unique id of the signing key used to sign the access token. - :param pulumi.Input[str] id_token_key_id: The unique id of the signing key used to sign the Id token. :param pulumi.Input[int] refresh_token_time_to_live_in_minutes: The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0. :param pulumi.Input[int] time_to_live_in_seconds: The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0. + :param pulumi.Input[str] access_token_key_id: The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. + :param pulumi.Input[str] id_token_key_id: The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. :param pulumi.Input[str] refresh_token_expiration_policy: The refresh token expiration policy. :param pulumi.Input[bool] refresh_token_revocation_policy_on_login_prevented: When enabled, the refresh token will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login. :param pulumi.Input[bool] refresh_token_revocation_policy_on_password_change: When enabled, the refresh token will be revoked when a user changes their password." :param pulumi.Input[str] refresh_token_usage_policy: The refresh token usage policy. """ - pulumi.set(__self__, "access_token_key_id", access_token_key_id) - pulumi.set(__self__, "id_token_key_id", id_token_key_id) pulumi.set(__self__, "refresh_token_time_to_live_in_minutes", refresh_token_time_to_live_in_minutes) pulumi.set(__self__, "time_to_live_in_seconds", time_to_live_in_seconds) + if access_token_key_id is not None: + pulumi.set(__self__, "access_token_key_id", access_token_key_id) + if id_token_key_id is not None: + pulumi.set(__self__, "id_token_key_id", id_token_key_id) if refresh_token_expiration_policy is not None: pulumi.set(__self__, "refresh_token_expiration_policy", refresh_token_expiration_policy) if refresh_token_revocation_policy_on_login_prevented is not None: @@ -5855,30 +5886,6 @@ def __init__(__self__, *, if refresh_token_usage_policy is not None: pulumi.set(__self__, "refresh_token_usage_policy", refresh_token_usage_policy) - @property - @pulumi.getter(name="accessTokenKeyId") - def access_token_key_id(self) -> pulumi.Input[str]: - """ - The unique id of the signing key used to sign the access token. - """ - return pulumi.get(self, "access_token_key_id") - - @access_token_key_id.setter - def access_token_key_id(self, value: pulumi.Input[str]): - pulumi.set(self, "access_token_key_id", value) - - @property - @pulumi.getter(name="idTokenKeyId") - def id_token_key_id(self) -> pulumi.Input[str]: - """ - The unique id of the signing key used to sign the Id token. - """ - return pulumi.get(self, "id_token_key_id") - - @id_token_key_id.setter - def id_token_key_id(self, value: pulumi.Input[str]): - pulumi.set(self, "id_token_key_id", value) - @property @pulumi.getter(name="refreshTokenTimeToLiveInMinutes") def refresh_token_time_to_live_in_minutes(self) -> pulumi.Input[int]: @@ -5903,6 +5910,30 @@ def time_to_live_in_seconds(self) -> pulumi.Input[int]: def time_to_live_in_seconds(self, value: pulumi.Input[int]): pulumi.set(self, "time_to_live_in_seconds", value) + @property + @pulumi.getter(name="accessTokenKeyId") + def access_token_key_id(self) -> Optional[pulumi.Input[str]]: + """ + The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. + """ + return pulumi.get(self, "access_token_key_id") + + @access_token_key_id.setter + def access_token_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_token_key_id", value) + + @property + @pulumi.getter(name="idTokenKeyId") + def id_token_key_id(self) -> Optional[pulumi.Input[str]]: + """ + The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. + """ + return pulumi.get(self, "id_token_key_id") + + @id_token_key_id.setter + def id_token_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id_token_key_id", value) + @property @pulumi.getter(name="refreshTokenExpirationPolicy") def refresh_token_expiration_policy(self) -> Optional[pulumi.Input[str]]: @@ -7489,6 +7520,45 @@ def user_update_complete(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "user_update_complete", value) +@pulumi.input_type +class GetFormFieldValidatorArgs: + def __init__(__self__, *, + enabled: Optional[bool] = None, + expression: Optional[str] = None): + """ + :param bool enabled: Determines if user input should be validated. + :param str expression: A regular expression used to validate user input. Must be a valid regular expression pattern. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Determines if user input should be validated. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[bool]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + A regular expression used to validate user input. Must be a valid regular expression pattern. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[str]): + pulumi.set(self, "expression", value) + + @pulumi.input_type class GetFormStepArgs: def __init__(__self__, *, diff --git a/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_application.py b/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_application.py index ad5f835..2f2e8b8 100644 --- a/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_application.py +++ b/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_application.py @@ -692,6 +692,7 @@ def __init__(__self__, ), oauth_configuration=fusionauth.FusionAuthApplicationOauthConfigurationArgs( authorized_origin_urls=["http://www.example.com/oauth-callback"], + authorized_url_validation_policy="ExactMatch", enabled_grants=[ "authorization_code", "implicit", @@ -792,6 +793,7 @@ def __init__(__self__, ), oauth_configuration=fusionauth.FusionAuthApplicationOauthConfigurationArgs( authorized_origin_urls=["http://www.example.com/oauth-callback"], + authorized_url_validation_policy="ExactMatch", enabled_grants=[ "authorization_code", "implicit", diff --git a/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_lambda.py b/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_lambda.py index c94ee74..cffc015 100644 --- a/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_lambda.py +++ b/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_lambda.py @@ -19,6 +19,7 @@ def __init__(__self__, *, debug: Optional[pulumi.Input[bool]] = None, enabled: Optional[pulumi.Input[bool]] = None, engine_type: Optional[pulumi.Input[str]] = None, + lambda_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a FusionAuthLambda resource. @@ -27,6 +28,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] debug: Whether or not debug event logging is enabled for this Lambda. :param pulumi.Input[bool] enabled: Whether or not this Lambda is enabled. :param pulumi.Input[str] engine_type: The JavaScript execution engine for the lambda. + :param pulumi.Input[str] lambda_id: The Id to use for the new lambda. If not specified a secure random UUID will be generated. :param pulumi.Input[str] name: The name of the lambda. """ pulumi.set(__self__, "body", body) @@ -40,6 +42,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enabled", enabled) if engine_type is not None: pulumi.set(__self__, "engine_type", engine_type) + if lambda_id is not None: + pulumi.set(__self__, "lambda_id", lambda_id) if name is not None: pulumi.set(__self__, "name", name) @@ -103,6 +107,18 @@ def engine_type(self) -> Optional[pulumi.Input[str]]: def engine_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "engine_type", value) + @property + @pulumi.getter(name="lambdaId") + def lambda_id(self) -> Optional[pulumi.Input[str]]: + """ + The Id to use for the new lambda. If not specified a secure random UUID will be generated. + """ + return pulumi.get(self, "lambda_id") + + @lambda_id.setter + def lambda_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lambda_id", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -123,6 +139,7 @@ def __init__(__self__, *, debug: Optional[pulumi.Input[bool]] = None, enabled: Optional[pulumi.Input[bool]] = None, engine_type: Optional[pulumi.Input[str]] = None, + lambda_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ @@ -131,6 +148,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] debug: Whether or not debug event logging is enabled for this Lambda. :param pulumi.Input[bool] enabled: Whether or not this Lambda is enabled. :param pulumi.Input[str] engine_type: The JavaScript execution engine for the lambda. + :param pulumi.Input[str] lambda_id: The Id to use for the new lambda. If not specified a secure random UUID will be generated. :param pulumi.Input[str] name: The name of the lambda. :param pulumi.Input[str] type: The lambda type. The possible values are: """ @@ -145,6 +163,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enabled", enabled) if engine_type is not None: pulumi.set(__self__, "engine_type", engine_type) + if lambda_id is not None: + pulumi.set(__self__, "lambda_id", lambda_id) if name is not None: pulumi.set(__self__, "name", name) if type is not None: @@ -198,6 +218,18 @@ def engine_type(self) -> Optional[pulumi.Input[str]]: def engine_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "engine_type", value) + @property + @pulumi.getter(name="lambdaId") + def lambda_id(self) -> Optional[pulumi.Input[str]]: + """ + The Id to use for the new lambda. If not specified a secure random UUID will be generated. + """ + return pulumi.get(self, "lambda_id") + + @lambda_id.setter + def lambda_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lambda_id", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -232,6 +264,7 @@ def __init__(__self__, debug: Optional[pulumi.Input[bool]] = None, enabled: Optional[pulumi.Input[bool]] = None, engine_type: Optional[pulumi.Input[str]] = None, + lambda_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, __props__=None): @@ -265,6 +298,7 @@ def __init__(__self__, :param pulumi.Input[bool] debug: Whether or not debug event logging is enabled for this Lambda. :param pulumi.Input[bool] enabled: Whether or not this Lambda is enabled. :param pulumi.Input[str] engine_type: The JavaScript execution engine for the lambda. + :param pulumi.Input[str] lambda_id: The Id to use for the new lambda. If not specified a secure random UUID will be generated. :param pulumi.Input[str] name: The name of the lambda. :param pulumi.Input[str] type: The lambda type. The possible values are: """ @@ -317,6 +351,7 @@ def _internal_init(__self__, debug: Optional[pulumi.Input[bool]] = None, enabled: Optional[pulumi.Input[bool]] = None, engine_type: Optional[pulumi.Input[str]] = None, + lambda_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, __props__=None): @@ -337,6 +372,7 @@ def _internal_init(__self__, pulumi.log.warn("""enabled is deprecated: Not currently used and may be removed in a future version.""") __props__.__dict__["enabled"] = enabled __props__.__dict__["engine_type"] = engine_type + __props__.__dict__["lambda_id"] = lambda_id __props__.__dict__["name"] = name if type is None and not opts.urn: raise TypeError("Missing required property 'type'") @@ -355,6 +391,7 @@ def get(resource_name: str, debug: Optional[pulumi.Input[bool]] = None, enabled: Optional[pulumi.Input[bool]] = None, engine_type: Optional[pulumi.Input[str]] = None, + lambda_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None) -> 'FusionAuthLambda': """ @@ -368,6 +405,7 @@ def get(resource_name: str, :param pulumi.Input[bool] debug: Whether or not debug event logging is enabled for this Lambda. :param pulumi.Input[bool] enabled: Whether or not this Lambda is enabled. :param pulumi.Input[str] engine_type: The JavaScript execution engine for the lambda. + :param pulumi.Input[str] lambda_id: The Id to use for the new lambda. If not specified a secure random UUID will be generated. :param pulumi.Input[str] name: The name of the lambda. :param pulumi.Input[str] type: The lambda type. The possible values are: """ @@ -379,6 +417,7 @@ def get(resource_name: str, __props__.__dict__["debug"] = debug __props__.__dict__["enabled"] = enabled __props__.__dict__["engine_type"] = engine_type + __props__.__dict__["lambda_id"] = lambda_id __props__.__dict__["name"] = name __props__.__dict__["type"] = type return FusionAuthLambda(resource_name, opts=opts, __props__=__props__) @@ -415,6 +454,14 @@ def engine_type(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "engine_type") + @property + @pulumi.getter(name="lambdaId") + def lambda_id(self) -> pulumi.Output[str]: + """ + The Id to use for the new lambda. If not specified a secure random UUID will be generated. + """ + return pulumi.get(self, "lambda_id") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: diff --git a/sdk/python/theogravity_pulumi-fusionauth/get_e_mail.py b/sdk/python/theogravity_pulumi-fusionauth/get_e_mail.py new file mode 100644 index 0000000..c779ee7 --- /dev/null +++ b/sdk/python/theogravity_pulumi-fusionauth/get_e_mail.py @@ -0,0 +1,231 @@ +# 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, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetEMailResult', + 'AwaitableGetEMailResult', + 'get_e_mail', + 'get_e_mail_output', +] + +@pulumi.output_type +class GetEMailResult: + """ + A collection of values returned by getEMail. + """ + def __init__(__self__, default_from_name=None, default_html_template=None, default_subject=None, default_text_template=None, from_email=None, id=None, localized_from_names=None, localized_html_templates=None, localized_subjects=None, localized_text_templates=None, name=None): + if default_from_name and not isinstance(default_from_name, str): + raise TypeError("Expected argument 'default_from_name' to be a str") + pulumi.set(__self__, "default_from_name", default_from_name) + if default_html_template and not isinstance(default_html_template, str): + raise TypeError("Expected argument 'default_html_template' to be a str") + pulumi.set(__self__, "default_html_template", default_html_template) + if default_subject and not isinstance(default_subject, str): + raise TypeError("Expected argument 'default_subject' to be a str") + pulumi.set(__self__, "default_subject", default_subject) + if default_text_template and not isinstance(default_text_template, str): + raise TypeError("Expected argument 'default_text_template' to be a str") + pulumi.set(__self__, "default_text_template", default_text_template) + if from_email and not isinstance(from_email, str): + raise TypeError("Expected argument 'from_email' to be a str") + pulumi.set(__self__, "from_email", from_email) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if localized_from_names and not isinstance(localized_from_names, dict): + raise TypeError("Expected argument 'localized_from_names' to be a dict") + pulumi.set(__self__, "localized_from_names", localized_from_names) + if localized_html_templates and not isinstance(localized_html_templates, dict): + raise TypeError("Expected argument 'localized_html_templates' to be a dict") + pulumi.set(__self__, "localized_html_templates", localized_html_templates) + if localized_subjects and not isinstance(localized_subjects, dict): + raise TypeError("Expected argument 'localized_subjects' to be a dict") + pulumi.set(__self__, "localized_subjects", localized_subjects) + if localized_text_templates and not isinstance(localized_text_templates, dict): + raise TypeError("Expected argument 'localized_text_templates' to be a dict") + pulumi.set(__self__, "localized_text_templates", localized_text_templates) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="defaultFromName") + def default_from_name(self) -> str: + """ + The default From Name used when sending emails. + """ + return pulumi.get(self, "default_from_name") + + @property + @pulumi.getter(name="defaultHtmlTemplate") + def default_html_template(self) -> str: + """ + The default HTML Email Template. + """ + return pulumi.get(self, "default_html_template") + + @property + @pulumi.getter(name="defaultSubject") + def default_subject(self) -> str: + """ + The default Subject used when sending emails. + """ + return pulumi.get(self, "default_subject") + + @property + @pulumi.getter(name="defaultTextTemplate") + def default_text_template(self) -> str: + """ + The default Text Email Template. + """ + return pulumi.get(self, "default_text_template") + + @property + @pulumi.getter(name="fromEmail") + def from_email(self) -> Optional[str]: + """ + The email address that this email will be sent from. + """ + return pulumi.get(self, "from_email") + + @property + @pulumi.getter + def id(self) -> str: + """ + The Id of the Email Template. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="localizedFromNames") + def localized_from_names(self) -> Mapping[str, Any]: + """ + The From Name used when sending emails to users who speak other languages. + """ + return pulumi.get(self, "localized_from_names") + + @property + @pulumi.getter(name="localizedHtmlTemplates") + def localized_html_templates(self) -> Mapping[str, Any]: + """ + The HTML Email Template used when sending emails to users who speak other languages. + """ + return pulumi.get(self, "localized_html_templates") + + @property + @pulumi.getter(name="localizedSubjects") + def localized_subjects(self) -> Mapping[str, Any]: + """ + The Subject used when sending emails to users who speak other languages. + """ + return pulumi.get(self, "localized_subjects") + + @property + @pulumi.getter(name="localizedTextTemplates") + def localized_text_templates(self) -> Mapping[str, Any]: + """ + The Text Email Template used when sending emails to users who speak other languages. + """ + return pulumi.get(self, "localized_text_templates") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + +class AwaitableGetEMailResult(GetEMailResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetEMailResult( + default_from_name=self.default_from_name, + default_html_template=self.default_html_template, + default_subject=self.default_subject, + default_text_template=self.default_text_template, + from_email=self.from_email, + id=self.id, + localized_from_names=self.localized_from_names, + localized_html_templates=self.localized_html_templates, + localized_subjects=self.localized_subjects, + localized_text_templates=self.localized_text_templates, + name=self.name) + + +def get_e_mail(from_email: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEMailResult: + """ + ## # Email Resource + + This data source is used to fetch information about a specific Email Template. + + [Emails API](https://fusionauth.io/docs/v1/tech/apis/emails) + + ## Example Usage + + ```python + import pulumi + import pulumi_fusionauth as fusionauth + + default_breached_password = fusionauth.get_e_mail(name="[FusionAuth Default] Breached Password Notification") + ``` + + + :param str from_email: The email address that this email will be sent from. + :param str name: The name of the Email Template. + """ + __args__ = dict() + __args__['fromEmail'] = from_email + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('fusionauth:index/getEMail:getEMail', __args__, opts=opts, typ=GetEMailResult).value + + return AwaitableGetEMailResult( + default_from_name=__ret__.default_from_name, + default_html_template=__ret__.default_html_template, + default_subject=__ret__.default_subject, + default_text_template=__ret__.default_text_template, + from_email=__ret__.from_email, + id=__ret__.id, + localized_from_names=__ret__.localized_from_names, + localized_html_templates=__ret__.localized_html_templates, + localized_subjects=__ret__.localized_subjects, + localized_text_templates=__ret__.localized_text_templates, + name=__ret__.name) + + +@_utilities.lift_output_func(get_e_mail) +def get_e_mail_output(from_email: Optional[pulumi.Input[Optional[str]]] = None, + name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEMailResult]: + """ + ## # Email Resource + + This data source is used to fetch information about a specific Email Template. + + [Emails API](https://fusionauth.io/docs/v1/tech/apis/emails) + + ## Example Usage + + ```python + import pulumi + import pulumi_fusionauth as fusionauth + + default_breached_password = fusionauth.get_e_mail(name="[FusionAuth Default] Breached Password Notification") + ``` + + + :param str from_email: The email address that this email will be sent from. + :param str name: The name of the Email Template. + """ + ... diff --git a/sdk/python/theogravity_pulumi-fusionauth/get_form_field.py b/sdk/python/theogravity_pulumi-fusionauth/get_form_field.py new file mode 100644 index 0000000..f9c3913 --- /dev/null +++ b/sdk/python/theogravity_pulumi-fusionauth/get_form_field.py @@ -0,0 +1,296 @@ +# 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, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetFormFieldResult', + 'AwaitableGetFormFieldResult', + 'get_form_field', + 'get_form_field_output', +] + +@pulumi.output_type +class GetFormFieldResult: + """ + A collection of values returned by getFormField. + """ + def __init__(__self__, confirm=None, consent_id=None, control=None, data=None, description=None, form_field_id=None, id=None, key=None, name=None, options=None, required=None, type=None, validator=None): + if confirm and not isinstance(confirm, bool): + raise TypeError("Expected argument 'confirm' to be a bool") + pulumi.set(__self__, "confirm", confirm) + if consent_id and not isinstance(consent_id, str): + raise TypeError("Expected argument 'consent_id' to be a str") + pulumi.set(__self__, "consent_id", consent_id) + if control and not isinstance(control, str): + raise TypeError("Expected argument 'control' to be a str") + pulumi.set(__self__, "control", control) + if data and not isinstance(data, dict): + raise TypeError("Expected argument 'data' to be a dict") + pulumi.set(__self__, "data", data) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if form_field_id and not isinstance(form_field_id, str): + raise TypeError("Expected argument 'form_field_id' to be a str") + pulumi.set(__self__, "form_field_id", form_field_id) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if key and not isinstance(key, str): + raise TypeError("Expected argument 'key' to be a str") + pulumi.set(__self__, "key", key) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if options and not isinstance(options, list): + raise TypeError("Expected argument 'options' to be a list") + pulumi.set(__self__, "options", options) + if required and not isinstance(required, bool): + raise TypeError("Expected argument 'required' to be a bool") + pulumi.set(__self__, "required", required) + if type and not isinstance(type, str): + raise TypeError("Expected argument 'type' to be a str") + pulumi.set(__self__, "type", type) + if validator and not isinstance(validator, dict): + raise TypeError("Expected argument 'validator' to be a dict") + pulumi.set(__self__, "validator", validator) + + @property + @pulumi.getter + def confirm(self) -> Optional[bool]: + """ + Determines if the user input should be confirmed by requiring the value to be entered twice. + - consent_id + - control + """ + return pulumi.get(self, "confirm") + + @property + @pulumi.getter(name="consentId") + def consent_id(self) -> Optional[str]: + return pulumi.get(self, "consent_id") + + @property + @pulumi.getter + def control(self) -> str: + return pulumi.get(self, "control") + + @property + @pulumi.getter + def data(self) -> Optional[Mapping[str, Any]]: + """ + An object that can hold any information about the Form Field that should be persisted. + - description + - key + """ + return pulumi.get(self, "data") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="formFieldId") + def form_field_id(self) -> str: + return pulumi.get(self, "form_field_id") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def key(self) -> Optional[str]: + return pulumi.get(self, "key") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The unique name of the Form Field. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def options(self) -> Optional[Sequence[str]]: + """ + A list of options that are applied to checkbox, radio, or select controls. + """ + return pulumi.get(self, "options") + + @property + @pulumi.getter + def required(self) -> Optional[bool]: + """ + Determines if a value is required to complete the form. + """ + return pulumi.get(self, "required") + + @property + @pulumi.getter + def type(self) -> Optional[str]: + """ + The form field type. The possible values are: + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def validator(self) -> 'outputs.GetFormFieldValidatorResult': + return pulumi.get(self, "validator") + + +class AwaitableGetFormFieldResult(GetFormFieldResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetFormFieldResult( + confirm=self.confirm, + consent_id=self.consent_id, + control=self.control, + data=self.data, + description=self.description, + form_field_id=self.form_field_id, + id=self.id, + key=self.key, + name=self.name, + options=self.options, + required=self.required, + type=self.type, + validator=self.validator) + + +def get_form_field(confirm: Optional[bool] = None, + consent_id: Optional[str] = None, + control: Optional[str] = None, + data: Optional[Mapping[str, Any]] = None, + description: Optional[str] = None, + form_field_id: Optional[str] = None, + key: Optional[str] = None, + name: Optional[str] = None, + options: Optional[Sequence[str]] = None, + required: Optional[bool] = None, + type: Optional[str] = None, + validator: Optional[pulumi.InputType['GetFormFieldValidatorArgs']] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetFormFieldResult: + """ + ## # Form Field Resource + + A FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms). + + [Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields) + + ## Example Usage + + ```python + import pulumi + import pulumi_fusionauth as fusionauth + + default = fusionauth.get_form_field(name="Email") + ``` + + + :param bool confirm: Determines if the user input should be confirmed by requiring the value to be entered twice. + - consent_id + - control + :param Mapping[str, Any] data: An object that can hold any information about the Form Field that should be persisted. + - description + - key + :param str form_field_id: The unique id of the Form Field. Either `form_field_id` or `name` must be specified. + :param str name: The name of the Form field. Either `form_field_id` or `name` must be specified. + :param Sequence[str] options: A list of options that are applied to checkbox, radio, or select controls. + :param bool required: Determines if a value is required to complete the form. + :param str type: The form field type. The possible values are: + """ + __args__ = dict() + __args__['confirm'] = confirm + __args__['consentId'] = consent_id + __args__['control'] = control + __args__['data'] = data + __args__['description'] = description + __args__['formFieldId'] = form_field_id + __args__['key'] = key + __args__['name'] = name + __args__['options'] = options + __args__['required'] = required + __args__['type'] = type + __args__['validator'] = validator + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('fusionauth:index/getFormField:getFormField', __args__, opts=opts, typ=GetFormFieldResult).value + + return AwaitableGetFormFieldResult( + confirm=__ret__.confirm, + consent_id=__ret__.consent_id, + control=__ret__.control, + data=__ret__.data, + description=__ret__.description, + form_field_id=__ret__.form_field_id, + id=__ret__.id, + key=__ret__.key, + name=__ret__.name, + options=__ret__.options, + required=__ret__.required, + type=__ret__.type, + validator=__ret__.validator) + + +@_utilities.lift_output_func(get_form_field) +def get_form_field_output(confirm: Optional[pulumi.Input[Optional[bool]]] = None, + consent_id: Optional[pulumi.Input[Optional[str]]] = None, + control: Optional[pulumi.Input[Optional[str]]] = None, + data: Optional[pulumi.Input[Optional[Mapping[str, Any]]]] = None, + description: Optional[pulumi.Input[Optional[str]]] = None, + form_field_id: Optional[pulumi.Input[Optional[str]]] = None, + key: Optional[pulumi.Input[Optional[str]]] = None, + name: Optional[pulumi.Input[Optional[str]]] = None, + options: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, + required: Optional[pulumi.Input[Optional[bool]]] = None, + type: Optional[pulumi.Input[Optional[str]]] = None, + validator: Optional[pulumi.Input[Optional[pulumi.InputType['GetFormFieldValidatorArgs']]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFormFieldResult]: + """ + ## # Form Field Resource + + A FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms). + + [Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields) + + ## Example Usage + + ```python + import pulumi + import pulumi_fusionauth as fusionauth + + default = fusionauth.get_form_field(name="Email") + ``` + + + :param bool confirm: Determines if the user input should be confirmed by requiring the value to be entered twice. + - consent_id + - control + :param Mapping[str, Any] data: An object that can hold any information about the Form Field that should be persisted. + - description + - key + :param str form_field_id: The unique id of the Form Field. Either `form_field_id` or `name` must be specified. + :param str name: The name of the Form field. Either `form_field_id` or `name` must be specified. + :param Sequence[str] options: A list of options that are applied to checkbox, radio, or select controls. + :param bool required: Determines if a value is required to complete the form. + :param str type: The form field type. The possible values are: + """ + ... diff --git a/sdk/python/theogravity_pulumi-fusionauth/outputs.py b/sdk/python/theogravity_pulumi-fusionauth/outputs.py index a06108b..5104198 100644 --- a/sdk/python/theogravity_pulumi-fusionauth/outputs.py +++ b/sdk/python/theogravity_pulumi-fusionauth/outputs.py @@ -105,6 +105,7 @@ 'FusionAuthUserActionOption', 'FusionAuthUserTwoFactorMethod', 'FusionAuthWebhookEventsEnabled', + 'GetFormFieldValidatorResult', 'GetFormStepResult', ] @@ -857,8 +858,12 @@ def __key_warning(key: str): suggest = "authorized_origin_urls" elif key == "authorizedRedirectUrls": suggest = "authorized_redirect_urls" + elif key == "authorizedUrlValidationPolicy": + suggest = "authorized_url_validation_policy" elif key == "clientAuthenticationPolicy": suggest = "client_authentication_policy" + elif key == "clientId": + suggest = "client_id" elif key == "clientSecret": suggest = "client_secret" elif key == "deviceVerificationUrl": @@ -892,7 +897,9 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, authorized_origin_urls: Optional[Sequence[str]] = None, authorized_redirect_urls: Optional[Sequence[str]] = None, + authorized_url_validation_policy: Optional[str] = None, client_authentication_policy: Optional[str] = None, + client_id: Optional[str] = None, client_secret: Optional[str] = None, debug: Optional[bool] = None, device_verification_url: Optional[str] = None, @@ -906,6 +913,7 @@ def __init__(__self__, *, """ :param Sequence[str] authorized_origin_urls: An array of URLs that are the authorized origins for FusionAuth OAuth. :param Sequence[str] authorized_redirect_urls: An array of URLs that are the authorized redirect URLs for FusionAuth OAuth. + :param str authorized_url_validation_policy: Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. :param str client_authentication_policy: Determines the client authentication requirements for the OAuth 2.0 Token endpoint. :param str client_secret: The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored. :param bool debug: Whether or not FusionAuth will log SAML debug messages to the event log. This is useful for debugging purposes. @@ -922,8 +930,12 @@ def __init__(__self__, *, pulumi.set(__self__, "authorized_origin_urls", authorized_origin_urls) if authorized_redirect_urls is not None: pulumi.set(__self__, "authorized_redirect_urls", authorized_redirect_urls) + if authorized_url_validation_policy is not None: + pulumi.set(__self__, "authorized_url_validation_policy", authorized_url_validation_policy) if client_authentication_policy is not None: pulumi.set(__self__, "client_authentication_policy", client_authentication_policy) + if client_id is not None: + pulumi.set(__self__, "client_id", client_id) if client_secret is not None: pulumi.set(__self__, "client_secret", client_secret) if debug is not None: @@ -961,6 +973,14 @@ def authorized_redirect_urls(self) -> Optional[Sequence[str]]: """ return pulumi.get(self, "authorized_redirect_urls") + @property + @pulumi.getter(name="authorizedUrlValidationPolicy") + def authorized_url_validation_policy(self) -> Optional[str]: + """ + Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls. + """ + return pulumi.get(self, "authorized_url_validation_policy") + @property @pulumi.getter(name="clientAuthenticationPolicy") def client_authentication_policy(self) -> Optional[str]: @@ -969,6 +989,11 @@ def client_authentication_policy(self) -> Optional[str]: """ return pulumi.get(self, "client_authentication_policy") + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[str]: + return pulumi.get(self, "client_id") + @property @pulumi.getter(name="clientSecret") def client_secret(self) -> Optional[str]: @@ -5788,14 +5813,14 @@ class FusionAuthTenantJwtConfiguration(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "accessTokenKeyId": - suggest = "access_token_key_id" - elif key == "idTokenKeyId": - suggest = "id_token_key_id" - elif key == "refreshTokenTimeToLiveInMinutes": + if key == "refreshTokenTimeToLiveInMinutes": suggest = "refresh_token_time_to_live_in_minutes" elif key == "timeToLiveInSeconds": suggest = "time_to_live_in_seconds" + elif key == "accessTokenKeyId": + suggest = "access_token_key_id" + elif key == "idTokenKeyId": + suggest = "id_token_key_id" elif key == "refreshTokenExpirationPolicy": suggest = "refresh_token_expiration_policy" elif key == "refreshTokenRevocationPolicyOnLoginPrevented": @@ -5817,28 +5842,30 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - access_token_key_id: str, - id_token_key_id: str, refresh_token_time_to_live_in_minutes: int, time_to_live_in_seconds: int, + access_token_key_id: Optional[str] = None, + id_token_key_id: Optional[str] = None, refresh_token_expiration_policy: Optional[str] = None, refresh_token_revocation_policy_on_login_prevented: Optional[bool] = None, refresh_token_revocation_policy_on_password_change: Optional[bool] = None, refresh_token_usage_policy: Optional[str] = None): """ - :param str access_token_key_id: The unique id of the signing key used to sign the access token. - :param str id_token_key_id: The unique id of the signing key used to sign the Id token. :param int refresh_token_time_to_live_in_minutes: The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0. :param int time_to_live_in_seconds: The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0. + :param str access_token_key_id: The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. + :param str id_token_key_id: The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. :param str refresh_token_expiration_policy: The refresh token expiration policy. :param bool refresh_token_revocation_policy_on_login_prevented: When enabled, the refresh token will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login. :param bool refresh_token_revocation_policy_on_password_change: When enabled, the refresh token will be revoked when a user changes their password." :param str refresh_token_usage_policy: The refresh token usage policy. """ - pulumi.set(__self__, "access_token_key_id", access_token_key_id) - pulumi.set(__self__, "id_token_key_id", id_token_key_id) pulumi.set(__self__, "refresh_token_time_to_live_in_minutes", refresh_token_time_to_live_in_minutes) pulumi.set(__self__, "time_to_live_in_seconds", time_to_live_in_seconds) + if access_token_key_id is not None: + pulumi.set(__self__, "access_token_key_id", access_token_key_id) + if id_token_key_id is not None: + pulumi.set(__self__, "id_token_key_id", id_token_key_id) if refresh_token_expiration_policy is not None: pulumi.set(__self__, "refresh_token_expiration_policy", refresh_token_expiration_policy) if refresh_token_revocation_policy_on_login_prevented is not None: @@ -5848,22 +5875,6 @@ def __init__(__self__, *, if refresh_token_usage_policy is not None: pulumi.set(__self__, "refresh_token_usage_policy", refresh_token_usage_policy) - @property - @pulumi.getter(name="accessTokenKeyId") - def access_token_key_id(self) -> str: - """ - The unique id of the signing key used to sign the access token. - """ - return pulumi.get(self, "access_token_key_id") - - @property - @pulumi.getter(name="idTokenKeyId") - def id_token_key_id(self) -> str: - """ - The unique id of the signing key used to sign the Id token. - """ - return pulumi.get(self, "id_token_key_id") - @property @pulumi.getter(name="refreshTokenTimeToLiveInMinutes") def refresh_token_time_to_live_in_minutes(self) -> int: @@ -5880,6 +5891,22 @@ def time_to_live_in_seconds(self) -> int: """ return pulumi.get(self, "time_to_live_in_seconds") + @property + @pulumi.getter(name="accessTokenKeyId") + def access_token_key_id(self) -> Optional[str]: + """ + The unique id of the signing key used to sign the access token. Required prior to `1.30.0`. + """ + return pulumi.get(self, "access_token_key_id") + + @property + @pulumi.getter(name="idTokenKeyId") + def id_token_key_id(self) -> Optional[str]: + """ + The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`. + """ + return pulumi.get(self, "id_token_key_id") + @property @pulumi.getter(name="refreshTokenExpirationPolicy") def refresh_token_expiration_policy(self) -> Optional[str]: @@ -7423,6 +7450,37 @@ def user_update_complete(self) -> Optional[bool]: return pulumi.get(self, "user_update_complete") +@pulumi.output_type +class GetFormFieldValidatorResult(dict): + def __init__(__self__, *, + enabled: Optional[bool] = None, + expression: Optional[str] = None): + """ + :param bool enabled: Determines if user input should be validated. + :param str expression: A regular expression used to validate user input. Must be a valid regular expression pattern. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if expression is not None: + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Determines if user input should be validated. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + A regular expression used to validate user input. Must be a valid regular expression pattern. + """ + return pulumi.get(self, "expression") + + @pulumi.output_type class GetFormStepResult(dict): def __init__(__self__, *, From 96fc099d77db8a353fec601f6588b304734a7c10 Mon Sep 17 00:00:00 2001 From: Theo Gravity Date: Sun, 25 Jun 2023 16:48:32 -0700 Subject: [PATCH 2/3] Update --- README-PUBLISHING.md | 6 +- .../pulumi-resource-fusionauth/schema.json | 3136 +++-------------- provider/go.mod | 91 +- provider/go.sum | 188 +- sdk/dotnet/FusionAuthApiKey.cs | 1 + sdk/dotnet/FusionAuthApplication.cs | 1 + sdk/dotnet/FusionAuthApplicationRole.cs | 1 + sdk/dotnet/FusionAuthEMail.cs | 1 + sdk/dotnet/FusionAuthEntity.cs | 9 + sdk/dotnet/FusionAuthEntityType.cs | 1 + sdk/dotnet/FusionAuthForm.cs | 1 + sdk/dotnet/FusionAuthFormField.cs | 1 + sdk/dotnet/FusionAuthGenericConnector.cs | 1 + sdk/dotnet/FusionAuthGroup.cs | 1 + sdk/dotnet/FusionAuthIdpApple.cs | 1 + sdk/dotnet/FusionAuthIdpExternalJwt.cs | 1 + sdk/dotnet/FusionAuthIdpFacebook.cs | 1 + sdk/dotnet/FusionAuthIdpGoogle.cs | 1 + sdk/dotnet/FusionAuthIdpLinkedIn.cs | 1 + sdk/dotnet/FusionAuthIdpOpenIdConnect.cs | 1 + sdk/dotnet/FusionAuthIdpPsn.cs | 1 + sdk/dotnet/FusionAuthIdpSamlv2.cs | 1 + sdk/dotnet/FusionAuthIdpSteam.cs | 1 + sdk/dotnet/FusionAuthIdpTwitch.cs | 1 + sdk/dotnet/FusionAuthIdpXBox.cs | 1 + sdk/dotnet/FusionAuthImportedKey.cs | 1 + sdk/dotnet/FusionAuthKey.cs | 1 + sdk/dotnet/FusionAuthLambda.cs | 1 + sdk/dotnet/FusionAuthReactor.cs | 1 + sdk/dotnet/FusionAuthRegistration.cs | 1 + sdk/dotnet/FusionAuthSystemConfiguration.cs | 1 + sdk/dotnet/FusionAuthTenant.cs | 1 + sdk/dotnet/FusionAuthTheme.cs | 1 + sdk/dotnet/FusionAuthUser.cs | 1 + sdk/dotnet/FusionAuthUserAction.cs | 1 + sdk/dotnet/FusionAuthWebhook.cs | 1 + sdk/dotnet/GetApplication.cs | 2 + sdk/dotnet/GetApplicationRole.cs | 2 + sdk/dotnet/GetEMail.cs | 2 + sdk/dotnet/GetForm.cs | 2 + sdk/dotnet/GetFormField.cs | 2 + sdk/dotnet/GetIdp.cs | 2 + sdk/dotnet/GetLambda.cs | 2 + sdk/dotnet/GetTenant.cs | 2 + sdk/dotnet/GetUser.cs | 2 + sdk/dotnet/theogravity.Fusionauth.csproj | 5 +- sdk/go/fusionauth/config/config.go | 12 +- sdk/go/fusionauth/config/pulumiUtilities.go | 2 +- sdk/go/fusionauth/fusionAuthEntity.go | 18 + sdk/go/fusionauth/provider.go | 8 +- sdk/go/fusionauth/pulumiUtilities.go | 2 +- sdk/nodejs/fusionAuthEntity.ts | 9 + sdk/python/setup.py | 1 + .../fusion_auth_entity.py | 21 + 54 files changed, 761 insertions(+), 2796 deletions(-) diff --git a/README-PUBLISHING.md b/README-PUBLISHING.md index 4ee4081..7425a18 100644 --- a/README-PUBLISHING.md +++ b/README-PUBLISHING.md @@ -9,7 +9,7 @@ * You'll have to run `gofmt -s provider/resources.go > provider/resources.go.new` and delete `resources.go` and rename `resources.go.new` to `resources.go` to get the formatting correct. - Run `cd sdk && go mod tidy && cd -` - Run `make build_sdks` -- Commit all the generated files and push. -- Make sure the CI passes green. -- Create a release by making a git tag in the format of `vX.Y.Z` and push that tag to origin via `git push origin ` +- Commit all the generated files and push to a branch. +- Make sure the CI passes green then merge. +- Create a release in main by making a git tag in the format of `vX.Y.Z` and push that tag to origin via `git push origin ` - Look at the action tab in the github repo to monitor the build for that version diff --git a/provider/cmd/pulumi-resource-fusionauth/schema.json b/provider/cmd/pulumi-resource-fusionauth/schema.json index b96c513..4a6956d 100644 --- a/provider/cmd/pulumi-resource-fusionauth/schema.json +++ b/provider/cmd/pulumi-resource-fusionauth/schema.json @@ -84,56 +84,26 @@ "properties": { "delete": { "type": "boolean", - "description": "HTTP DELETE Verb.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "HTTP DELETE Verb.\n" }, "endpoint": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } + "type": "string" }, "get": { "type": "boolean", - "description": "HTTP GET Verb.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "HTTP GET Verb.\n" }, "patch": { "type": "boolean", - "description": "HTTP PATCH Verb\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "HTTP PATCH Verb\n" }, "post": { "type": "boolean", - "description": "HTTP POST Verb\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "HTTP POST Verb\n" }, "put": { "type": "boolean", - "description": "HTTP PUT Verb\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "HTTP PUT Verb\n" } }, "type": "object", @@ -145,12 +115,7 @@ "properties": { "uiIpAccessControlListId": { "type": "string", - "description": "The Id of the IP Access Control List limiting access to this application.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the IP Access Control List limiting access to this application.\n" } }, "type": "object" @@ -162,20 +127,10 @@ "items": { "type": "string" }, - "description": "An array of UUIDs that map to the CleanSpeak applications for this Application. It is possible that a single Application in FusionAuth might have multiple Applications in CleanSpeak. For example, a FusionAuth Application for a game might have one CleanSpeak Application for usernames and another Application for chat.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "An array of UUIDs that map to the CleanSpeak applications for this Application. It is possible that a single Application in FusionAuth might have multiple Applications in CleanSpeak. For example, a FusionAuth Application for a game might have one CleanSpeak Application for usernames and another Application for chat.\n" }, "usernameModeration": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationCleanSpeakConfigurationUsernameModeration:FusionAuthApplicationCleanSpeakConfigurationUsernameModeration", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationCleanSpeakConfigurationUsernameModeration:FusionAuthApplicationCleanSpeakConfigurationUsernameModeration" } }, "type": "object" @@ -184,21 +139,11 @@ "properties": { "applicationId": { "type": "string", - "description": "The Id of the CleanSpeak application that usernames are sent to for moderation.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the CleanSpeak application that usernames are sent to for moderation.\n" }, "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" } }, "type": "object" @@ -207,129 +152,59 @@ "properties": { "emailUpdateTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when their email address is updated. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when their email address is updated. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "emailVerificationTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users to verify that their email address is valid. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users to verify that their email address is valid. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "emailVerifiedTemplateId": { "type": "string", - "description": "The Id of the Email Template used to verify user emails. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to verify user emails. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "forgotPasswordTemplateId": { "type": "string", - "description": "The Id of the Email Template that is used when a user is sent a forgot password email. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template that is used when a user is sent a forgot password email. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "loginIdInUseOnCreateTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "loginIdInUseOnUpdateTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "loginNewDeviceTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when they log in on a new device. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when they log in on a new device. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "loginSuspiciousTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when a suspicious login occurs. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when a suspicious login occurs. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "passwordResetSuccessTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "passwordUpdateTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when their password has been updated. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when their password has been updated. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "passwordlessEmailTemplateId": { "type": "string", - "description": "The Id of the Passwordless Email Template, sent to users when they start a passwordless login. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Passwordless Email Template, sent to users when they start a passwordless login. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "setPasswordEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "twoFactorMethodAddTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when a MFA method has been added to their account. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when a MFA method has been added to their account. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" }, "twoFactorMethodRemoveTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when a MFA method has been removed from their account. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when a MFA method has been removed from their account. When configured, this value will take precedence over the same configuration from the Tenant when an application context is known.\n" } }, "type": "object" @@ -338,21 +213,11 @@ "properties": { "adminRegistrationFormId": { "type": "string", - "description": "The unique Id of the form to use for the Add and Edit User Registration form when used in the FusionAuth admin UI.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the form to use for the Add and Edit User Registration form when used in the FusionAuth admin UI.\n" }, "selfServiceFormId": { "type": "string", - "description": "The unique Id of the form to to enable authenticated users to manage their profile on the account page.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the form to to enable authenticated users to manage their profile on the account page.\n" } }, "type": "object" @@ -361,48 +226,23 @@ "properties": { "accessTokenId": { "type": "string", - "description": "The Id of the signing key used to sign the access token.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the signing key used to sign the access token.\n" }, "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "idTokenKeyId": { "type": "string", - "description": "The Id of the signing key used to sign the Id token.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the signing key used to sign the Id token.\n" }, "refreshTokenTtlMinutes": { "type": "integer", - "description": "The length of time in minutes the JWT refresh token will live before it is expired and is not able to be exchanged for a JWT.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of time in minutes the JWT refresh token will live before it is expired and is not able to be exchanged for a JWT.\n" }, "ttlSeconds": { "type": "integer", - "description": "The length of time in seconds the JWT will live before it is expired and no longer valid.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of time in seconds the JWT will live before it is expired and no longer valid.\n" } }, "type": "object" @@ -411,30 +251,15 @@ "properties": { "accessTokenPopulateId": { "type": "string", - "description": "The Id of the Lambda that will be invoked when an access token is generated for this application. This will be utilized during OAuth2 and OpenID Connect authentication requests as well as when an access token is generated for the Login API.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Lambda that will be invoked when an access token is generated for this application. This will be utilized during OAuth2 and OpenID Connect authentication requests as well as when an access token is generated for the Login API.\n" }, "idTokenPopulateId": { "type": "string", - "description": "The Id of the Lambda that will be invoked when an Id token is generated for this application during an OpenID Connect authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Lambda that will be invoked when an Id token is generated for this application during an OpenID Connect authentication request.\n" }, "samlv2PopulateId": { "type": "string", - "description": "The Id of the Lambda that will be invoked when a a SAML response is generated during a SAML authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Lambda that will be invoked when a a SAML response is generated during a SAML authentication request.\n" } }, "type": "object" @@ -443,30 +268,15 @@ "properties": { "allowTokenRefresh": { "type": "boolean", - "description": "Indicates if a JWT may be refreshed using a Refresh Token for this application. This configuration is separate from issuing new Refresh Tokens which is controlled by the generateRefreshTokens parameter. This configuration indicates specifically if an existing Refresh Token may be used to request a new JWT using the Refresh API.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates if a JWT may be refreshed using a Refresh Token for this application. This configuration is separate from issuing new Refresh Tokens which is controlled by the generateRefreshTokens parameter. This configuration indicates specifically if an existing Refresh Token may be used to request a new JWT using the Refresh API.\n" }, "generateRefreshTokens": { "type": "boolean", - "description": "Determines if the OAuth 2.0 Token endpoint will generate a refresh token when the offline_access scope is requested.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if the OAuth 2.0 Token endpoint will generate a refresh token when the offline_access scope is requested.\n" }, "requireAuthentication": { "type": "boolean", - "description": "Indicates if the Login API should require an API key. If you set this value to false and your FusionAuth API is on a public network, anyone may attempt to use the Login API.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates if the Login API should require an API key. If you set this value to false and your FusionAuth API is on a public network, anyone may attempt to use the Login API.\n" } }, "type": "object" @@ -475,21 +285,11 @@ "properties": { "emailTemplateId": { "type": "string", - "description": "The Id of the email template that is used when notifying a user to complete a multi-factor authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the email template that is used when notifying a user to complete a multi-factor authentication request.\n" }, "smsTemplateId": { "type": "string", - "description": "The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request.\n" } }, "type": "object" @@ -501,144 +301,69 @@ "items": { "type": "string" }, - "description": "An array of URLs that are the authorized origins for FusionAuth OAuth.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "An array of URLs that are the authorized origins for FusionAuth OAuth.\n" }, "authorizedRedirectUrls": { "type": "array", "items": { "type": "string" }, - "description": "An array of URLs that are the authorized redirect URLs for FusionAuth OAuth.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "An array of URLs that are the authorized redirect URLs for FusionAuth OAuth.\n" }, "authorizedUrlValidationPolicy": { "type": "string", - "description": "Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines whether wildcard expressions will be allowed in the authorized_redirect_urls and authorized_origin_urls.\n" }, "clientAuthenticationPolicy": { "type": "string", - "description": "Determines the client authentication requirements for the OAuth 2.0 Token endpoint.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines the client authentication requirements for the OAuth 2.0 Token endpoint.\n" }, "clientId": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } + "type": "string" }, "clientSecret": { "type": "string", - "description": "The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The OAuth 2.0 client secret. If you leave this blank during a POST, a secure secret will be generated for you. If you leave this blank during PUT, the previous value will be maintained. For both POST and PUT you can provide a value and it will be stored.\n" }, "debug": { "type": "boolean", - "description": "Whether or not FusionAuth will log SAML debug messages to the event log. This is useful for debugging purposes.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not FusionAuth will log SAML debug messages to the event log. This is useful for debugging purposes.\n" }, "deviceVerificationUrl": { "type": "string", - "description": "The device verification URL to be used with the Device Code grant type, this field is required when device_code is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The device verification URL to be used with the Device Code grant type, this field is required when device_code is enabled.\n" }, "enabledGrants": { "type": "array", "items": { "type": "string" }, - "description": "The enabled grants for this application. In order to utilize a particular grant with the OAuth 2.0 endpoints you must have enabled the grant.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The enabled grants for this application. In order to utilize a particular grant with the OAuth 2.0 endpoints you must have enabled the grant.\n" }, "generateRefreshTokens": { "type": "boolean", - "description": "Determines if the OAuth 2.0 Token endpoint will generate a refresh token when the offline_access scope is requested.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if the OAuth 2.0 Token endpoint will generate a refresh token when the offline_access scope is requested.\n" }, "logoutBehavior": { "type": "string", - "description": "Behavior when /oauth2/logout is called.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Behavior when /oauth2/logout is called.\n" }, "logoutUrl": { "type": "string", - "description": "The URL that the browser is taken to after the user logs out of the SAML service provider. Often service providers need this URL in order to correctly hook up single-logout. Note that FusionAuth does not support the SAML single-logout profile because most service providers to not support it properly.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The URL that the browser is taken to after the user logs out of the SAML service provider. Often service providers need this URL in order to correctly hook up single-logout. Note that FusionAuth does not support the SAML single-logout profile because most service providers to not support it properly.\n" }, "proofKeyForCodeExchangePolicy": { "type": "string", - "description": "Determines the PKCE requirements when using the authorization code grant.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines the PKCE requirements when using the authorization code grant.\n" }, "requireClientAuthentication": { "type": "boolean", "description": "Determines if the OAuth 2.0 Token endpoint requires client authentication. If this is enabled, the client must provide client credentials when using the Token endpoint. The client_id and client_secret may be provided using a Basic Authorization HTTP header, or by sending these parameters in the request body using POST data.\n", - "deprecationMessage": "In version 1.28.0 and beyond, client authentication can be managed via oauth_configuration.client_authentication_policy.", - "language": { - "python": { - "mapCase": false - } - } + "deprecationMessage": "In version 1.28.0 and beyond, client authentication can be managed via oauth_configuration.client_authentication_policy." }, "requireRegistration": { "type": "boolean", - "description": "When enabled the user will be required to be registered, or complete registration before redirecting to the configured callback in the authorization code grant or the implicit grant. This configuration does not currently apply to any other grant.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled the user will be required to be registered, or complete registration before redirecting to the configured callback in the authorization code grant or the implicit grant. This configuration does not currently apply to any other grant.\n" } }, "type": "object", @@ -654,96 +379,41 @@ "fusionauth:index/FusionAuthApplicationRegistrationConfiguration:FusionAuthApplicationRegistrationConfiguration": { "properties": { "birthDate": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationBirthDate:FusionAuthApplicationRegistrationConfigurationBirthDate", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationBirthDate:FusionAuthApplicationRegistrationConfigurationBirthDate" }, "confirmPassword": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" }, "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "firstName": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationFirstName:FusionAuthApplicationRegistrationConfigurationFirstName", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationFirstName:FusionAuthApplicationRegistrationConfigurationFirstName" }, "formId": { "type": "string", - "description": "The Id of an associated Form when using advanced registration configuration type. This field is required when application.registrationConfiguration.type is set to advanced.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of an associated Form when using advanced registration configuration type. This field is required when application.registrationConfiguration.type is set to advanced.\n" }, "fullName": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationFullName:FusionAuthApplicationRegistrationConfigurationFullName", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationFullName:FusionAuthApplicationRegistrationConfigurationFullName" }, "lastName": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationLastName:FusionAuthApplicationRegistrationConfigurationLastName", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationLastName:FusionAuthApplicationRegistrationConfigurationLastName" }, "loginIdType": { "type": "string", - "description": "The unique login Id that will be collected during registration, this value can be email or username. Leaving the default value of email is preferred because an email address is globally unique.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique login Id that will be collected during registration, this value can be email or username. Leaving the default value of email is preferred because an email address is globally unique.\n" }, "middleName": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationMiddleName:FusionAuthApplicationRegistrationConfigurationMiddleName", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationMiddleName:FusionAuthApplicationRegistrationConfigurationMiddleName" }, "mobilePhone": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationMobilePhone:FusionAuthApplicationRegistrationConfigurationMobilePhone", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationRegistrationConfigurationMobilePhone:FusionAuthApplicationRegistrationConfigurationMobilePhone" }, "type": { "type": "string", - "description": "The type of registration flow.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of registration flow.\n" } }, "type": "object" @@ -752,20 +422,10 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "required": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -774,20 +434,10 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "required": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -796,20 +446,10 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "required": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -818,20 +458,10 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "required": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -840,20 +470,10 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "required": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -862,20 +482,10 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "required": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -884,21 +494,11 @@ "properties": { "unverifiedEnabled": { "type": "boolean", - "description": "Indicates that users without a verified registration for this application will have their registration permanently deleted after application.registrationDeletePolicy.unverified.numberOfDaysToRetain days.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates that users without a verified registration for this application will have their registration permanently deleted after application.registrationDeletePolicy.unverified.numberOfDaysToRetain days.\n" }, "unverifiedNumberOfDaysToRetain": { "type": "integer", - "description": "The number of days from registration a user’s registration will be retained before being deleted for not completing registration verification. This field is required when application.registrationDeletePolicy.enabled is set to true. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of days from registration a user’s registration will be retained before being deleted for not completing registration verification. This field is required when application.registrationDeletePolicy.enabled is set to true. Value must be greater than 0.\n" } }, "type": "object" @@ -907,123 +507,58 @@ "properties": { "audience": { "type": "string", - "description": "The audience for the SAML response sent to back to the service provider from FusionAuth. Some service providers require different audience values than the issuer and this configuration option lets you change the audience in the response.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The audience for the SAML response sent to back to the service provider from FusionAuth. Some service providers require different audience values than the issuer and this configuration option lets you change the audience in the response.\n" }, "authorizedRedirectUrls": { "type": "array", "items": { "type": "string" }, - "description": "An array of URLs that are the authorized redirect URLs for FusionAuth OAuth.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "An array of URLs that are the authorized redirect URLs for FusionAuth OAuth.\n" }, "callbackUrl": { "type": "string", "description": "The URL of the callback (sometimes called the Assertion Consumer Service or ACS). This is where FusionAuth sends the browser after the user logs in via SAML.\n", - "deprecationMessage": "In version 1.20.0 and beyond, Callback URLs can be managed via authorized_redirect_urls.", - "language": { - "python": { - "mapCase": false - } - } + "deprecationMessage": "In version 1.20.0 and beyond, Callback URLs can be managed via authorized_redirect_urls." }, "debug": { "type": "boolean", - "description": "Whether or not FusionAuth will log SAML debug messages to the event log. This is useful for debugging purposes.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not FusionAuth will log SAML debug messages to the event log. This is useful for debugging purposes.\n" }, "defaultVerificationKeyId": { "type": "string", - "description": "The unique Id of the Key used to verify the signature if the public key cannot be determined by the KeyInfo element when using POST bindings, or the key used to verify the signature when using HTTP Redirect bindings.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the Key used to verify the signature if the public key cannot be determined by the KeyInfo element when using POST bindings, or the key used to verify the signature when using HTTP Redirect bindings.\n" }, "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "issuer": { "type": "string", - "description": "The issuer that identifies the service provider and allows FusionAuth to load the correct Application and SAML configuration. If you don’t know the issuer, you can often times put in anything here and FusionAuth will display an error message with the issuer from the service provider when you test the SAML login.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The issuer that identifies the service provider and allows FusionAuth to load the correct Application and SAML configuration. If you don’t know the issuer, you can often times put in anything here and FusionAuth will display an error message with the issuer from the service provider when you test the SAML login.\n" }, "keyId": { "type": "string", - "description": "The unique Id of the Key used to sign the SAML Single Logout response.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the Key used to sign the SAML Single Logout response.\n" }, "logout": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationSamlv2ConfigurationLogout:FusionAuthApplicationSamlv2ConfigurationLogout", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationSamlv2ConfigurationLogout:FusionAuthApplicationSamlv2ConfigurationLogout" }, "logoutUrl": { "type": "string", - "description": "The URL that the browser is taken to after the user logs out of the SAML service provider. Often service providers need this URL in order to correctly hook up single-logout. Note that FusionAuth does not support the SAML single-logout profile because most service providers to not support it properly.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The URL that the browser is taken to after the user logs out of the SAML service provider. Often service providers need this URL in order to correctly hook up single-logout. Note that FusionAuth does not support the SAML single-logout profile because most service providers to not support it properly.\n" }, "requiredSignedRequests": { "type": "boolean", - "description": "If set to true, will force verification through the key store.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "If set to true, will force verification through the key store.\n" }, "xmlSignatureCanonicalizationMethod": { "type": "string", - "description": "The XML signature canonicalization method used when digesting and signing the SAML response. Unfortunately, many service providers do not correctly implement the XML signature specifications and force a specific canonicalization method. This setting allows you to change the canonicalization method to match the service provider. Often, service providers don’t even document their required method. You might need to contact enterprise support at the service provider to figure out what method they use.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The XML signature canonicalization method used when digesting and signing the SAML response. Unfortunately, many service providers do not correctly implement the XML signature specifications and force a specific canonicalization method. This setting allows you to change the canonicalization method to match the service provider. Often, service providers don’t even document their required method. You might need to contact enterprise support at the service provider to figure out what method they use.\n" }, "xmlSignatureLocation": { "type": "string", - "description": "The location to place the XML signature when signing a successful SAML response.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The location to place the XML signature when signing a successful SAML response.\n" } }, "type": "object", @@ -1036,56 +571,26 @@ "properties": { "behavior": { "type": "string", - "description": "This configuration is functionally equivalent to the Logout Behavior found in the OAuth2 configuration.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "This configuration is functionally equivalent to the Logout Behavior found in the OAuth2 configuration.\n" }, "defaultVerificationKeyId": { "type": "string", - "description": "The unique Id of the Key used to verify the signature if the public key cannot be determined by the KeyInfo element when using POST bindings, or the key used to verify the signature when using HTTP Redirect bindings.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the Key used to verify the signature if the public key cannot be determined by the KeyInfo element when using POST bindings, or the key used to verify the signature when using HTTP Redirect bindings.\n" }, "keyId": { "type": "string", - "description": "The unique Id of the Key used to sign the SAML Single Logout response.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the Key used to sign the SAML Single Logout response.\n" }, "requireSignedRequests": { "type": "boolean", - "description": "Set this parameter equal to true to require the SAML v2 Service Provider to sign the Logout request. When this value is true all Logout requests missing a signature will be rejected.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Set this parameter equal to true to require the SAML v2 Service Provider to sign the Logout request. When this value is true all Logout requests missing a signature will be rejected.\n" }, "singleLogout": { - "$ref": "#/types/fusionauth:index/FusionAuthApplicationSamlv2ConfigurationLogoutSingleLogout:FusionAuthApplicationSamlv2ConfigurationLogoutSingleLogout", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthApplicationSamlv2ConfigurationLogoutSingleLogout:FusionAuthApplicationSamlv2ConfigurationLogoutSingleLogout" }, "xmlSignatureCanonicalizationMethod": { "type": "string", - "description": "The XML signature canonicalization method used when digesting and signing the SAML response. Unfortunately, many service providers do not correctly implement the XML signature specifications and force a specific canonicalization method. This setting allows you to change the canonicalization method to match the service provider. Often, service providers don’t even document their required method. You might need to contact enterprise support at the service provider to figure out what method they use.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The XML signature canonicalization method used when digesting and signing the SAML response. Unfortunately, many service providers do not correctly implement the XML signature specifications and force a specific canonicalization method. This setting allows you to change the canonicalization method to match the service provider. Often, service providers don’t even document their required method. You might need to contact enterprise support at the service provider to figure out what method they use.\n" } }, "type": "object" @@ -1094,39 +599,19 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not SAML Single Logout for this SAML IdP is enabled.\n" }, "keyId": { "type": "string", - "description": "The unique Id of the Key used to sign the SAML Single Logout response.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the Key used to sign the SAML Single Logout response.\n" }, "url": { "type": "string", - "description": "The URL at which you want to receive the LogoutRequest from FusionAuth.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The URL at which you want to receive the LogoutRequest from FusionAuth.\n" }, "xmlSignatureCanonicalizationMethod": { "type": "string", - "description": "The XML signature canonicalization method used when digesting and signing the SAML response. Unfortunately, many service providers do not correctly implement the XML signature specifications and force a specific canonicalization method. This setting allows you to change the canonicalization method to match the service provider. Often, service providers don’t even document their required method. You might need to contact enterprise support at the service provider to figure out what method they use.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The XML signature canonicalization method used when digesting and signing the SAML response. Unfortunately, many service providers do not correctly implement the XML signature specifications and force a specific canonicalization method. This setting allows you to change the canonicalization method to match the service provider. Often, service providers don’t even document their required method. You might need to contact enterprise support at the service provider to figure out what method they use.\n" } }, "type": "object" @@ -1135,30 +620,15 @@ "properties": { "accessTokenKeyId": { "type": "string", - "description": "The unique ID of the signing key used to sign the access token. Required when\nenabled is set to true.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique ID of the signing key used to sign the access token. Required when\nenabled is set to true.\n" }, "enabled": { "type": "boolean", - "description": "Indicates if this application is using the JWT configuration defined here or the global JWT\nconfiguration defined by the Tenant. If this is false the signing algorithm configured in the Tenant will be used.\nIf true the signing algorithm defined in this application will be used.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates if this application is using the JWT configuration defined here or the global JWT\nconfiguration defined by the Tenant. If this is false the signing algorithm configured in the Tenant will be used.\nIf true the signing algorithm defined in this application will be used.\n" }, "timeToLiveInSeconds": { "type": "integer", - "description": "The length of time in seconds the JWT will live before it is expired and no\nlonger valid. Required when enabled is set to true.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of time in seconds the JWT will live before it is expired and no\nlonger valid. Required when enabled is set to true.\n" } }, "type": "object" @@ -1167,21 +637,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "Determines if user input should be validated.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if user input should be validated.\n" }, "expression": { "type": "string", - "description": "A regular expression used to validate user input. Must be a valid regular expression pattern.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A regular expression used to validate user input. Must be a valid regular expression pattern.\n" } }, "type": "object" @@ -1193,12 +653,7 @@ "items": { "type": "string" }, - "description": "An ordered list of Form Field Ids assigned to this step.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "An ordered list of Form Field Ids assigned to this step.\n" } }, "type": "object", @@ -1210,75 +665,35 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "keyId": { "type": "string", - "description": "The unique Id of the private key downloaded from Apple and imported into Key Master that will be used to sign the client secret.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the private key downloaded from Apple and imported into Key Master that will be used to sign the client secret.\n" }, "scope": { "type": "string", - "description": "The top-level space separated scope that you are requesting from Apple.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level space separated scope that you are requesting from Apple.\n" }, "servicesId": { "type": "string", - "description": "The unique Id of the private key downloaded from Apple and imported into Key Master that will be used to sign the client secret.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the private key downloaded from Apple and imported into Key Master that will be used to sign the client secret.\n" }, "teamId": { "type": "string", - "description": "The Apple App ID Prefix, or Team ID found in your Apple Developer Account which has been configured for Sign in with Apple.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Apple App ID Prefix, or Team ID found in your Apple Developer Account which has been configured for Sign in with Apple.\n" } }, "type": "object" @@ -1287,30 +702,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1319,30 +719,15 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" } }, "type": "object" @@ -1351,30 +736,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1383,76 +753,36 @@ "properties": { "appId": { "type": "string", - "description": "The top-level Facebook `appId` for your Application. This value is retrieved from the Facebook developer website when you setup your Facebook developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level Facebook `appId` for your Application. This value is retrieved from the Facebook developer website when you setup your Facebook developer account.\n" }, "applicationId": { "type": "string", - "description": "ID of the FusionAuth Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the FusionAuth Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientSecret": { "type": "string", "description": "The top-level client secret, also known as 'App Secret', to use with the Facebook Identity Provider when retrieving the long-lived token. This value is retrieved from the Facebook developer website when you setup your Facebook developer account.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "createRegistration": { "type": "boolean", - "description": "Determines if a `UserRegistration` is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a `UserRegistration` is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "fields": { "type": "string", - "description": "The top-level fields that you are requesting from Facebook.\nField values are documented at [Facebook Graph API](https://developers.facebook.com/docs/graph-api/using-graph-api/)\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level fields that you are requesting from Facebook.\nField values are documented at [Facebook Graph API](https://developers.facebook.com/docs/graph-api/using-graph-api/)\n" }, "permissions": { "type": "string", - "description": "The top-level permissions that your application is asking of the user’s Facebook account.\nPermission values are documented at [Facebook Login API](https://developers.facebook.com/docs/permissions/reference)\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level permissions that your application is asking of the user’s Facebook account.\nPermission values are documented at [Facebook Login API](https://developers.facebook.com/docs/permissions/reference)\n" } }, "type": "object" @@ -1461,30 +791,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1493,67 +808,32 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientId": { "type": "string", - "description": "The top-level Google client id for your Application. This value is retrieved from the Google developer website when you setup your Google developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level Google client id for your Application. This value is retrieved from the Google developer website when you setup your Google developer account.\n" }, "clientSecret": { "type": "string", "description": "The top-level client secret to use with the Google Identity Provider when retrieving the long-lived token. This value is retrieved from the Google developer website when you setup your Google developer account.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "scope": { "type": "string", - "description": "The top-level scope that you are requesting from Google.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from Google.\n" } }, "type": "object" @@ -1562,30 +842,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1594,68 +859,33 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the FusionAuth Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the FusionAuth Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientId": { "type": "string", "description": "The top-level LinkedIn client id for your Application. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "clientSecret": { "type": "string", "description": "The top-level client secret to use with the LinkedIn Identity Provider when retrieving the long-lived token. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "createRegistration": { "type": "boolean", - "description": "Determines if a `UserRegistration` is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a `UserRegistration` is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "scope": { "type": "string", - "description": "The top-level scope that you are requesting from LinkedIn.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from LinkedIn.\n" } }, "type": "object" @@ -1664,30 +894,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1696,76 +911,36 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonImageUrl": { "type": "string", - "description": "The top-level button image (URL) to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button image (URL) to use on the FusionAuth login page for this Identity Provider.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "oauth2ClientId": { "type": "string", - "description": "The top-level client id for your Application.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level client id for your Application.\n" }, "oauth2ClientSecret": { "type": "string", "description": "The top-level client secret to use with the OpenID Connect identity provider.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "oauth2Scope": { "type": "string", - "description": "The top-level scope that you are requesting from the OpenID Connect identity provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from the OpenID Connect identity provider.\n" } }, "type": "object" @@ -1774,30 +949,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1806,66 +966,31 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientId": { "type": "string", - "description": "The top-level Sony PlayStation Network client id for your Application. This value is retrieved from the Sony PlayStation Network developer website when you setup your Sony PlayStation Network developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level Sony PlayStation Network client id for your Application. This value is retrieved from the Sony PlayStation Network developer website when you setup your Sony PlayStation Network developer account.\n" }, "clientSecret": { "type": "string", - "description": "The top-level client secret to use with the Sony PlayStation Network Identity Provider when retrieving the long-lived token. This value is retrieved from the Sony PlayStation Network developer website when you setup your Sony PlayStation Network developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level client secret to use with the Sony PlayStation Network Identity Provider when retrieving the long-lived token. This value is retrieved from the Sony PlayStation Network developer website when you setup your Sony PlayStation Network developer account.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "scope": { "type": "string", - "description": "The top-level scope that you are requesting from Sony PlayStation Network.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from Sony PlayStation Network.\n" } }, "type": "object" @@ -1874,30 +999,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -1905,28 +1015,13 @@ "fusionauth:index/FusionAuthIdpSamlV2IdpInitiatedApplicationConfiguration:FusionAuthIdpSamlV2IdpInitiatedApplicationConfiguration": { "properties": { "applicationId": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } + "type": "string" }, "createRegistration": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" }, "enabled": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" } }, "type": "object" @@ -1934,28 +1029,13 @@ "fusionauth:index/FusionAuthIdpSamlV2IdpInitiatedTenantConfiguration:FusionAuthIdpSamlV2IdpInitiatedTenantConfiguration": { "properties": { "limitUserLinkCountEnabled": { - "type": "boolean", - "language": { - "python": { - "mapCase": false - } - } + "type": "boolean" }, "limitUserLinkCountMaximumLinks": { - "type": "integer", - "language": { - "python": { - "mapCase": false - } - } + "type": "integer" }, "tenantId": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } + "type": "string" } }, "type": "object" @@ -1964,48 +1044,23 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonImageUrl": { "type": "string", - "description": "The top-level button image (URL) to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button image (URL) to use on the FusionAuth login page for this Identity Provider.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" } }, "type": "object" @@ -2014,30 +1069,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -2046,66 +1086,31 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientId": { "type": "string", - "description": "The top-level Steam client id for your Application. This value is retrieved from the Steam developer website when you setup your Steam developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level Steam client id for your Application. This value is retrieved from the Steam developer website when you setup your Steam developer account.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "scope": { "type": "string", - "description": "The top-level scope that you are requesting from Steam.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from Steam.\n" }, "webApiKey": { "type": "string", - "description": "The top-level web API key to use with the Steam Identity Provider when retrieving the player summary info. This value is retrieved from the Steam developer website when you setup your Steam developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level web API key to use with the Steam Identity Provider when retrieving the player summary info. This value is retrieved from the Steam developer website when you setup your Steam developer account.\n" } }, "type": "object" @@ -2114,30 +1119,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -2146,66 +1136,31 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientId": { "type": "string", - "description": "TThe top-level Xbox client id for your Application. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe top-level Xbox client id for your Application. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n" }, "clientSecret": { "type": "string", - "description": "The top-level client secret to use with the Xbox Identity Provider when retrieving the long-lived token. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level client secret to use with the Xbox Identity Provider when retrieving the long-lived token. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "scope": { "type": "string", - "description": "The top-level scope that you are requesting from Xbox.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from Xbox.\n" } }, "type": "object" @@ -2214,30 +1169,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -2246,66 +1186,31 @@ "properties": { "applicationId": { "type": "string", - "description": "ID of the Application to apply this configuration to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "ID of the Application to apply this configuration to.\n" }, "buttonText": { "type": "string", - "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level button text to use on the FusionAuth login page for this Identity Provider.\n" }, "clientId": { "type": "string", - "description": "TThe top-level Xbox client id for your Application. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe top-level Xbox client id for your Application. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n" }, "clientSecret": { "type": "string", - "description": "The top-level client secret to use with the Xbox Identity Provider when retrieving the long-lived token. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level client secret to use with the Xbox Identity Provider when retrieving the long-lived token. This value is retrieved from the Xbox developer website when you setup your Xbox developer account.\n" }, "createRegistration": { "type": "boolean", - "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if a UserRegistration is created for the User automatically or not. If a user doesn’t exist in FusionAuth and logs in through an identity provider, this boolean controls whether or not FusionAuth creates a registration for the User in the Application they are logging into.\n" }, "enabled": { "type": "boolean", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "scope": { "type": "string", - "description": "The top-level scope that you are requesting from Xbox.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The top-level scope that you are requesting from Xbox.\n" } }, "type": "object" @@ -2314,30 +1219,15 @@ "properties": { "limitUserLinkCountEnabled": { "type": "boolean", - "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the number of identity provider links a user may create is enforced by maximumLinks.\n" }, "limitUserLinkCountMaximumLinks": { "type": "integer", - "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if this provider is enabled. If it is false then it will be disabled globally.\n" }, "tenantId": { "type": "string", - "description": "The unique Id of the tenant that this configuration applies to.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the tenant that this configuration applies to.\n" } }, "type": "object" @@ -2345,12 +1235,7 @@ "fusionauth:index/FusionAuthSystemConfigurationAuditLogConfiguration:FusionAuthSystemConfigurationAuditLogConfiguration": { "properties": { "delete": { - "$ref": "#/types/fusionauth:index/FusionAuthSystemConfigurationAuditLogConfigurationDelete:FusionAuthSystemConfigurationAuditLogConfigurationDelete", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthSystemConfigurationAuditLogConfigurationDelete:FusionAuthSystemConfigurationAuditLogConfigurationDelete" } }, "type": "object" @@ -2359,21 +1244,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not FusionAuth should delete the login records based upon this configuration. When true the loginRecordConfiguration.delete.numberOfDaysToRetain will be used to identify login records that are eligible for deletion. When this value is set to false login records will be preserved forever.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not FusionAuth should delete the login records based upon this configuration. When true the loginRecordConfiguration.delete.numberOfDaysToRetain will be used to identify login records that are eligible for deletion. When this value is set to false login records will be preserved forever.\n" }, "numberOfDaysToRetain": { "type": "integer", - "description": "The number of days to retain login records.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of days to retain login records.\n" } }, "type": "object" @@ -2382,78 +1257,43 @@ "properties": { "allowCredentials": { "type": "boolean", - "description": "The Access-Control-Allow-Credentials response header values as described by MDN Access-Control-Allow-Credentials.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Access-Control-Allow-Credentials response header values as described by MDN Access-Control-Allow-Credentials.\n" }, "allowedHeaders": { "type": "array", "items": { "type": "string" }, - "description": "The Access-Control-Allow-Headers response header values as described by MDN Access-Control-Allow-Headers.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Access-Control-Allow-Headers response header values as described by MDN Access-Control-Allow-Headers.\n" }, "allowedMethods": { "type": "array", "items": { "type": "string" }, - "description": "The Access-Control-Allow-Methods response header values as described by MDN Access-Control-Allow-Methods.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Access-Control-Allow-Methods response header values as described by MDN Access-Control-Allow-Methods.\n" }, "allowedOrigins": { "type": "array", "items": { "type": "string" }, - "description": "The Access-Control-Allow-Origin response header values as described by MDN Access-Control-Allow-Origin. If the wildcard * is specified, no additional domains may be specified.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Access-Control-Allow-Origin response header values as described by MDN Access-Control-Allow-Origin. If the wildcard * is specified, no additional domains may be specified.\n" }, "enabled": { "type": "boolean", - "description": "Whether or not FusionAuth should delete the login records based upon this configuration. When true the loginRecordConfiguration.delete.numberOfDaysToRetain will be used to identify login records that are eligible for deletion. When this value is set to false login records will be preserved forever.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not FusionAuth should delete the login records based upon this configuration. When true the loginRecordConfiguration.delete.numberOfDaysToRetain will be used to identify login records that are eligible for deletion. When this value is set to false login records will be preserved forever.\n" }, "exposedHeaders": { "type": "array", "items": { "type": "string" }, - "description": "The Access-Control-Expose-Headers response header values as described by MDN Access-Control-Expose-Headers.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Access-Control-Expose-Headers response header values as described by MDN Access-Control-Expose-Headers.\n" }, "preflightMaxAgeInSeconds": { "type": "integer", - "description": "The Access-Control-Max-Age response header values as described by MDN Access-Control-Max-Age.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Access-Control-Max-Age response header values as described by MDN Access-Control-Max-Age.\n" } }, "type": "object", @@ -2471,12 +1311,7 @@ "properties": { "numberToRetain": { "type": "integer", - "description": "The number of events to retain. Once the the number of event logs exceeds this configured value they will be deleted starting with the oldest event logs.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of events to retain. Once the the number of event logs exceeds this configured value they will be deleted starting with the oldest event logs.\n" } }, "type": "object" @@ -2484,12 +1319,7 @@ "fusionauth:index/FusionAuthSystemConfigurationLoginRecordConfiguration:FusionAuthSystemConfigurationLoginRecordConfiguration": { "properties": { "delete": { - "$ref": "#/types/fusionauth:index/FusionAuthSystemConfigurationLoginRecordConfigurationDelete:FusionAuthSystemConfigurationLoginRecordConfigurationDelete", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthSystemConfigurationLoginRecordConfigurationDelete:FusionAuthSystemConfigurationLoginRecordConfigurationDelete" } }, "type": "object" @@ -2498,21 +1328,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether or not FusionAuth should delete the login records based upon this configuration. When true the loginRecordConfiguration.delete.numberOfDaysToRetain will be used to identify login records that are eligible for deletion. When this value is set to false login records will be preserved forever.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether or not FusionAuth should delete the login records based upon this configuration. When true the loginRecordConfiguration.delete.numberOfDaysToRetain will be used to identify login records that are eligible for deletion. When this value is set to false login records will be preserved forever.\n" }, "numberOfDaysToRetain": { "type": "integer", - "description": "The number of days to retain login records.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of days to retain login records.\n" } }, "type": "object" @@ -2521,30 +1341,15 @@ "properties": { "headerColor": { "type": "string", - "description": "A hexadecimal color to override the default menu color in the user interface.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A hexadecimal color to override the default menu color in the user interface.\n" }, "logoUrl": { "type": "string", - "description": "A URL of a logo to override the default FusionAuth logo in the user interface.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A URL of a logo to override the default FusionAuth logo in the user interface.\n" }, "menuFontColor": { "type": "string", - "description": "A hexadecimal color to override the default menu font color in the user interface.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A hexadecimal color to override the default menu font color in the user interface.\n" } }, "type": "object" @@ -2553,12 +1358,7 @@ "properties": { "uiIpAccessControlListId": { "type": "string", - "description": "The Id of the IP Access Control List limiting access to all applications in this tenant.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the IP Access Control List limiting access to all applications in this tenant.\n" } }, "type": "object" @@ -2567,39 +1367,19 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "secretKey": { "type": "string", - "description": "The secret key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The secret key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.\n" }, "siteKey": { "type": "string", - "description": "The site key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The site key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.\n" }, "threshold": { "type": "number", - "description": "The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.\n" } }, "type": "object" @@ -2608,33 +1388,18 @@ "properties": { "connectorId": { "type": "string", - "description": "The identifier of the Connector to which this policy refers.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The identifier of the Connector to which this policy refers.\n" }, "domains": { "type": "array", "items": { "type": "string" }, - "description": "A list of email domains to which this connector should apply. A value of [\"*\"] indicates this connector applies to all users.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A list of email domains to which this connector should apply. A value of [\"*\"] indicates this connector applies to all users.\n" }, "migrate": { "type": "boolean", - "description": "If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.\n" } }, "type": "object" @@ -2646,256 +1411,116 @@ "additionalProperties": { "$ref": "pulumi.json#/Any" }, - "description": "The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.\n" }, "defaultFromEmail": { "type": "string", - "description": "The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn \u003cjared@piedpiper.com\u003e).\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn \u003cjared@piedpiper.com\u003e).\n" }, "defaultFromName": { "type": "string", - "description": "The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn \u003cjared@piedpiper.com\u003e).\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn \u003cjared@piedpiper.com\u003e).\n" }, "emailUpdateEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template that is used when a user is sent a forgot password email.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template that is used when a user is sent a forgot password email.\n" }, "emailVerifiedEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to verify user emails.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to verify user emails.\n" }, "forgotPasswordEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template that is used when a user is sent a forgot password email.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template that is used when a user is sent a forgot password email.\n" }, "host": { "type": "string", - "description": "The host name of the SMTP server that FusionAuth will use.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The host name of the SMTP server that FusionAuth will use.\n" }, "implicitEmailVerificationAllowed": { "type": "boolean", - "description": "When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When seto false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When seto false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.\n" }, "loginIdInUseOnCreateEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.\n" }, "loginIdInUseOnUpdateEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.\n" }, "loginNewDeviceEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when they log in on a new device.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when they log in on a new device.\n" }, "loginSuspiciousEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when a suspicious login occurs.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when a suspicious login occurs.\n" }, "password": { "type": "string", "description": "An optional password FusionAuth will use to authenticate with the SMTP server.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "passwordResetSuccessEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password habeen reset.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password habeen reset.\n" }, "passwordUpdateEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been rese\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been rese\n" }, "passwordlessEmailTemplateId": { "type": "string", - "description": "The Id of the Passwordless Email Template.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Passwordless Email Template.\n" }, "port": { "type": "integer", - "description": "The port of the SMTP server that FusionAuth will use.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The port of the SMTP server that FusionAuth will use.\n" }, "properties": { "type": "string", "description": "Additional Email Configuration in a properties file formatted String.\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "security": { "type": "string", - "description": "The type of security protocol FusionAuth will use when connecting to the SMTP server.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of security protocol FusionAuth will use when connecting to the SMTP server.\n" }, "setPasswordEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.\n" }, "twoFactorMethodAddEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when a MFA method has been added to their account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when a MFA method has been added to their account.\n" }, "twoFactorMethodRemoveEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.\n" }, "unverified": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantEmailConfigurationUnverified:FusionAuthTenantEmailConfigurationUnverified", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantEmailConfigurationUnverified:FusionAuthTenantEmailConfigurationUnverified" }, "username": { "type": "string", - "description": "An optional username FusionAuth will to authenticate with the SMTP server.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "An optional username FusionAuth will to authenticate with the SMTP server.\n" }, "verificationEmailTemplateId": { "type": "string", - "description": "The Id of the Email Template that is used to send the verification emails to users. These emails are used to verify that a user’s email address ivalid. If either the verifyEmail or verifyEmailWhenChanged fields are true this field is required.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the Email Template that is used to send the verification emails to users. These emails are used to verify that a user’s email address ivalid. If either the verifyEmail or verifyEmailWhenChanged fields are true this field is required.\n" }, "verificationStrategy": { "type": "string", - "description": "The process by which the user will verify their email address. Possible values are `ClickableLink` or `FormField`.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The process by which the user will verify their email address. Possible values are `ClickableLink` or `FormField`.\n" }, "verifyEmail": { "type": "boolean", - "description": "Whether the user’s email addresses are verified when the registers with your application.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether the user’s email addresses are verified when the registers with your application.\n" }, "verifyEmailWhenChanged": { "type": "boolean", - "description": "Whether the user’s email addresses are verified when the user changes them.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether the user’s email addresses are verified when the user changes them.\n" } }, "type": "object", @@ -2918,21 +1543,11 @@ "properties": { "allowEmailChangeWhenGated": { "type": "boolean", - "description": "When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.\n" }, "behavior": { "type": "string", - "description": "= (Optional) The behavior when detecting breaches at time of user login\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "= (Optional) The behavior when detecting breaches at time of user login\n" } }, "type": "object" @@ -2941,30 +1556,15 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "event": { "type": "string", - "description": "The event type\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The event type\n" }, "transactionType": { "type": "string", - "description": "The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks.\n" } }, "type": "object" @@ -2973,201 +1573,86 @@ "properties": { "authorizationGrantIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a OAuth authorization code in no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a OAuth authorization code in no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.\n" }, "changePasswordIdGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGenerator:FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGenerator:FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGenerator" }, "changePasswordIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.\n" }, "deviceCodeTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.\n" }, "deviceUserCodeIdGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGenerator:FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGenerator:FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGenerator" }, "emailVerificationIdGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGenerator:FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGenerator:FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGenerator" }, "emailVerificationIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.\n" }, "emailVerificationOneTimeCodeGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGenerator:FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGenerator:FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGenerator" }, "externalAuthenticationIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.\n" }, "oneTimePasswordTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.\n" }, "passwordlessLoginGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGenerator:FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGenerator:FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGenerator" }, "passwordlessLoginTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.\n" }, "pendingAccountLinkTimeToLiveInSeconds": { "type": "integer", - "description": "The number of seconds before the pending account link identifier is no longer valid to complete an account link request. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of seconds before the pending account link identifier is no longer valid to complete an account link request. Value must be greater than 0.\n" }, "registrationVerificationIdGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGenerator:FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGenerator:FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGenerator" }, "registrationVerificationIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.\n" }, "registrationVerificationOneTimeCodeGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGenerator:FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGenerator:FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGenerator" }, "samlV2AuthnRequestIdTtlSeconds": { "type": "integer", - "description": "The time in seconds that a SAML AuthN request will be eligible for use to authenticate with FusionAuth.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds that a SAML AuthN request will be eligible for use to authenticate with FusionAuth.\n" }, "setupPasswordIdGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGenerator:FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGenerator:FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGenerator" }, "setupPasswordIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.\n" }, "trustTokenTimeToLiveInSeconds": { "type": "integer", - "description": "The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.\n" }, "twoFactorIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.\n" }, "twoFactorOneTimeCodeIdGenerator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGenerator:FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGenerator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGenerator:FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGenerator" }, "twoFactorTrustIdTimeToLiveInSeconds": { "type": "integer", - "description": "The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.\n" } }, "type": "object", @@ -3198,21 +1683,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3225,21 +1700,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3252,21 +1717,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3279,21 +1734,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3305,21 +1750,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3331,22 +1766,12 @@ "fusionauth:index/FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGenerator:FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGenerator": { "properties": { "length": { - "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "type": "integer", + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3359,21 +1784,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3385,21 +1800,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3412,21 +1817,11 @@ "properties": { "length": { "type": "integer", - "description": "TThe length of the secure generator used for generating the the two factor code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "TThe length of the secure generator used for generating the the two factor code Id.\n" }, "type": { "type": "string", - "description": "The type of the secure generator used for generating the two factor one time code Id.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of the secure generator used for generating the two factor one time code Id.\n" } }, "type": "object", @@ -3438,48 +1833,23 @@ "properties": { "actionDuration": { "type": "integer", - "description": "The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.\n" }, "actionDurationUnit": { "type": "string", - "description": "The unit of time associated with a duration.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unit of time associated with a duration.\n" }, "resetCountInSeconds": { "type": "integer", - "description": "The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.\n" }, "tooManyAttempts": { "type": "integer", - "description": "The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.\n" }, "userActionId": { "type": "string", - "description": "The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.\n" } }, "type": "object" @@ -3488,93 +1858,43 @@ "properties": { "allowChildRegistrations": { "type": "boolean", - "description": "Whether to allow child registrations.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether to allow child registrations.\n" }, "confirmChildEmailTemplateId": { "type": "string", - "description": "The unique Id of the email template to use when confirming a child.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the email template to use when confirming a child.\n" }, "deleteOrphanedAccounts": { "type": "boolean", - "description": "Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.\n" }, "deleteOrphanedAccountsDays": { "type": "integer", - "description": "The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.\n" }, "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "familyRequestEmailTemplateId": { "type": "string", - "description": "The unique Id of the email template to use when a family request is made.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the email template to use when a family request is made.\n" }, "maximumChildAge": { "type": "integer", - "description": "The maximum age of a child. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The maximum age of a child. Value must be greater than 0.\n" }, "minimumOwnerAge": { "type": "integer", - "description": "The minimum age to be an owner. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The minimum age to be an owner. Value must be greater than 0.\n" }, "parentEmailRequired": { "type": "boolean", - "description": "Whether a parent email is required.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether a parent email is required.\n" }, "parentRegistrationEmailTemplateId": { "type": "string", - "description": "The unique Id of the email template to use for parent registration.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the email template to use for parent registration.\n" } }, "type": "object" @@ -3583,12 +1903,7 @@ "properties": { "adminUserFormId": { "type": "string", - "description": "The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.\n" } }, "type": "object", @@ -3604,75 +1919,35 @@ "properties": { "accessTokenKeyId": { "type": "string", - "description": "The unique id of the signing key used to sign the access token. Required prior to `1.30.0`.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique id of the signing key used to sign the access token. Required prior to `1.30.0`.\n" }, "idTokenKeyId": { "type": "string", - "description": "The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The unique id of the signing key used to sign the Id token. Required prior to `1.30.0`.\n" }, "refreshTokenExpirationPolicy": { "type": "string", - "description": "The refresh token expiration policy.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The refresh token expiration policy.\n" }, "refreshTokenRevocationPolicyOnLoginPrevented": { "type": "boolean", - "description": "When enabled, the refresh token will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the refresh token will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.\n" }, "refreshTokenRevocationPolicyOnPasswordChange": { "type": "boolean", - "description": "When enabled, the refresh token will be revoked when a user changes their password.\"\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled, the refresh token will be revoked when a user changes their password.\"\n" }, "refreshTokenTimeToLiveInMinutes": { "type": "integer", - "description": "The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.\n" }, "refreshTokenUsagePolicy": { "type": "string", - "description": "The refresh token usage policy.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The refresh token usage policy.\n" }, "timeToLiveInSeconds": { "type": "integer", - "description": "The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.\n" } }, "type": "object", @@ -3685,12 +1960,7 @@ "properties": { "requireAuthentication": { "type": "boolean", - "description": "Indicates whether to require an API key for the Login API when an `applicationId` is not provided. When an `applicationId` is provided to the Login API call, the application configuration will take precedence. In almost all cases, you will want to this to be `true`.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates whether to require an API key for the Login API when an `applicationId` is not provided. When an `applicationId` is provided to the Login API call, the application configuration will take precedence. In almost all cases, you will want to this to be `true`.\n" } }, "type": "object", @@ -3706,21 +1976,11 @@ "properties": { "days": { "type": "integer", - "description": "The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when systemConfiguration.maximumPasswordAge.enabled is set to true.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when systemConfiguration.maximumPasswordAge.enabled is set to true.\n" }, "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" } }, "type": "object" @@ -3729,21 +1989,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "seconds": { "type": "integer", - "description": "The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when systemConfiguration.minimumPasswordAge.enabled is set to true.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when systemConfiguration.minimumPasswordAge.enabled is set to true.\n" } }, "type": "object" @@ -3751,37 +2001,17 @@ "fusionauth:index/FusionAuthTenantMultiFactorConfiguration:FusionAuthTenantMultiFactorConfiguration": { "properties": { "authenticator": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantMultiFactorConfigurationAuthenticator:FusionAuthTenantMultiFactorConfigurationAuthenticator", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantMultiFactorConfigurationAuthenticator:FusionAuthTenantMultiFactorConfigurationAuthenticator" }, "email": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantMultiFactorConfigurationEmail:FusionAuthTenantMultiFactorConfigurationEmail", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantMultiFactorConfigurationEmail:FusionAuthTenantMultiFactorConfigurationEmail" }, "loginPolicy": { "type": "string", - "description": "When set to `Enabled` and a user has one or more two-factor methods configured, the user will be required to complete a two-factor challenge during login. When set to `Disabled`, even when a user has configured one or more two-factor methods, the user will not be required to complete a two-factor challenge during login.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When set to `Enabled` and a user has one or more two-factor methods configured, the user will be required to complete a two-factor challenge during login. When set to `Disabled`, even when a user has configured one or more two-factor methods, the user will not be required to complete a two-factor challenge during login.\n" }, "sms": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantMultiFactorConfigurationSms:FusionAuthTenantMultiFactorConfigurationSms", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantMultiFactorConfigurationSms:FusionAuthTenantMultiFactorConfigurationSms" } }, "type": "object", @@ -3799,12 +2029,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" } }, "type": "object" @@ -3813,21 +2038,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "templateId": { "type": "string", - "description": "The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request.\n" } }, "type": "object" @@ -3836,30 +2051,15 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "messengerId": { "type": "string", - "description": "The messenger that is used to deliver a SMS multi-factor authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The messenger that is used to deliver a SMS multi-factor authentication request.\n" }, "templateId": { "type": "string", - "description": "The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request.\n" } }, "type": "object" @@ -3868,12 +2068,7 @@ "properties": { "clientCredentialsAccessTokenPopulateLambdaId": { "type": "string", - "description": "The Id of a lambda that will be called to populate the JWT during a client credentials grant. **Note:** A paid edition of FusionAuth is required to utilize client credentials grant.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of a lambda that will be called to populate the JWT during a client credentials grant. **Note:** A paid edition of FusionAuth is required to utilize client credentials grant.\n" } }, "type": "object" @@ -3882,30 +2077,15 @@ "properties": { "encryptionScheme": { "type": "string", - "description": "The default method for encrypting the User’s password.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The default method for encrypting the User’s password.\n" }, "encryptionSchemeFactor": { "type": "integer", - "description": "The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.\n" }, "modifyEncryptionSchemeOnLogin": { "type": "boolean", - "description": "When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.\n" } }, "type": "object" @@ -3913,74 +2093,34 @@ "fusionauth:index/FusionAuthTenantPasswordValidationRules:FusionAuthTenantPasswordValidationRules": { "properties": { "breachDetection": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantPasswordValidationRulesBreachDetection:FusionAuthTenantPasswordValidationRulesBreachDetection", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantPasswordValidationRulesBreachDetection:FusionAuthTenantPasswordValidationRulesBreachDetection" }, "maxLength": { "type": "integer", - "description": "The maximum length of a password when a new user is created or a user requests a password change.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The maximum length of a password when a new user is created or a user requests a password change.\n" }, "minLength": { "type": "integer", - "description": "The minimum length of a password when a new user is created or a user requests a password change.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The minimum length of a password when a new user is created or a user requests a password change.\n" }, "rememberPreviousPasswords": { - "$ref": "#/types/fusionauth:index/FusionAuthTenantPasswordValidationRulesRememberPreviousPasswords:FusionAuthTenantPasswordValidationRulesRememberPreviousPasswords", - "language": { - "python": { - "mapCase": false - } - } + "$ref": "#/types/fusionauth:index/FusionAuthTenantPasswordValidationRulesRememberPreviousPasswords:FusionAuthTenantPasswordValidationRulesRememberPreviousPasswords" }, "requireNonAlpha": { "type": "boolean", - "description": "Whether to force the user to use at least one non-alphanumeric character.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether to force the user to use at least one non-alphanumeric character.\n" }, "requireNumber": { "type": "boolean", - "description": "Whether to force the user to use at least one number.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether to force the user to use at least one number.\n" }, "requiredMixedCase": { "type": "boolean", - "description": "Whether to force the user to use at least one uppercase and one lowercase character.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Whether to force the user to use at least one uppercase and one lowercase character.\n" }, "validateOnLogin": { "type": "boolean", - "description": "When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.\n" } }, "type": "object", @@ -3996,39 +2136,19 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "matchMode": { "type": "string", - "description": "The level of severity where Reactor will consider a breach.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The level of severity where Reactor will consider a breach.\n" }, "notifyUserEmailTemplateId": { "type": "string", - "description": "The Id of the email template to use when notifying user of breached password. Required if tenant.passwordValidationRules.breachDetection.onLogin is set to NotifyUser.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The Id of the email template to use when notifying user of breached password. Required if tenant.passwordValidationRules.breachDetection.onLogin is set to NotifyUser.\n" }, "onLogin": { "type": "string", - "description": "The behavior when detecting breaches at time of user login\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The behavior when detecting breaches at time of user login\n" } }, "type": "object" @@ -4037,21 +2157,11 @@ "properties": { "count": { "type": "integer", - "description": "The number of previous passwords to remember. Value must be greater than 0.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The number of previous passwords to remember. Value must be greater than 0.\n" }, "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" } }, "type": "object" @@ -4060,20 +2170,10 @@ "properties": { "unverifiedEnabled": { "type": "boolean", - "description": "Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.\n" }, "unverifiedNumberOfDaysToRetain": { - "type": "integer", - "language": { - "python": { - "mapCase": false - } - } + "type": "integer" } }, "type": "object" @@ -4082,12 +2182,7 @@ "properties": { "unique": { "$ref": "#/types/fusionauth:index/FusionAuthTenantUsernameConfigurationUnique:FusionAuthTenantUsernameConfigurationUnique", - "description": "Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.\n" } }, "type": "object" @@ -4096,39 +2191,19 @@ "properties": { "enabled": { "type": "boolean", - "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When true, FusionAuth will handle username collisions by generating a random suffix.\n" }, "numberOfDigits": { "type": "integer", - "description": "The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive.\n" }, "separator": { "type": "string", - "description": "A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non-alphanumeric ASCII character.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non-alphanumeric ASCII character.\n" }, "strategy": { "type": "string", - "description": "When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.\n" } }, "type": "object" @@ -4140,21 +2215,11 @@ "additionalProperties": { "$ref": "pulumi.json#/Any" }, - "description": "A mapping of localized names for this User Action Option. The key is the Locale and the value is the name of the User Action Option for that language.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A mapping of localized names for this User Action Option. The key is the Locale and the value is the name of the User Action Option for that language.\n" }, "name": { "type": "string", - "description": "The name of this User Action Option.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The name of this User Action Option.\n" } }, "type": "object", @@ -4166,75 +2231,35 @@ "properties": { "authenticatorAlgorithm": { "type": "string", - "description": "The algorithm used by the TOTP authenticator. With the current implementation, this will always be HmacSHA1.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The algorithm used by the TOTP authenticator. With the current implementation, this will always be HmacSHA1.\n" }, "authenticatorCodeLength": { "type": "integer", - "description": "The length of code generated by the TOTP. With the current implementation, this will always be 6.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The length of code generated by the TOTP. With the current implementation, this will always be 6.\n" }, "authenticatorTimeStep": { "type": "integer", - "description": "The time-step size in seconds. With the current implementation, this will always be 30.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The time-step size in seconds. With the current implementation, this will always be 30.\n" }, "email": { "type": "string", - "description": "The value of the email address for this method.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The value of the email address for this method.\n" }, "method": { "type": "string", - "description": "The type of this method. There will also be an object with the same value containing additional information about this method.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The type of this method. There will also be an object with the same value containing additional information about this method.\n" }, "mobilePhone": { "type": "string", - "description": "The value of the mobile phone for this method.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "The value of the mobile phone for this method.\n" }, "secret": { "type": "string", "description": "A base64 encoded secret\n", - "language": { - "python": { - "mapCase": false - } - }, "secret": true }, "twoFactorMethodId": { - "type": "string", - "language": { - "python": { - "mapCase": false - } - } + "type": "string" } }, "type": "object", @@ -4253,363 +2278,163 @@ "properties": { "auditLogCreate": { "type": "boolean", - "description": "When an audit log is created\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When an audit log is created\n" }, "eventLogCreate": { "type": "boolean", - "description": "When an event log is created\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When an event log is created\n" }, "jwtPublicKeyUpdate": { "type": "boolean", - "description": "When a JWT RSA Public / Private keypair may have been changed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a JWT RSA Public / Private keypair may have been changed\n" }, "jwtRefresh": { "type": "boolean", - "description": "When an access token is refreshed using a refresh token\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When an access token is refreshed using a refresh token\n" }, "jwtRefreshTokenRevoke": { "type": "boolean", - "description": "When a JWT Refresh Token is revoked\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a JWT Refresh Token is revoked\n" }, "kickstartSuccess": { "type": "boolean", - "description": "When kickstart has successfully completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When kickstart has successfully completed\n" }, "userAction": { "type": "boolean", - "description": "When a user action is triggered\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user action is triggered\n" }, "userBulkCreate": { "type": "boolean", - "description": "When multiple users are created in bulk (i.e. during an import)\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When multiple users are created in bulk (i.e. during an import)\n" }, "userCreate": { "type": "boolean", - "description": "When a user is created\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user is created\n" }, "userCreateComplete": { "type": "boolean", - "description": "When a user create transaction has completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user create transaction has completed\n" }, "userDeactivate": { "type": "boolean", - "description": "When a user is deactivated\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user is deactivated\n" }, "userDelete": { "type": "boolean", - "description": "When a user is deleted\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user is deleted\n" }, "userDeleteComplete": { "type": "boolean", - "description": "When a user delete transaction has completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user delete transaction has completed\n" }, "userEmailUpdate": { "type": "boolean", - "description": "When a user updates their email address\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user updates their email address\n" }, "userEmailVerified": { "type": "boolean", - "description": "When a user verifies their email address\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user verifies their email address\n" }, "userIdentityProviderLink": { "type": "boolean", - "description": "When a user is linked to an identity provider\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user is linked to an identity provider\n" }, "userIdentityProviderUnlink": { "type": "boolean", - "description": "When a link to an identity provider is removed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a link to an identity provider is removed\n" }, "userLoginFailed": { "type": "boolean", - "description": "When a user fails a login request\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user fails a login request\n" }, "userLoginIdDuplicateCreate": { "type": "boolean", - "description": "When a request to create a user with a login Id (email or username) which is already in use has been received\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a request to create a user with a login Id (email or username) which is already in use has been received\n" }, "userLoginIdDuplicateUpdate": { "type": "boolean", - "description": "When a request to update a user and change their login Id (email or username) to one that is already in use has been received\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a request to update a user and change their login Id (email or username) to one that is already in use has been received\n" }, "userLoginNewDevice": { "type": "boolean", - "description": "When a user begins a login request with a new device\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user begins a login request with a new device\n" }, "userLoginSuccess": { "type": "boolean", - "description": "When a user completes a login request\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user completes a login request\n" }, "userLoginSuspicious": { "type": "boolean", - "description": "When a user logs in and is considered to be a potential threat\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user logs in and is considered to be a potential threat\n" }, "userPasswordBreach": { "type": "boolean", - "description": "When Reactor detects a user is using a potentially breached password (requires an activated license)\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When Reactor detects a user is using a potentially breached password (requires an activated license)\n" }, "userPasswordResetSend": { "type": "boolean", - "description": "When a forgot password email has been sent to a user\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a forgot password email has been sent to a user\n" }, "userPasswordResetStart": { "type": "boolean", - "description": "When the process to reset a user password has started\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When the process to reset a user password has started\n" }, "userPasswordResetSuccess": { "type": "boolean", - "description": "When a user has successfully reset their password\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user has successfully reset their password\n" }, "userPasswordUpdate": { "type": "boolean", - "description": "When a user has updated their password\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user has updated their password\n" }, "userReactivate": { "type": "boolean", - "description": "When a user is reactivated\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user is reactivated\n" }, "userRegistrationCreate": { "type": "boolean", - "description": "When a user registration is created\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user registration is created\n" }, "userRegistrationCreateComplete": { "type": "boolean", - "description": "When a user registration create transaction has completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user registration create transaction has completed\n" }, "userRegistrationDelete": { "type": "boolean", - "description": "When a user registration is deleted\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user registration is deleted\n" }, "userRegistrationDeleteComplete": { "type": "boolean", - "description": "When a user registration delete transaction has completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user registration delete transaction has completed\n" }, "userRegistrationUpdate": { "type": "boolean", - "description": "When a user registration is updated\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user registration is updated\n" }, "userRegistrationUpdateComplete": { "type": "boolean", - "description": "When a user registration update transaction has completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user registration update transaction has completed\n" }, "userRegistrationVerified": { "type": "boolean", - "description": "When a user completes registration verification\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user completes registration verification\n" }, "userTwoFactorMethodAdd": { "type": "boolean", - "description": "When a user has added a two-factor method\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user has added a two-factor method\n" }, "userTwoFactorMethodRemove": { "type": "boolean", - "description": "When a user has removed a two-factor method\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user has removed a two-factor method\n" }, "userUpdate": { "type": "boolean", - "description": "When a user is updated\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user is updated\n" }, "userUpdateComplete": { "type": "boolean", - "description": "When a user update transaction has completed\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "When a user update transaction has completed\n" } }, "type": "object" @@ -4618,21 +2443,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "Determines if user input should be validated.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "Determines if user input should be validated.\n" }, "expression": { "type": "string", - "description": "A regular expression used to validate user input. Must be a valid regular expression pattern.\n", - "language": { - "python": { - "mapCase": false - } - } + "description": "A regular expression used to validate user input. Must be a valid regular expression pattern.\n" } }, "type": "object" @@ -4643,11 +2458,6 @@ "type": "array", "items": { "type": "string" - }, - "language": { - "python": { - "mapCase": false - } } } }, @@ -4688,7 +2498,7 @@ }, "resources": { "fusionauth:index/fusionAuthApiKey:FusionAuthApiKey": { - "description": "## # API Key\n\nThe FusionAuth APIs are primarily secured using API keys. This API can only be accessed using an API key that is set as a keyManager. In order to retrieve, update or delete an API key, an API key with equal or greater permissions must be used. A \"tenant-scoped\" API key can retrieve, create, update or delete an API key for the same tenant. This page describes APIs that are used to manage API keys.\n\n\n[API Key](https://fusionauth.io/docs/v1/tech/apis/api-keys/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthApiKey(\"example\", {\n description: \"my super secret key\",\n key: \"super-secret-key\",\n permissionsEndpoints: [{\n \"delete\": true,\n endpoint: \"/api/application\",\n get: true,\n patch: true,\n post: true,\n put: true,\n }],\n tenantId: \"94f751c5-4883-4684-a817-6b106778edec\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthApiKey(\"example\",\n description=\"my super secret key\",\n key=\"super-secret-key\",\n permissions_endpoints=[fusionauth.FusionAuthApiKeyPermissionsEndpointArgs(\n delete=True,\n endpoint=\"/api/application\",\n get=True,\n patch=True,\n post=True,\n put=True,\n )],\n tenant_id=\"94f751c5-4883-4684-a817-6b106778edec\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthApiKey(\"example\", new()\n {\n Description = \"my super secret key\",\n Key = \"super-secret-key\",\n PermissionsEndpoints = new[]\n {\n new Fusionauth.Inputs.FusionAuthApiKeyPermissionsEndpointArgs\n {\n Delete = true,\n Endpoint = \"/api/application\",\n Get = true,\n Patch = true,\n Post = true,\n Put = true,\n },\n },\n TenantId = \"94f751c5-4883-4684-a817-6b106778edec\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApiKey(ctx, \"example\", \u0026fusionauth.FusionAuthApiKeyArgs{\n\t\t\tDescription: pulumi.String(\"my super secret key\"),\n\t\t\tKey: pulumi.String(\"super-secret-key\"),\n\t\t\tPermissionsEndpoints: fusionauth.FusionAuthApiKeyPermissionsEndpointArray{\n\t\t\t\t\u0026fusionauth.FusionAuthApiKeyPermissionsEndpointArgs{\n\t\t\t\t\tDelete: pulumi.Bool(true),\n\t\t\t\t\tEndpoint: pulumi.String(\"/api/application\"),\n\t\t\t\t\tGet: pulumi.Bool(true),\n\t\t\t\t\tPatch: pulumi.Bool(true),\n\t\t\t\t\tPost: pulumi.Bool(true),\n\t\t\t\t\tPut: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTenantId: pulumi.String(\"94f751c5-4883-4684-a817-6b106778edec\"),\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.fusionauth.FusionAuthApiKey;\nimport com.pulumi.fusionauth.FusionAuthApiKeyArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApiKeyPermissionsEndpointArgs;\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 example = new FusionAuthApiKey(\"example\", FusionAuthApiKeyArgs.builder() \n .description(\"my super secret key\")\n .key(\"super-secret-key\")\n .permissionsEndpoints(FusionAuthApiKeyPermissionsEndpointArgs.builder()\n .delete(true)\n .endpoint(\"/api/application\")\n .get(true)\n .patch(true)\n .post(true)\n .put(true)\n .build())\n .tenantId(\"94f751c5-4883-4684-a817-6b106778edec\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthApiKey\n properties:\n description: my super secret key\n key: super-secret-key\n permissionsEndpoints:\n - delete: true\n endpoint: /api/application\n get: true\n patch: true\n post: true\n put: true\n tenantId: 94f751c5-4883-4684-a817-6b106778edec\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # API Key\n\nThe FusionAuth APIs are primarily secured using API keys. This API can only be accessed using an API key that is set as a keyManager. In order to retrieve, update or delete an API key, an API key with equal or greater permissions must be used. A \"tenant-scoped\" API key can retrieve, create, update or delete an API key for the same tenant. This page describes APIs that are used to manage API keys.\n\n\n[API Key](https://fusionauth.io/docs/v1/tech/apis/api-keys/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthApiKey(\"example\", {\n description: \"my super secret key\",\n key: \"super-secret-key\",\n permissionsEndpoints: [{\n \"delete\": true,\n endpoint: \"/api/application\",\n get: true,\n patch: true,\n post: true,\n put: true,\n }],\n tenantId: \"94f751c5-4883-4684-a817-6b106778edec\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthApiKey(\"example\",\n description=\"my super secret key\",\n key=\"super-secret-key\",\n permissions_endpoints=[fusionauth.FusionAuthApiKeyPermissionsEndpointArgs(\n delete=True,\n endpoint=\"/api/application\",\n get=True,\n patch=True,\n post=True,\n put=True,\n )],\n tenant_id=\"94f751c5-4883-4684-a817-6b106778edec\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthApiKey(\"example\", new()\n {\n Description = \"my super secret key\",\n Key = \"super-secret-key\",\n PermissionsEndpoints = new[]\n {\n new Fusionauth.Inputs.FusionAuthApiKeyPermissionsEndpointArgs\n {\n Delete = true,\n Endpoint = \"/api/application\",\n Get = true,\n Patch = true,\n Post = true,\n Put = true,\n },\n },\n TenantId = \"94f751c5-4883-4684-a817-6b106778edec\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApiKey(ctx, \"example\", \u0026fusionauth.FusionAuthApiKeyArgs{\n\t\t\tDescription: pulumi.String(\"my super secret key\"),\n\t\t\tKey: pulumi.String(\"super-secret-key\"),\n\t\t\tPermissionsEndpoints: fusionauth.FusionAuthApiKeyPermissionsEndpointArray{\n\t\t\t\t\u0026fusionauth.FusionAuthApiKeyPermissionsEndpointArgs{\n\t\t\t\t\tDelete: pulumi.Bool(true),\n\t\t\t\t\tEndpoint: pulumi.String(\"/api/application\"),\n\t\t\t\t\tGet: pulumi.Bool(true),\n\t\t\t\t\tPatch: pulumi.Bool(true),\n\t\t\t\t\tPost: pulumi.Bool(true),\n\t\t\t\t\tPut: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTenantId: pulumi.String(\"94f751c5-4883-4684-a817-6b106778edec\"),\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.fusionauth.FusionAuthApiKey;\nimport com.pulumi.fusionauth.FusionAuthApiKeyArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApiKeyPermissionsEndpointArgs;\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 example = new FusionAuthApiKey(\"example\", FusionAuthApiKeyArgs.builder() \n .description(\"my super secret key\")\n .key(\"super-secret-key\")\n .permissionsEndpoints(FusionAuthApiKeyPermissionsEndpointArgs.builder()\n .delete(true)\n .endpoint(\"/api/application\")\n .get(true)\n .patch(true)\n .post(true)\n .put(true)\n .build())\n .tenantId(\"94f751c5-4883-4684-a817-6b106778edec\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthApiKey\n properties:\n description: my super secret key\n key: super-secret-key\n permissionsEndpoints:\n - delete: true\n endpoint: /api/application\n get: true\n patch: true\n post: true\n put: true\n tenantId: 94f751c5-4883-4684-a817-6b106778edec\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "description": { "type": "string", @@ -4792,7 +2602,7 @@ } }, "fusionauth:index/fusionAuthApplication:FusionAuthApplication": { - "description": "## # Application Resource\n\n[Applications API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst forum = new fusionauth.FusionAuthApplication(\"forum\", {\n tenantId: fusionauth_tenant.portal.id,\n authenticationTokenConfigurationEnabled: false,\n formConfiguration: {\n adminRegistrationFormId: fusionauth_form.admin_registration.id,\n selfServiceFormId: fusionauth_form.self_service.id,\n },\n jwtConfiguration: {\n accessTokenId: fusionauth_key.access_token.id,\n enabled: true,\n idTokenKeyId: fusionauth_key.id_token.id,\n refreshTokenTtlMinutes: 43200,\n ttlSeconds: 3600,\n },\n lambdaConfiguration: {\n accessTokenPopulateId: fusionauth_lambda.token_populate.id,\n idTokenPopulateId: fusionauth_lambda.id_token_populate.id,\n },\n loginConfiguration: {\n allowTokenRefresh: false,\n generateRefreshTokens: false,\n requireAuthentication: true,\n },\n oauthConfiguration: {\n authorizedOriginUrls: [\"http://www.example.com/oauth-callback\"],\n authorizedUrlValidationPolicy: \"ExactMatch\",\n enabledGrants: [\n \"authorization_code\",\n \"implicit\",\n ],\n generateRefreshTokens: false,\n logoutBehavior: \"AllApplications\",\n logoutUrl: \"http://www.example.com/logout\",\n requireClientAuthentication: false,\n },\n registrationConfiguration: {\n birthDate: {\n enabled: false,\n required: false,\n },\n confirmPassword: false,\n enabled: false,\n firstName: {\n enabled: false,\n required: false,\n },\n fullName: {\n enabled: false,\n required: false,\n },\n lastName: {\n enabled: false,\n required: false,\n },\n loginIdType: \"\",\n middleName: {\n enabled: false,\n required: false,\n },\n mobilePhone: {\n enabled: false,\n required: false,\n },\n type: \"\",\n },\n passwordlessConfigurationEnabled: false,\n registrationDeletePolicy: {\n unverifiedEnabled: true,\n unverifiedNumberOfDaysToRetain: 30,\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nforum = fusionauth.FusionAuthApplication(\"forum\",\n tenant_id=fusionauth_tenant[\"portal\"][\"id\"],\n authentication_token_configuration_enabled=False,\n form_configuration=fusionauth.FusionAuthApplicationFormConfigurationArgs(\n admin_registration_form_id=fusionauth_form[\"admin_registration\"][\"id\"],\n self_service_form_id=fusionauth_form[\"self_service\"][\"id\"],\n ),\n jwt_configuration=fusionauth.FusionAuthApplicationJwtConfigurationArgs(\n access_token_id=fusionauth_key[\"access_token\"][\"id\"],\n enabled=True,\n id_token_key_id=fusionauth_key[\"id_token\"][\"id\"],\n refresh_token_ttl_minutes=43200,\n ttl_seconds=3600,\n ),\n lambda_configuration=fusionauth.FusionAuthApplicationLambdaConfigurationArgs(\n access_token_populate_id=fusionauth_lambda[\"token_populate\"][\"id\"],\n id_token_populate_id=fusionauth_lambda[\"id_token_populate\"][\"id\"],\n ),\n login_configuration=fusionauth.FusionAuthApplicationLoginConfigurationArgs(\n allow_token_refresh=False,\n generate_refresh_tokens=False,\n require_authentication=True,\n ),\n oauth_configuration=fusionauth.FusionAuthApplicationOauthConfigurationArgs(\n authorized_origin_urls=[\"http://www.example.com/oauth-callback\"],\n authorized_url_validation_policy=\"ExactMatch\",\n enabled_grants=[\n \"authorization_code\",\n \"implicit\",\n ],\n generate_refresh_tokens=False,\n logout_behavior=\"AllApplications\",\n logout_url=\"http://www.example.com/logout\",\n require_client_authentication=False,\n ),\n registration_configuration=fusionauth.FusionAuthApplicationRegistrationConfigurationArgs(\n birth_date=fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs(\n enabled=False,\n required=False,\n ),\n confirm_password=False,\n enabled=False,\n first_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs(\n enabled=False,\n required=False,\n ),\n full_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs(\n enabled=False,\n required=False,\n ),\n last_name=fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs(\n enabled=False,\n required=False,\n ),\n login_id_type=\"\",\n middle_name=fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs(\n enabled=False,\n required=False,\n ),\n mobile_phone=fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs(\n enabled=False,\n required=False,\n ),\n type=\"\",\n ),\n passwordless_configuration_enabled=False,\n registration_delete_policy=fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs(\n unverified_enabled=True,\n unverified_number_of_days_to_retain=30,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var forum = new Fusionauth.FusionAuthApplication(\"forum\", new()\n {\n TenantId = fusionauth_tenant.Portal.Id,\n AuthenticationTokenConfigurationEnabled = false,\n FormConfiguration = new Fusionauth.Inputs.FusionAuthApplicationFormConfigurationArgs\n {\n AdminRegistrationFormId = fusionauth_form.Admin_registration.Id,\n SelfServiceFormId = fusionauth_form.Self_service.Id,\n },\n JwtConfiguration = new Fusionauth.Inputs.FusionAuthApplicationJwtConfigurationArgs\n {\n AccessTokenId = fusionauth_key.Access_token.Id,\n Enabled = true,\n IdTokenKeyId = fusionauth_key.Id_token.Id,\n RefreshTokenTtlMinutes = 43200,\n TtlSeconds = 3600,\n },\n LambdaConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLambdaConfigurationArgs\n {\n AccessTokenPopulateId = fusionauth_lambda.Token_populate.Id,\n IdTokenPopulateId = fusionauth_lambda.Id_token_populate.Id,\n },\n LoginConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLoginConfigurationArgs\n {\n AllowTokenRefresh = false,\n GenerateRefreshTokens = false,\n RequireAuthentication = true,\n },\n OauthConfiguration = new Fusionauth.Inputs.FusionAuthApplicationOauthConfigurationArgs\n {\n AuthorizedOriginUrls = new[]\n {\n \"http://www.example.com/oauth-callback\",\n },\n AuthorizedUrlValidationPolicy = \"ExactMatch\",\n EnabledGrants = new[]\n {\n \"authorization_code\",\n \"implicit\",\n },\n GenerateRefreshTokens = false,\n LogoutBehavior = \"AllApplications\",\n LogoutUrl = \"http://www.example.com/logout\",\n RequireClientAuthentication = false,\n },\n RegistrationConfiguration = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationArgs\n {\n BirthDate = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs\n {\n Enabled = false,\n Required = false,\n },\n ConfirmPassword = false,\n Enabled = false,\n FirstName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs\n {\n Enabled = false,\n Required = false,\n },\n FullName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LastName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LoginIdType = \"\",\n MiddleName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs\n {\n Enabled = false,\n Required = false,\n },\n MobilePhone = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs\n {\n Enabled = false,\n Required = false,\n },\n Type = \"\",\n },\n PasswordlessConfigurationEnabled = false,\n RegistrationDeletePolicy = new Fusionauth.Inputs.FusionAuthApplicationRegistrationDeletePolicyArgs\n {\n UnverifiedEnabled = true,\n UnverifiedNumberOfDaysToRetain = 30,\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApplication(ctx, \"forum\", \u0026fusionauth.FusionAuthApplicationArgs{\n\t\t\tTenantId: pulumi.Any(fusionauth_tenant.Portal.Id),\n\t\t\tAuthenticationTokenConfigurationEnabled: pulumi.Bool(false),\n\t\t\tFormConfiguration: \u0026fusionauth.FusionAuthApplicationFormConfigurationArgs{\n\t\t\t\tAdminRegistrationFormId: pulumi.Any(fusionauth_form.Admin_registration.Id),\n\t\t\t\tSelfServiceFormId: pulumi.Any(fusionauth_form.Self_service.Id),\n\t\t\t},\n\t\t\tJwtConfiguration: \u0026fusionauth.FusionAuthApplicationJwtConfigurationArgs{\n\t\t\t\tAccessTokenId: pulumi.Any(fusionauth_key.Access_token.Id),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tIdTokenKeyId: pulumi.Any(fusionauth_key.Id_token.Id),\n\t\t\t\tRefreshTokenTtlMinutes: pulumi.Int(43200),\n\t\t\t\tTtlSeconds: pulumi.Int(3600),\n\t\t\t},\n\t\t\tLambdaConfiguration: \u0026fusionauth.FusionAuthApplicationLambdaConfigurationArgs{\n\t\t\t\tAccessTokenPopulateId: pulumi.Any(fusionauth_lambda.Token_populate.Id),\n\t\t\t\tIdTokenPopulateId: pulumi.Any(fusionauth_lambda.Id_token_populate.Id),\n\t\t\t},\n\t\t\tLoginConfiguration: \u0026fusionauth.FusionAuthApplicationLoginConfigurationArgs{\n\t\t\t\tAllowTokenRefresh: pulumi.Bool(false),\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tRequireAuthentication: pulumi.Bool(true),\n\t\t\t},\n\t\t\tOauthConfiguration: \u0026fusionauth.FusionAuthApplicationOauthConfigurationArgs{\n\t\t\t\tAuthorizedOriginUrls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://www.example.com/oauth-callback\"),\n\t\t\t\t},\n\t\t\t\tAuthorizedUrlValidationPolicy: pulumi.String(\"ExactMatch\"),\n\t\t\t\tEnabledGrants: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"authorization_code\"),\n\t\t\t\t\tpulumi.String(\"implicit\"),\n\t\t\t\t},\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tLogoutBehavior: pulumi.String(\"AllApplications\"),\n\t\t\t\tLogoutUrl: pulumi.String(\"http://www.example.com/logout\"),\n\t\t\t\tRequireClientAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRegistrationConfiguration: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationArgs{\n\t\t\t\tBirthDate: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tConfirmPassword: pulumi.Bool(false),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tFirstName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tFullName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLastName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLoginIdType: pulumi.String(\"\"),\n\t\t\t\tMiddleName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tMobilePhone: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tType: pulumi.String(\"\"),\n\t\t\t},\n\t\t\tPasswordlessConfigurationEnabled: pulumi.Bool(false),\n\t\t\tRegistrationDeletePolicy: \u0026fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs{\n\t\t\t\tUnverifiedEnabled: pulumi.Bool(true),\n\t\t\t\tUnverifiedNumberOfDaysToRetain: pulumi.Int(30),\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.fusionauth.FusionAuthApplication;\nimport com.pulumi.fusionauth.FusionAuthApplicationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationFormConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationJwtConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLambdaConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLoginConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationOauthConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationDeletePolicyArgs;\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 forum = new FusionAuthApplication(\"forum\", FusionAuthApplicationArgs.builder() \n .tenantId(fusionauth_tenant.portal().id())\n .authenticationTokenConfigurationEnabled(false)\n .formConfiguration(FusionAuthApplicationFormConfigurationArgs.builder()\n .adminRegistrationFormId(fusionauth_form.admin_registration().id())\n .selfServiceFormId(fusionauth_form.self_service().id())\n .build())\n .jwtConfiguration(FusionAuthApplicationJwtConfigurationArgs.builder()\n .accessTokenId(fusionauth_key.access_token().id())\n .enabled(true)\n .idTokenKeyId(fusionauth_key.id_token().id())\n .refreshTokenTtlMinutes(43200)\n .ttlSeconds(3600)\n .build())\n .lambdaConfiguration(FusionAuthApplicationLambdaConfigurationArgs.builder()\n .accessTokenPopulateId(fusionauth_lambda.token_populate().id())\n .idTokenPopulateId(fusionauth_lambda.id_token_populate().id())\n .build())\n .loginConfiguration(FusionAuthApplicationLoginConfigurationArgs.builder()\n .allowTokenRefresh(false)\n .generateRefreshTokens(false)\n .requireAuthentication(true)\n .build())\n .oauthConfiguration(FusionAuthApplicationOauthConfigurationArgs.builder()\n .authorizedOriginUrls(\"http://www.example.com/oauth-callback\")\n .authorizedUrlValidationPolicy(\"ExactMatch\")\n .enabledGrants( \n \"authorization_code\",\n \"implicit\")\n .generateRefreshTokens(false)\n .logoutBehavior(\"AllApplications\")\n .logoutUrl(\"http://www.example.com/logout\")\n .requireClientAuthentication(false)\n .build())\n .registrationConfiguration(FusionAuthApplicationRegistrationConfigurationArgs.builder()\n .birthDate(FusionAuthApplicationRegistrationConfigurationBirthDateArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .confirmPassword(false)\n .enabled(false)\n .firstName(FusionAuthApplicationRegistrationConfigurationFirstNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .fullName(FusionAuthApplicationRegistrationConfigurationFullNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .lastName(FusionAuthApplicationRegistrationConfigurationLastNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .loginIdType(\"\")\n .middleName(FusionAuthApplicationRegistrationConfigurationMiddleNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .mobilePhone(FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .type(\"\")\n .build())\n .passwordlessConfigurationEnabled(false)\n .registrationDeletePolicy(FusionAuthApplicationRegistrationDeletePolicyArgs.builder()\n .unverifiedEnabled(true)\n .unverifiedNumberOfDaysToRetain(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n forum:\n type: fusionauth:FusionAuthApplication\n properties:\n tenantId: ${fusionauth_tenant.portal.id}\n authenticationTokenConfigurationEnabled: false\n formConfiguration:\n adminRegistrationFormId: ${fusionauth_form.admin_registration.id}\n selfServiceFormId: ${fusionauth_form.self_service.id}\n jwtConfiguration:\n accessTokenId: ${fusionauth_key.access_token.id}\n enabled: true\n idTokenKeyId: ${fusionauth_key.id_token.id}\n refreshTokenTtlMinutes: 43200\n ttlSeconds: 3600\n lambdaConfiguration:\n accessTokenPopulateId: ${fusionauth_lambda.token_populate.id}\n idTokenPopulateId: ${fusionauth_lambda.id_token_populate.id}\n loginConfiguration:\n allowTokenRefresh: false\n generateRefreshTokens: false\n requireAuthentication: true\n oauthConfiguration:\n authorizedOriginUrls:\n - http://www.example.com/oauth-callback\n authorizedUrlValidationPolicy: ExactMatch\n enabledGrants:\n - authorization_code\n - implicit\n generateRefreshTokens: false\n logoutBehavior: AllApplications\n logoutUrl: http://www.example.com/logout\n requireClientAuthentication: false\n registrationConfiguration:\n birthDate:\n enabled: false\n required: false\n confirmPassword: false\n enabled: false\n firstName:\n enabled: false\n required: false\n fullName:\n enabled: false\n required: false\n lastName:\n enabled: false\n required: false\n loginIdType:\n middleName:\n enabled: false\n required: false\n mobilePhone:\n enabled: false\n required: false\n type:\n passwordlessConfigurationEnabled: false\n registrationDeletePolicy:\n unverifiedEnabled: true\n unverifiedNumberOfDaysToRetain: 30\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Application Resource\n\n[Applications API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst forum = new fusionauth.FusionAuthApplication(\"forum\", {\n tenantId: fusionauth_tenant.portal.id,\n authenticationTokenConfigurationEnabled: false,\n formConfiguration: {\n adminRegistrationFormId: fusionauth_form.admin_registration.id,\n selfServiceFormId: fusionauth_form.self_service.id,\n },\n jwtConfiguration: {\n accessTokenId: fusionauth_key.access_token.id,\n enabled: true,\n idTokenKeyId: fusionauth_key.id_token.id,\n refreshTokenTtlMinutes: 43200,\n ttlSeconds: 3600,\n },\n lambdaConfiguration: {\n accessTokenPopulateId: fusionauth_lambda.token_populate.id,\n idTokenPopulateId: fusionauth_lambda.id_token_populate.id,\n },\n loginConfiguration: {\n allowTokenRefresh: false,\n generateRefreshTokens: false,\n requireAuthentication: true,\n },\n oauthConfiguration: {\n authorizedOriginUrls: [\"http://www.example.com/oauth-callback\"],\n authorizedUrlValidationPolicy: \"ExactMatch\",\n enabledGrants: [\n \"authorization_code\",\n \"implicit\",\n ],\n generateRefreshTokens: false,\n logoutBehavior: \"AllApplications\",\n logoutUrl: \"http://www.example.com/logout\",\n requireClientAuthentication: false,\n },\n registrationConfiguration: {\n birthDate: {\n enabled: false,\n required: false,\n },\n confirmPassword: false,\n enabled: false,\n firstName: {\n enabled: false,\n required: false,\n },\n fullName: {\n enabled: false,\n required: false,\n },\n lastName: {\n enabled: false,\n required: false,\n },\n loginIdType: \"\",\n middleName: {\n enabled: false,\n required: false,\n },\n mobilePhone: {\n enabled: false,\n required: false,\n },\n type: \"\",\n },\n passwordlessConfigurationEnabled: false,\n registrationDeletePolicy: {\n unverifiedEnabled: true,\n unverifiedNumberOfDaysToRetain: 30,\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nforum = fusionauth.FusionAuthApplication(\"forum\",\n tenant_id=fusionauth_tenant[\"portal\"][\"id\"],\n authentication_token_configuration_enabled=False,\n form_configuration=fusionauth.FusionAuthApplicationFormConfigurationArgs(\n admin_registration_form_id=fusionauth_form[\"admin_registration\"][\"id\"],\n self_service_form_id=fusionauth_form[\"self_service\"][\"id\"],\n ),\n jwt_configuration=fusionauth.FusionAuthApplicationJwtConfigurationArgs(\n access_token_id=fusionauth_key[\"access_token\"][\"id\"],\n enabled=True,\n id_token_key_id=fusionauth_key[\"id_token\"][\"id\"],\n refresh_token_ttl_minutes=43200,\n ttl_seconds=3600,\n ),\n lambda_configuration=fusionauth.FusionAuthApplicationLambdaConfigurationArgs(\n access_token_populate_id=fusionauth_lambda[\"token_populate\"][\"id\"],\n id_token_populate_id=fusionauth_lambda[\"id_token_populate\"][\"id\"],\n ),\n login_configuration=fusionauth.FusionAuthApplicationLoginConfigurationArgs(\n allow_token_refresh=False,\n generate_refresh_tokens=False,\n require_authentication=True,\n ),\n oauth_configuration=fusionauth.FusionAuthApplicationOauthConfigurationArgs(\n authorized_origin_urls=[\"http://www.example.com/oauth-callback\"],\n authorized_url_validation_policy=\"ExactMatch\",\n enabled_grants=[\n \"authorization_code\",\n \"implicit\",\n ],\n generate_refresh_tokens=False,\n logout_behavior=\"AllApplications\",\n logout_url=\"http://www.example.com/logout\",\n require_client_authentication=False,\n ),\n registration_configuration=fusionauth.FusionAuthApplicationRegistrationConfigurationArgs(\n birth_date=fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs(\n enabled=False,\n required=False,\n ),\n confirm_password=False,\n enabled=False,\n first_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs(\n enabled=False,\n required=False,\n ),\n full_name=fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs(\n enabled=False,\n required=False,\n ),\n last_name=fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs(\n enabled=False,\n required=False,\n ),\n login_id_type=\"\",\n middle_name=fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs(\n enabled=False,\n required=False,\n ),\n mobile_phone=fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs(\n enabled=False,\n required=False,\n ),\n type=\"\",\n ),\n passwordless_configuration_enabled=False,\n registration_delete_policy=fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs(\n unverified_enabled=True,\n unverified_number_of_days_to_retain=30,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var forum = new Fusionauth.FusionAuthApplication(\"forum\", new()\n {\n TenantId = fusionauth_tenant.Portal.Id,\n AuthenticationTokenConfigurationEnabled = false,\n FormConfiguration = new Fusionauth.Inputs.FusionAuthApplicationFormConfigurationArgs\n {\n AdminRegistrationFormId = fusionauth_form.Admin_registration.Id,\n SelfServiceFormId = fusionauth_form.Self_service.Id,\n },\n JwtConfiguration = new Fusionauth.Inputs.FusionAuthApplicationJwtConfigurationArgs\n {\n AccessTokenId = fusionauth_key.Access_token.Id,\n Enabled = true,\n IdTokenKeyId = fusionauth_key.Id_token.Id,\n RefreshTokenTtlMinutes = 43200,\n TtlSeconds = 3600,\n },\n LambdaConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLambdaConfigurationArgs\n {\n AccessTokenPopulateId = fusionauth_lambda.Token_populate.Id,\n IdTokenPopulateId = fusionauth_lambda.Id_token_populate.Id,\n },\n LoginConfiguration = new Fusionauth.Inputs.FusionAuthApplicationLoginConfigurationArgs\n {\n AllowTokenRefresh = false,\n GenerateRefreshTokens = false,\n RequireAuthentication = true,\n },\n OauthConfiguration = new Fusionauth.Inputs.FusionAuthApplicationOauthConfigurationArgs\n {\n AuthorizedOriginUrls = new[]\n {\n \"http://www.example.com/oauth-callback\",\n },\n AuthorizedUrlValidationPolicy = \"ExactMatch\",\n EnabledGrants = new[]\n {\n \"authorization_code\",\n \"implicit\",\n },\n GenerateRefreshTokens = false,\n LogoutBehavior = \"AllApplications\",\n LogoutUrl = \"http://www.example.com/logout\",\n RequireClientAuthentication = false,\n },\n RegistrationConfiguration = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationArgs\n {\n BirthDate = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs\n {\n Enabled = false,\n Required = false,\n },\n ConfirmPassword = false,\n Enabled = false,\n FirstName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs\n {\n Enabled = false,\n Required = false,\n },\n FullName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LastName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs\n {\n Enabled = false,\n Required = false,\n },\n LoginIdType = \"\",\n MiddleName = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs\n {\n Enabled = false,\n Required = false,\n },\n MobilePhone = new Fusionauth.Inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs\n {\n Enabled = false,\n Required = false,\n },\n Type = \"\",\n },\n PasswordlessConfigurationEnabled = false,\n RegistrationDeletePolicy = new Fusionauth.Inputs.FusionAuthApplicationRegistrationDeletePolicyArgs\n {\n UnverifiedEnabled = true,\n UnverifiedNumberOfDaysToRetain = 30,\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApplication(ctx, \"forum\", \u0026fusionauth.FusionAuthApplicationArgs{\n\t\t\tTenantId: pulumi.Any(fusionauth_tenant.Portal.Id),\n\t\t\tAuthenticationTokenConfigurationEnabled: pulumi.Bool(false),\n\t\t\tFormConfiguration: \u0026fusionauth.FusionAuthApplicationFormConfigurationArgs{\n\t\t\t\tAdminRegistrationFormId: pulumi.Any(fusionauth_form.Admin_registration.Id),\n\t\t\t\tSelfServiceFormId: pulumi.Any(fusionauth_form.Self_service.Id),\n\t\t\t},\n\t\t\tJwtConfiguration: \u0026fusionauth.FusionAuthApplicationJwtConfigurationArgs{\n\t\t\t\tAccessTokenId: pulumi.Any(fusionauth_key.Access_token.Id),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tIdTokenKeyId: pulumi.Any(fusionauth_key.Id_token.Id),\n\t\t\t\tRefreshTokenTtlMinutes: pulumi.Int(43200),\n\t\t\t\tTtlSeconds: pulumi.Int(3600),\n\t\t\t},\n\t\t\tLambdaConfiguration: \u0026fusionauth.FusionAuthApplicationLambdaConfigurationArgs{\n\t\t\t\tAccessTokenPopulateId: pulumi.Any(fusionauth_lambda.Token_populate.Id),\n\t\t\t\tIdTokenPopulateId: pulumi.Any(fusionauth_lambda.Id_token_populate.Id),\n\t\t\t},\n\t\t\tLoginConfiguration: \u0026fusionauth.FusionAuthApplicationLoginConfigurationArgs{\n\t\t\t\tAllowTokenRefresh: pulumi.Bool(false),\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tRequireAuthentication: pulumi.Bool(true),\n\t\t\t},\n\t\t\tOauthConfiguration: \u0026fusionauth.FusionAuthApplicationOauthConfigurationArgs{\n\t\t\t\tAuthorizedOriginUrls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://www.example.com/oauth-callback\"),\n\t\t\t\t},\n\t\t\t\tAuthorizedUrlValidationPolicy: pulumi.String(\"ExactMatch\"),\n\t\t\t\tEnabledGrants: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"authorization_code\"),\n\t\t\t\t\tpulumi.String(\"implicit\"),\n\t\t\t\t},\n\t\t\t\tGenerateRefreshTokens: pulumi.Bool(false),\n\t\t\t\tLogoutBehavior: pulumi.String(\"AllApplications\"),\n\t\t\t\tLogoutUrl: pulumi.String(\"http://www.example.com/logout\"),\n\t\t\t\tRequireClientAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRegistrationConfiguration: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationArgs{\n\t\t\t\tBirthDate: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationBirthDateArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tConfirmPassword: pulumi.Bool(false),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tFirstName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFirstNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tFullName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationFullNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLastName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationLastNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tLoginIdType: pulumi.String(\"\"),\n\t\t\t\tMiddleName: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tMobilePhone: \u0026fusionauth.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tRequired: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tType: pulumi.String(\"\"),\n\t\t\t},\n\t\t\tPasswordlessConfigurationEnabled: pulumi.Bool(false),\n\t\t\tRegistrationDeletePolicy: \u0026fusionauth.FusionAuthApplicationRegistrationDeletePolicyArgs{\n\t\t\t\tUnverifiedEnabled: pulumi.Bool(true),\n\t\t\t\tUnverifiedNumberOfDaysToRetain: pulumi.Int(30),\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.fusionauth.FusionAuthApplication;\nimport com.pulumi.fusionauth.FusionAuthApplicationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationFormConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationJwtConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLambdaConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationLoginConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationOauthConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationBirthDateArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFirstNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationFullNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationLastNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMiddleNameArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthApplicationRegistrationDeletePolicyArgs;\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 forum = new FusionAuthApplication(\"forum\", FusionAuthApplicationArgs.builder() \n .tenantId(fusionauth_tenant.portal().id())\n .authenticationTokenConfigurationEnabled(false)\n .formConfiguration(FusionAuthApplicationFormConfigurationArgs.builder()\n .adminRegistrationFormId(fusionauth_form.admin_registration().id())\n .selfServiceFormId(fusionauth_form.self_service().id())\n .build())\n .jwtConfiguration(FusionAuthApplicationJwtConfigurationArgs.builder()\n .accessTokenId(fusionauth_key.access_token().id())\n .enabled(true)\n .idTokenKeyId(fusionauth_key.id_token().id())\n .refreshTokenTtlMinutes(43200)\n .ttlSeconds(3600)\n .build())\n .lambdaConfiguration(FusionAuthApplicationLambdaConfigurationArgs.builder()\n .accessTokenPopulateId(fusionauth_lambda.token_populate().id())\n .idTokenPopulateId(fusionauth_lambda.id_token_populate().id())\n .build())\n .loginConfiguration(FusionAuthApplicationLoginConfigurationArgs.builder()\n .allowTokenRefresh(false)\n .generateRefreshTokens(false)\n .requireAuthentication(true)\n .build())\n .oauthConfiguration(FusionAuthApplicationOauthConfigurationArgs.builder()\n .authorizedOriginUrls(\"http://www.example.com/oauth-callback\")\n .authorizedUrlValidationPolicy(\"ExactMatch\")\n .enabledGrants( \n \"authorization_code\",\n \"implicit\")\n .generateRefreshTokens(false)\n .logoutBehavior(\"AllApplications\")\n .logoutUrl(\"http://www.example.com/logout\")\n .requireClientAuthentication(false)\n .build())\n .registrationConfiguration(FusionAuthApplicationRegistrationConfigurationArgs.builder()\n .birthDate(FusionAuthApplicationRegistrationConfigurationBirthDateArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .confirmPassword(false)\n .enabled(false)\n .firstName(FusionAuthApplicationRegistrationConfigurationFirstNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .fullName(FusionAuthApplicationRegistrationConfigurationFullNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .lastName(FusionAuthApplicationRegistrationConfigurationLastNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .loginIdType(\"\")\n .middleName(FusionAuthApplicationRegistrationConfigurationMiddleNameArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .mobilePhone(FusionAuthApplicationRegistrationConfigurationMobilePhoneArgs.builder()\n .enabled(false)\n .required(false)\n .build())\n .type(\"\")\n .build())\n .passwordlessConfigurationEnabled(false)\n .registrationDeletePolicy(FusionAuthApplicationRegistrationDeletePolicyArgs.builder()\n .unverifiedEnabled(true)\n .unverifiedNumberOfDaysToRetain(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n forum:\n type: fusionauth:FusionAuthApplication\n properties:\n tenantId: ${fusionauth_tenant.portal.id}\n authenticationTokenConfigurationEnabled: false\n formConfiguration:\n adminRegistrationFormId: ${fusionauth_form.admin_registration.id}\n selfServiceFormId: ${fusionauth_form.self_service.id}\n jwtConfiguration:\n accessTokenId: ${fusionauth_key.access_token.id}\n enabled: true\n idTokenKeyId: ${fusionauth_key.id_token.id}\n refreshTokenTtlMinutes: 43200\n ttlSeconds: 3600\n lambdaConfiguration:\n accessTokenPopulateId: ${fusionauth_lambda.token_populate.id}\n idTokenPopulateId: ${fusionauth_lambda.id_token_populate.id}\n loginConfiguration:\n allowTokenRefresh: false\n generateRefreshTokens: false\n requireAuthentication: true\n oauthConfiguration:\n authorizedOriginUrls:\n - http://www.example.com/oauth-callback\n authorizedUrlValidationPolicy: ExactMatch\n enabledGrants:\n - authorization_code\n - implicit\n generateRefreshTokens: false\n logoutBehavior: AllApplications\n logoutUrl: http://www.example.com/logout\n requireClientAuthentication: false\n registrationConfiguration:\n birthDate:\n enabled: false\n required: false\n confirmPassword: false\n enabled: false\n firstName:\n enabled: false\n required: false\n fullName:\n enabled: false\n required: false\n lastName:\n enabled: false\n required: false\n loginIdType:\n middleName:\n enabled: false\n required: false\n mobilePhone:\n enabled: false\n required: false\n type:\n passwordlessConfigurationEnabled: false\n registrationDeletePolicy:\n unverifiedEnabled: true\n unverifiedNumberOfDaysToRetain: 30\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "accessControlConfiguration": { "$ref": "#/types/fusionauth:index/FusionAuthApplicationAccessControlConfiguration:FusionAuthApplicationAccessControlConfiguration" @@ -5058,7 +2868,7 @@ } }, "fusionauth:index/fusionAuthApplicationRole:FusionAuthApplicationRole": { - "description": "## # Application Role Resource\n\nThis Resource is used to create a role for an Application.\n\n[Application Roles API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst myAppAdminRole = new fusionauth.FusionAuthApplicationRole(\"myAppAdminRole\", {\n applicationId: fusionauth_application.my_app.id,\n description: \"\",\n isDefault: false,\n isSuperRole: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nmy_app_admin_role = fusionauth.FusionAuthApplicationRole(\"myAppAdminRole\",\n application_id=fusionauth_application[\"my_app\"][\"id\"],\n description=\"\",\n is_default=False,\n is_super_role=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myAppAdminRole = new Fusionauth.FusionAuthApplicationRole(\"myAppAdminRole\", new()\n {\n ApplicationId = fusionauth_application.My_app.Id,\n Description = \"\",\n IsDefault = false,\n IsSuperRole = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApplicationRole(ctx, \"myAppAdminRole\", \u0026fusionauth.FusionAuthApplicationRoleArgs{\n\t\t\tApplicationId: pulumi.Any(fusionauth_application.My_app.Id),\n\t\t\tDescription: pulumi.String(\"\"),\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tIsSuperRole: 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.fusionauth.FusionAuthApplicationRole;\nimport com.pulumi.fusionauth.FusionAuthApplicationRoleArgs;\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 myAppAdminRole = new FusionAuthApplicationRole(\"myAppAdminRole\", FusionAuthApplicationRoleArgs.builder() \n .applicationId(fusionauth_application.my_app().id())\n .description(\"\")\n .isDefault(false)\n .isSuperRole(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myAppAdminRole:\n type: fusionauth:FusionAuthApplicationRole\n properties:\n applicationId: ${fusionauth_application.my_app.id}\n description:\n isDefault: false\n isSuperRole: true\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Application Role Resource\n\nThis Resource is used to create a role for an Application.\n\n[Application Roles API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst myAppAdminRole = new fusionauth.FusionAuthApplicationRole(\"myAppAdminRole\", {\n applicationId: fusionauth_application.my_app.id,\n description: \"\",\n isDefault: false,\n isSuperRole: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nmy_app_admin_role = fusionauth.FusionAuthApplicationRole(\"myAppAdminRole\",\n application_id=fusionauth_application[\"my_app\"][\"id\"],\n description=\"\",\n is_default=False,\n is_super_role=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myAppAdminRole = new Fusionauth.FusionAuthApplicationRole(\"myAppAdminRole\", new()\n {\n ApplicationId = fusionauth_application.My_app.Id,\n Description = \"\",\n IsDefault = false,\n IsSuperRole = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthApplicationRole(ctx, \"myAppAdminRole\", \u0026fusionauth.FusionAuthApplicationRoleArgs{\n\t\t\tApplicationId: pulumi.Any(fusionauth_application.My_app.Id),\n\t\t\tDescription: pulumi.String(\"\"),\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tIsSuperRole: 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.fusionauth.FusionAuthApplicationRole;\nimport com.pulumi.fusionauth.FusionAuthApplicationRoleArgs;\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 myAppAdminRole = new FusionAuthApplicationRole(\"myAppAdminRole\", FusionAuthApplicationRoleArgs.builder() \n .applicationId(fusionauth_application.my_app().id())\n .description(\"\")\n .isDefault(false)\n .isSuperRole(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myAppAdminRole:\n type: fusionauth:FusionAuthApplicationRole\n properties:\n applicationId: ${fusionauth_application.my_app.id}\n description:\n isDefault: false\n isSuperRole: true\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationId": { "type": "string", @@ -5140,7 +2950,7 @@ } }, "fusionauth:index/fusionAuthEMail:FusionAuthEMail": { - "description": "## # Email Resource\n\nThis resource contains the APIs for managing Email Templates.\n\n[Emails API](https://fusionauth.io/docs/v1/tech/apis/emails)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst helloWorld = new fusionauth.FusionAuthEMail(\"helloWorld\", {\n defaultFromName: \"Welcome Team\",\n defaultHtmlTemplate: fs.readFileSync(`${path.module}/email_templates/HelloWorld.html.ftl`),\n defaultSubject: \"Hello\",\n defaultTextTemplate: fs.readFileSync(`${path.module}/email_templates/HelloWorld.txt.ftl`),\n fromEmail: \"welcome@example.com.com\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nhello_world = fusionauth.FusionAuthEMail(\"helloWorld\",\n default_from_name=\"Welcome Team\",\n default_html_template=(lambda path: open(path).read())(f\"{path['module']}/email_templates/HelloWorld.html.ftl\"),\n default_subject=\"Hello\",\n default_text_template=(lambda path: open(path).read())(f\"{path['module']}/email_templates/HelloWorld.txt.ftl\"),\n from_email=\"welcome@example.com.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var helloWorld = new Fusionauth.FusionAuthEMail(\"helloWorld\", new()\n {\n DefaultFromName = \"Welcome Team\",\n DefaultHtmlTemplate = File.ReadAllText($\"{path.Module}/email_templates/HelloWorld.html.ftl\"),\n DefaultSubject = \"Hello\",\n DefaultTextTemplate = File.ReadAllText($\"{path.Module}/email_templates/HelloWorld.txt.ftl\"),\n FromEmail = \"welcome@example.com.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthEMail(ctx, \"helloWorld\", \u0026fusionauth.FusionAuthEMailArgs{\n\t\t\tDefaultFromName: pulumi.String(\"Welcome Team\"),\n\t\t\tDefaultHtmlTemplate: readFileOrPanic(fmt.Sprintf(\"%v/email_templates/HelloWorld.html.ftl\", path.Module)),\n\t\t\tDefaultSubject: pulumi.String(\"Hello\"),\n\t\t\tDefaultTextTemplate: readFileOrPanic(fmt.Sprintf(\"%v/email_templates/HelloWorld.txt.ftl\", path.Module)),\n\t\t\tFromEmail: pulumi.String(\"welcome@example.com.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.fusionauth.FusionAuthEMail;\nimport com.pulumi.fusionauth.FusionAuthEMailArgs;\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 helloWorld = new FusionAuthEMail(\"helloWorld\", FusionAuthEMailArgs.builder() \n .defaultFromName(\"Welcome Team\")\n .defaultHtmlTemplate(Files.readString(Paths.get(String.format(\"%s/email_templates/HelloWorld.html.ftl\", path.module()))))\n .defaultSubject(\"Hello\")\n .defaultTextTemplate(Files.readString(Paths.get(String.format(\"%s/email_templates/HelloWorld.txt.ftl\", path.module()))))\n .fromEmail(\"welcome@example.com.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n helloWorld:\n type: fusionauth:FusionAuthEMail\n properties:\n defaultFromName: Welcome Team\n defaultHtmlTemplate:\n fn::readFile: ${path.module}/email_templates/HelloWorld.html.ftl\n defaultSubject: Hello\n defaultTextTemplate:\n fn::readFile: ${path.module}/email_templates/HelloWorld.txt.ftl\n fromEmail: welcome@example.com.com\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Email Resource\n\nThis resource contains the APIs for managing Email Templates.\n\n[Emails API](https://fusionauth.io/docs/v1/tech/apis/emails)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst helloWorld = new fusionauth.FusionAuthEMail(\"helloWorld\", {\n defaultFromName: \"Welcome Team\",\n defaultHtmlTemplate: fs.readFileSync(`${path.module}/email_templates/HelloWorld.html.ftl`),\n defaultSubject: \"Hello\",\n defaultTextTemplate: fs.readFileSync(`${path.module}/email_templates/HelloWorld.txt.ftl`),\n fromEmail: \"welcome@example.com.com\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nhello_world = fusionauth.FusionAuthEMail(\"helloWorld\",\n default_from_name=\"Welcome Team\",\n default_html_template=(lambda path: open(path).read())(f\"{path['module']}/email_templates/HelloWorld.html.ftl\"),\n default_subject=\"Hello\",\n default_text_template=(lambda path: open(path).read())(f\"{path['module']}/email_templates/HelloWorld.txt.ftl\"),\n from_email=\"welcome@example.com.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var helloWorld = new Fusionauth.FusionAuthEMail(\"helloWorld\", new()\n {\n DefaultFromName = \"Welcome Team\",\n DefaultHtmlTemplate = File.ReadAllText($\"{path.Module}/email_templates/HelloWorld.html.ftl\"),\n DefaultSubject = \"Hello\",\n DefaultTextTemplate = File.ReadAllText($\"{path.Module}/email_templates/HelloWorld.txt.ftl\"),\n FromEmail = \"welcome@example.com.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthEMail(ctx, \"helloWorld\", \u0026fusionauth.FusionAuthEMailArgs{\n\t\t\tDefaultFromName: pulumi.String(\"Welcome Team\"),\n\t\t\tDefaultHtmlTemplate: readFileOrPanic(fmt.Sprintf(\"%v/email_templates/HelloWorld.html.ftl\", path.Module)),\n\t\t\tDefaultSubject: pulumi.String(\"Hello\"),\n\t\t\tDefaultTextTemplate: readFileOrPanic(fmt.Sprintf(\"%v/email_templates/HelloWorld.txt.ftl\", path.Module)),\n\t\t\tFromEmail: pulumi.String(\"welcome@example.com.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.fusionauth.FusionAuthEMail;\nimport com.pulumi.fusionauth.FusionAuthEMailArgs;\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 helloWorld = new FusionAuthEMail(\"helloWorld\", FusionAuthEMailArgs.builder() \n .defaultFromName(\"Welcome Team\")\n .defaultHtmlTemplate(Files.readString(Paths.get(String.format(\"%s/email_templates/HelloWorld.html.ftl\", path.module()))))\n .defaultSubject(\"Hello\")\n .defaultTextTemplate(Files.readString(Paths.get(String.format(\"%s/email_templates/HelloWorld.txt.ftl\", path.module()))))\n .fromEmail(\"welcome@example.com.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n helloWorld:\n type: fusionauth:FusionAuthEMail\n properties:\n defaultFromName: Welcome Team\n defaultHtmlTemplate:\n fn::readFile: ${path.module}/email_templates/HelloWorld.html.ftl\n defaultSubject: Hello\n defaultTextTemplate:\n fn::readFile: ${path.module}/email_templates/HelloWorld.txt.ftl\n fromEmail: welcome@example.com.com\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "defaultFromName": { "type": "string", @@ -5353,7 +3163,7 @@ }, "entityTypeId": { "type": "string", - "description": "The ID of the Entity Type. Types are consulted for permission checks.\n" + "description": "The ID of the Entity Type. Types are consulted for permission checks.\n\nFor more information see:\n[FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/)\n" }, "name": { "type": "string", @@ -5392,7 +3202,7 @@ }, "entityTypeId": { "type": "string", - "description": "The ID of the Entity Type. Types are consulted for permission checks.\n" + "description": "The ID of the Entity Type. Types are consulted for permission checks.\n\nFor more information see:\n[FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/)\n" }, "name": { "type": "string", @@ -5430,7 +3240,7 @@ }, "entityTypeId": { "type": "string", - "description": "The ID of the Entity Type. Types are consulted for permission checks.\n" + "description": "The ID of the Entity Type. Types are consulted for permission checks.\n\nFor more information see:\n[FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/)\n" }, "name": { "type": "string", @@ -5555,7 +3365,7 @@ } }, "fusionauth:index/fusionAuthEntityType:FusionAuthEntityType": { - "description": "## # Entity Type Resource\n\nEntity Types categorize Entities. For example, an Entity Type could be `Device`, `API` or `Company`.\n\n[Entity Type API](https://fusionauth.io/docs/v1/tech/apis/entity-management/entity-types/#create-an-entity-type)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst company = new fusionauth.FusionAuthEntityType(\"company\", {\n data: JSON.stringify({\n createdBy: \"jared@fusionauth.io\",\n }),\n jwtConfiguration: {\n accessTokenKeyId: \"a7516c7c-6234-4021-b0b4-8870c807aeb2\",\n enabled: true,\n timeToLiveInSeconds: 3600,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport theogravity_pulumi-fusionauth as fusionauth\n\ncompany = fusionauth.FusionAuthEntityType(\"company\",\n data=json.dumps({\n \"createdBy\": \"jared@fusionauth.io\",\n }),\n jwt_configuration=fusionauth.FusionAuthEntityTypeJwtConfigurationArgs(\n access_token_key_id=\"a7516c7c-6234-4021-b0b4-8870c807aeb2\",\n enabled=True,\n time_to_live_in_seconds=3600,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var company = new Fusionauth.FusionAuthEntityType(\"company\", new()\n {\n Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"createdBy\"] = \"jared@fusionauth.io\",\n }),\n JwtConfiguration = new Fusionauth.Inputs.FusionAuthEntityTypeJwtConfigurationArgs\n {\n AccessTokenKeyId = \"a7516c7c-6234-4021-b0b4-8870c807aeb2\",\n Enabled = true,\n TimeToLiveInSeconds = 3600,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"createdBy\": \"jared@fusionauth.io\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fusionauth.NewFusionAuthEntityType(ctx, \"company\", \u0026fusionauth.FusionAuthEntityTypeArgs{\n\t\t\tData: pulumi.String(json0),\n\t\t\tJwtConfiguration: \u0026fusionauth.FusionAuthEntityTypeJwtConfigurationArgs{\n\t\t\t\tAccessTokenKeyId: pulumi.String(\"a7516c7c-6234-4021-b0b4-8870c807aeb2\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTimeToLiveInSeconds: pulumi.Int(3600),\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.fusionauth.FusionAuthEntityType;\nimport com.pulumi.fusionauth.FusionAuthEntityTypeArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthEntityTypeJwtConfigurationArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 company = new FusionAuthEntityType(\"company\", FusionAuthEntityTypeArgs.builder() \n .data(serializeJson(\n jsonObject(\n jsonProperty(\"createdBy\", \"jared@fusionauth.io\")\n )))\n .jwtConfiguration(FusionAuthEntityTypeJwtConfigurationArgs.builder()\n .accessTokenKeyId(\"a7516c7c-6234-4021-b0b4-8870c807aeb2\")\n .enabled(true)\n .timeToLiveInSeconds(3600)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n company:\n type: fusionauth:FusionAuthEntityType\n properties:\n data:\n fn::toJSON:\n createdBy: jared@fusionauth.io\n jwtConfiguration:\n accessTokenKeyId: a7516c7c-6234-4021-b0b4-8870c807aeb2\n enabled: true\n timeToLiveInSeconds: 3600\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Entity Type Resource\n\nEntity Types categorize Entities. For example, an Entity Type could be `Device`, `API` or `Company`.\n\n[Entity Type API](https://fusionauth.io/docs/v1/tech/apis/entity-management/entity-types/#create-an-entity-type)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst company = new fusionauth.FusionAuthEntityType(\"company\", {\n data: JSON.stringify({\n createdBy: \"jared@fusionauth.io\",\n }),\n jwtConfiguration: {\n accessTokenKeyId: \"a7516c7c-6234-4021-b0b4-8870c807aeb2\",\n enabled: true,\n timeToLiveInSeconds: 3600,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport theogravity_pulumi-fusionauth as fusionauth\n\ncompany = fusionauth.FusionAuthEntityType(\"company\",\n data=json.dumps({\n \"createdBy\": \"jared@fusionauth.io\",\n }),\n jwt_configuration=fusionauth.FusionAuthEntityTypeJwtConfigurationArgs(\n access_token_key_id=\"a7516c7c-6234-4021-b0b4-8870c807aeb2\",\n enabled=True,\n time_to_live_in_seconds=3600,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var company = new Fusionauth.FusionAuthEntityType(\"company\", new()\n {\n Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"createdBy\"] = \"jared@fusionauth.io\",\n }),\n JwtConfiguration = new Fusionauth.Inputs.FusionAuthEntityTypeJwtConfigurationArgs\n {\n AccessTokenKeyId = \"a7516c7c-6234-4021-b0b4-8870c807aeb2\",\n Enabled = true,\n TimeToLiveInSeconds = 3600,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"createdBy\": \"jared@fusionauth.io\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fusionauth.NewFusionAuthEntityType(ctx, \"company\", \u0026fusionauth.FusionAuthEntityTypeArgs{\n\t\t\tData: pulumi.String(json0),\n\t\t\tJwtConfiguration: \u0026fusionauth.FusionAuthEntityTypeJwtConfigurationArgs{\n\t\t\t\tAccessTokenKeyId: pulumi.String(\"a7516c7c-6234-4021-b0b4-8870c807aeb2\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTimeToLiveInSeconds: pulumi.Int(3600),\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.fusionauth.FusionAuthEntityType;\nimport com.pulumi.fusionauth.FusionAuthEntityTypeArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthEntityTypeJwtConfigurationArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 company = new FusionAuthEntityType(\"company\", FusionAuthEntityTypeArgs.builder() \n .data(serializeJson(\n jsonObject(\n jsonProperty(\"createdBy\", \"jared@fusionauth.io\")\n )))\n .jwtConfiguration(FusionAuthEntityTypeJwtConfigurationArgs.builder()\n .accessTokenKeyId(\"a7516c7c-6234-4021-b0b4-8870c807aeb2\")\n .enabled(true)\n .timeToLiveInSeconds(3600)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n company:\n type: fusionauth:FusionAuthEntityType\n properties:\n data:\n fn::toJSON:\n createdBy: jared@fusionauth.io\n jwtConfiguration:\n accessTokenKeyId: a7516c7c-6234-4021-b0b4-8870c807aeb2\n enabled: true\n timeToLiveInSeconds: 3600\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "data": { "type": "string", @@ -5721,7 +3531,7 @@ } }, "fusionauth:index/fusionAuthForm:FusionAuthForm": { - "description": "## # Form Resource\n\nA FusionAuth Form is a customizable object that contains one-to-many ordered steps. Each step is comprised of one or more Form Fields.\n\n[Form API](https://fusionauth.io/docs/v1/tech/apis/forms/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst form = new fusionauth.FusionAuthForm(\"form\", {\n data: {\n description: \"This form customizes the registration experience.\",\n },\n steps: [\n {\n fields: [\"91909721-7d4f-b110-8f21-cfdee2a1edb8\"],\n },\n {\n fields: [\n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\",\n ],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nform = fusionauth.FusionAuthForm(\"form\",\n data={\n \"description\": \"This form customizes the registration experience.\",\n },\n steps=[\n fusionauth.FusionAuthFormStepArgs(\n fields=[\"91909721-7d4f-b110-8f21-cfdee2a1edb8\"],\n ),\n fusionauth.FusionAuthFormStepArgs(\n fields=[\n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\",\n ],\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var form = new Fusionauth.FusionAuthForm(\"form\", new()\n {\n Data = \n {\n { \"description\", \"This form customizes the registration experience.\" },\n },\n Steps = new[]\n {\n new Fusionauth.Inputs.FusionAuthFormStepArgs\n {\n Fields = new[]\n {\n \"91909721-7d4f-b110-8f21-cfdee2a1edb8\",\n },\n },\n new Fusionauth.Inputs.FusionAuthFormStepArgs\n {\n Fields = new[]\n {\n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\",\n },\n },\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthForm(ctx, \"form\", \u0026fusionauth.FusionAuthFormArgs{\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"description\": pulumi.Any(\"This form customizes the registration experience.\"),\n\t\t\t},\n\t\t\tSteps: fusionauth.FusionAuthFormStepArray{\n\t\t\t\t\u0026fusionauth.FusionAuthFormStepArgs{\n\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"91909721-7d4f-b110-8f21-cfdee2a1edb8\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthFormStepArgs{\n\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8ed89a31-c325-3156-72ed-6e89183af917\"),\n\t\t\t\t\t\tpulumi.String(\"a977cfd4-a9ed-c4cf-650f-f4539268ac38\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.fusionauth.FusionAuthForm;\nimport com.pulumi.fusionauth.FusionAuthFormArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthFormStepArgs;\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 form = new FusionAuthForm(\"form\", FusionAuthFormArgs.builder() \n .data(Map.of(\"description\", \"This form customizes the registration experience.\"))\n .steps( \n FusionAuthFormStepArgs.builder()\n .fields(\"91909721-7d4f-b110-8f21-cfdee2a1edb8\")\n .build(),\n FusionAuthFormStepArgs.builder()\n .fields( \n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n form:\n type: fusionauth:FusionAuthForm\n properties:\n data:\n description: This form customizes the registration experience.\n steps:\n - fields:\n - 91909721-7d4f-b110-8f21-cfdee2a1edb8\n - fields:\n - 8ed89a31-c325-3156-72ed-6e89183af917\n - a977cfd4-a9ed-c4cf-650f-f4539268ac38\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Form Resource\n\nA FusionAuth Form is a customizable object that contains one-to-many ordered steps. Each step is comprised of one or more Form Fields.\n\n[Form API](https://fusionauth.io/docs/v1/tech/apis/forms/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst form = new fusionauth.FusionAuthForm(\"form\", {\n data: {\n description: \"This form customizes the registration experience.\",\n },\n steps: [\n {\n fields: [\"91909721-7d4f-b110-8f21-cfdee2a1edb8\"],\n },\n {\n fields: [\n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\",\n ],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nform = fusionauth.FusionAuthForm(\"form\",\n data={\n \"description\": \"This form customizes the registration experience.\",\n },\n steps=[\n fusionauth.FusionAuthFormStepArgs(\n fields=[\"91909721-7d4f-b110-8f21-cfdee2a1edb8\"],\n ),\n fusionauth.FusionAuthFormStepArgs(\n fields=[\n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\",\n ],\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var form = new Fusionauth.FusionAuthForm(\"form\", new()\n {\n Data = \n {\n { \"description\", \"This form customizes the registration experience.\" },\n },\n Steps = new[]\n {\n new Fusionauth.Inputs.FusionAuthFormStepArgs\n {\n Fields = new[]\n {\n \"91909721-7d4f-b110-8f21-cfdee2a1edb8\",\n },\n },\n new Fusionauth.Inputs.FusionAuthFormStepArgs\n {\n Fields = new[]\n {\n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\",\n },\n },\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthForm(ctx, \"form\", \u0026fusionauth.FusionAuthFormArgs{\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"description\": pulumi.Any(\"This form customizes the registration experience.\"),\n\t\t\t},\n\t\t\tSteps: fusionauth.FusionAuthFormStepArray{\n\t\t\t\t\u0026fusionauth.FusionAuthFormStepArgs{\n\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"91909721-7d4f-b110-8f21-cfdee2a1edb8\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthFormStepArgs{\n\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8ed89a31-c325-3156-72ed-6e89183af917\"),\n\t\t\t\t\t\tpulumi.String(\"a977cfd4-a9ed-c4cf-650f-f4539268ac38\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.fusionauth.FusionAuthForm;\nimport com.pulumi.fusionauth.FusionAuthFormArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthFormStepArgs;\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 form = new FusionAuthForm(\"form\", FusionAuthFormArgs.builder() \n .data(Map.of(\"description\", \"This form customizes the registration experience.\"))\n .steps( \n FusionAuthFormStepArgs.builder()\n .fields(\"91909721-7d4f-b110-8f21-cfdee2a1edb8\")\n .build(),\n FusionAuthFormStepArgs.builder()\n .fields( \n \"8ed89a31-c325-3156-72ed-6e89183af917\",\n \"a977cfd4-a9ed-c4cf-650f-f4539268ac38\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n form:\n type: fusionauth:FusionAuthForm\n properties:\n data:\n description: This form customizes the registration experience.\n steps:\n - fields:\n - 91909721-7d4f-b110-8f21-cfdee2a1edb8\n - fields:\n - 8ed89a31-c325-3156-72ed-6e89183af917\n - a977cfd4-a9ed-c4cf-650f-f4539268ac38\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "data": { "type": "object", @@ -5821,7 +3631,7 @@ } }, "fusionauth:index/fusionAuthFormField:FusionAuthFormField": { - "description": "## # Form Field Resource\n\nA FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth Form.\n\n[Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst field = new fusionauth.FusionAuthFormField(\"field\", {\n confirm: true,\n data: {\n leftAddOn: \"send\",\n },\n description: \"Information about this custom field\",\n key: \"user.firstName\",\n required: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nfield = fusionauth.FusionAuthFormField(\"field\",\n confirm=True,\n data={\n \"leftAddOn\": \"send\",\n },\n description=\"Information about this custom field\",\n key=\"user.firstName\",\n required=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var field = new Fusionauth.FusionAuthFormField(\"field\", new()\n {\n Confirm = true,\n Data = \n {\n { \"leftAddOn\", \"send\" },\n },\n Description = \"Information about this custom field\",\n Key = \"user.firstName\",\n Required = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthFormField(ctx, \"field\", \u0026fusionauth.FusionAuthFormFieldArgs{\n\t\t\tConfirm: pulumi.Bool(true),\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"leftAddOn\": pulumi.Any(\"send\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Information about this custom field\"),\n\t\t\tKey: pulumi.String(\"user.firstName\"),\n\t\t\tRequired: 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.fusionauth.FusionAuthFormField;\nimport com.pulumi.fusionauth.FusionAuthFormFieldArgs;\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 field = new FusionAuthFormField(\"field\", FusionAuthFormFieldArgs.builder() \n .confirm(true)\n .data(Map.of(\"leftAddOn\", \"send\"))\n .description(\"Information about this custom field\")\n .key(\"user.firstName\")\n .required(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n field:\n type: fusionauth:FusionAuthFormField\n properties:\n confirm: true\n data:\n leftAddOn: send\n description: Information about this custom field\n key: user.firstName\n required: true\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Form Field Resource\n\nA FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth Form.\n\n[Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst field = new fusionauth.FusionAuthFormField(\"field\", {\n confirm: true,\n data: {\n leftAddOn: \"send\",\n },\n description: \"Information about this custom field\",\n key: \"user.firstName\",\n required: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nfield = fusionauth.FusionAuthFormField(\"field\",\n confirm=True,\n data={\n \"leftAddOn\": \"send\",\n },\n description=\"Information about this custom field\",\n key=\"user.firstName\",\n required=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var field = new Fusionauth.FusionAuthFormField(\"field\", new()\n {\n Confirm = true,\n Data = \n {\n { \"leftAddOn\", \"send\" },\n },\n Description = \"Information about this custom field\",\n Key = \"user.firstName\",\n Required = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthFormField(ctx, \"field\", \u0026fusionauth.FusionAuthFormFieldArgs{\n\t\t\tConfirm: pulumi.Bool(true),\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"leftAddOn\": pulumi.Any(\"send\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Information about this custom field\"),\n\t\t\tKey: pulumi.String(\"user.firstName\"),\n\t\t\tRequired: 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.fusionauth.FusionAuthFormField;\nimport com.pulumi.fusionauth.FusionAuthFormFieldArgs;\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 field = new FusionAuthFormField(\"field\", FusionAuthFormFieldArgs.builder() \n .confirm(true)\n .data(Map.of(\"leftAddOn\", \"send\"))\n .description(\"Information about this custom field\")\n .key(\"user.firstName\")\n .required(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n field:\n type: fusionauth:FusionAuthFormField\n properties:\n confirm: true\n data:\n leftAddOn: send\n description: Information about this custom field\n key: user.firstName\n required: true\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "confirm": { "type": "boolean", @@ -6004,7 +3814,7 @@ } }, "fusionauth:index/fusionAuthGenericConnector:FusionAuthGenericConnector": { - "description": "## # Generic Connector Resource\n\nA FusionAuth Generic Connector is a named object that provides configuration for allowing authentication against external systems.\n\n[Generic Connector API](https://fusionauth.io/docs/v1/tech/apis/connectors/generic/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthGenericConnector(\"example\", {\n authenticationUrl: \"http://mygameserver.local:7001/fusionauth-connector\",\n connectTimeout: 1000,\n data: {\n foo: \"bar\",\n },\n debug: false,\n headers: {\n foo: \"bar\",\n bar: \"baz\",\n },\n httpAuthenticationPassword: \"supersecret\",\n httpAuthenticationUsername: \"me\",\n readTimeout: 2000,\n sslCertificateKeyId: \"00000000-0000-0000-0000-000000000678\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthGenericConnector(\"example\",\n authentication_url=\"http://mygameserver.local:7001/fusionauth-connector\",\n connect_timeout=1000,\n data={\n \"foo\": \"bar\",\n },\n debug=False,\n headers={\n \"foo\": \"bar\",\n \"bar\": \"baz\",\n },\n http_authentication_password=\"supersecret\",\n http_authentication_username=\"me\",\n read_timeout=2000,\n ssl_certificate_key_id=\"00000000-0000-0000-0000-000000000678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthGenericConnector(\"example\", new()\n {\n AuthenticationUrl = \"http://mygameserver.local:7001/fusionauth-connector\",\n ConnectTimeout = 1000,\n Data = \n {\n { \"foo\", \"bar\" },\n },\n Debug = false,\n Headers = \n {\n { \"foo\", \"bar\" },\n { \"bar\", \"baz\" },\n },\n HttpAuthenticationPassword = \"supersecret\",\n HttpAuthenticationUsername = \"me\",\n ReadTimeout = 2000,\n SslCertificateKeyId = \"00000000-0000-0000-0000-000000000678\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthGenericConnector(ctx, \"example\", \u0026fusionauth.FusionAuthGenericConnectorArgs{\n\t\t\tAuthenticationUrl: pulumi.String(\"http://mygameserver.local:7001/fusionauth-connector\"),\n\t\t\tConnectTimeout: pulumi.Int(1000),\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t},\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tHeaders: pulumi.AnyMap{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t\t\"bar\": pulumi.Any(\"baz\"),\n\t\t\t},\n\t\t\tHttpAuthenticationPassword: pulumi.String(\"supersecret\"),\n\t\t\tHttpAuthenticationUsername: pulumi.String(\"me\"),\n\t\t\tReadTimeout: pulumi.Int(2000),\n\t\t\tSslCertificateKeyId: pulumi.String(\"00000000-0000-0000-0000-000000000678\"),\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.fusionauth.FusionAuthGenericConnector;\nimport com.pulumi.fusionauth.FusionAuthGenericConnectorArgs;\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 example = new FusionAuthGenericConnector(\"example\", FusionAuthGenericConnectorArgs.builder() \n .authenticationUrl(\"http://mygameserver.local:7001/fusionauth-connector\")\n .connectTimeout(1000)\n .data(Map.of(\"foo\", \"bar\"))\n .debug(false)\n .headers(Map.ofEntries(\n Map.entry(\"foo\", \"bar\"),\n Map.entry(\"bar\", \"baz\")\n ))\n .httpAuthenticationPassword(\"supersecret\")\n .httpAuthenticationUsername(\"me\")\n .readTimeout(2000)\n .sslCertificateKeyId(\"00000000-0000-0000-0000-000000000678\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthGenericConnector\n properties:\n authenticationUrl: http://mygameserver.local:7001/fusionauth-connector\n connectTimeout: 1000\n data:\n foo: bar\n debug: false\n headers:\n foo: bar\n bar: baz\n httpAuthenticationPassword: supersecret\n httpAuthenticationUsername: me\n readTimeout: 2000\n sslCertificateKeyId: 00000000-0000-0000-0000-000000000678\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Generic Connector Resource\n\nA FusionAuth Generic Connector is a named object that provides configuration for allowing authentication against external systems.\n\n[Generic Connector API](https://fusionauth.io/docs/v1/tech/apis/connectors/generic/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthGenericConnector(\"example\", {\n authenticationUrl: \"http://mygameserver.local:7001/fusionauth-connector\",\n connectTimeout: 1000,\n data: {\n foo: \"bar\",\n },\n debug: false,\n headers: {\n foo: \"bar\",\n bar: \"baz\",\n },\n httpAuthenticationPassword: \"supersecret\",\n httpAuthenticationUsername: \"me\",\n readTimeout: 2000,\n sslCertificateKeyId: \"00000000-0000-0000-0000-000000000678\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthGenericConnector(\"example\",\n authentication_url=\"http://mygameserver.local:7001/fusionauth-connector\",\n connect_timeout=1000,\n data={\n \"foo\": \"bar\",\n },\n debug=False,\n headers={\n \"foo\": \"bar\",\n \"bar\": \"baz\",\n },\n http_authentication_password=\"supersecret\",\n http_authentication_username=\"me\",\n read_timeout=2000,\n ssl_certificate_key_id=\"00000000-0000-0000-0000-000000000678\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthGenericConnector(\"example\", new()\n {\n AuthenticationUrl = \"http://mygameserver.local:7001/fusionauth-connector\",\n ConnectTimeout = 1000,\n Data = \n {\n { \"foo\", \"bar\" },\n },\n Debug = false,\n Headers = \n {\n { \"foo\", \"bar\" },\n { \"bar\", \"baz\" },\n },\n HttpAuthenticationPassword = \"supersecret\",\n HttpAuthenticationUsername = \"me\",\n ReadTimeout = 2000,\n SslCertificateKeyId = \"00000000-0000-0000-0000-000000000678\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthGenericConnector(ctx, \"example\", \u0026fusionauth.FusionAuthGenericConnectorArgs{\n\t\t\tAuthenticationUrl: pulumi.String(\"http://mygameserver.local:7001/fusionauth-connector\"),\n\t\t\tConnectTimeout: pulumi.Int(1000),\n\t\t\tData: pulumi.AnyMap{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t},\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tHeaders: pulumi.AnyMap{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t\t\"bar\": pulumi.Any(\"baz\"),\n\t\t\t},\n\t\t\tHttpAuthenticationPassword: pulumi.String(\"supersecret\"),\n\t\t\tHttpAuthenticationUsername: pulumi.String(\"me\"),\n\t\t\tReadTimeout: pulumi.Int(2000),\n\t\t\tSslCertificateKeyId: pulumi.String(\"00000000-0000-0000-0000-000000000678\"),\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.fusionauth.FusionAuthGenericConnector;\nimport com.pulumi.fusionauth.FusionAuthGenericConnectorArgs;\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 example = new FusionAuthGenericConnector(\"example\", FusionAuthGenericConnectorArgs.builder() \n .authenticationUrl(\"http://mygameserver.local:7001/fusionauth-connector\")\n .connectTimeout(1000)\n .data(Map.of(\"foo\", \"bar\"))\n .debug(false)\n .headers(Map.ofEntries(\n Map.entry(\"foo\", \"bar\"),\n Map.entry(\"bar\", \"baz\")\n ))\n .httpAuthenticationPassword(\"supersecret\")\n .httpAuthenticationUsername(\"me\")\n .readTimeout(2000)\n .sslCertificateKeyId(\"00000000-0000-0000-0000-000000000678\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthGenericConnector\n properties:\n authenticationUrl: http://mygameserver.local:7001/fusionauth-connector\n connectTimeout: 1000\n data:\n foo: bar\n debug: false\n headers:\n foo: bar\n bar: baz\n httpAuthenticationPassword: supersecret\n httpAuthenticationUsername: me\n readTimeout: 2000\n sslCertificateKeyId: 00000000-0000-0000-0000-000000000678\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "authenticationUrl": { "type": "string", @@ -6172,7 +3982,7 @@ } }, "fusionauth:index/fusionAuthGroup:FusionAuthGroup": { - "description": "## # Group Resource\n\nA FusionAuth Group is a named object that optionally contains one to many Application Roles.\n\nWhen a Group does not contain any Application Roles it can still be utilized to logically associate users. Assigning Application Roles to a group allow it to be used to dynamically manage Role assignment to registered Users. In this second scenario as long as a User is registered to an Application the Group membership will allow them to inherit the corresponding Roles from the Group.\n\n[Groups API](https://fusionauth.io/docs/v1/tech/apis/groups)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst myGroup = new fusionauth.FusionAuthGroup(\"myGroup\", {\n tenantId: fusionauth_tenant.my_tenant.id,\n roleIds: [fusionauth_application_role.admins.id],\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nmy_group = fusionauth.FusionAuthGroup(\"myGroup\",\n tenant_id=fusionauth_tenant[\"my_tenant\"][\"id\"],\n role_ids=[fusionauth_application_role[\"admins\"][\"id\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myGroup = new Fusionauth.FusionAuthGroup(\"myGroup\", new()\n {\n TenantId = fusionauth_tenant.My_tenant.Id,\n RoleIds = new[]\n {\n fusionauth_application_role.Admins.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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthGroup(ctx, \"myGroup\", \u0026fusionauth.FusionAuthGroupArgs{\n\t\t\tTenantId: pulumi.Any(fusionauth_tenant.My_tenant.Id),\n\t\t\tRoleIds: pulumi.StringArray{\n\t\t\t\tfusionauth_application_role.Admins.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.fusionauth.FusionAuthGroup;\nimport com.pulumi.fusionauth.FusionAuthGroupArgs;\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 myGroup = new FusionAuthGroup(\"myGroup\", FusionAuthGroupArgs.builder() \n .tenantId(fusionauth_tenant.my_tenant().id())\n .roleIds(fusionauth_application_role.admins().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myGroup:\n type: fusionauth:FusionAuthGroup\n properties:\n tenantId: ${fusionauth_tenant.my_tenant.id}\n roleIds:\n - ${fusionauth_application_role.admins.id}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Group Resource\n\nA FusionAuth Group is a named object that optionally contains one to many Application Roles.\n\nWhen a Group does not contain any Application Roles it can still be utilized to logically associate users. Assigning Application Roles to a group allow it to be used to dynamically manage Role assignment to registered Users. In this second scenario as long as a User is registered to an Application the Group membership will allow them to inherit the corresponding Roles from the Group.\n\n[Groups API](https://fusionauth.io/docs/v1/tech/apis/groups)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst myGroup = new fusionauth.FusionAuthGroup(\"myGroup\", {\n tenantId: fusionauth_tenant.my_tenant.id,\n roleIds: [fusionauth_application_role.admins.id],\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nmy_group = fusionauth.FusionAuthGroup(\"myGroup\",\n tenant_id=fusionauth_tenant[\"my_tenant\"][\"id\"],\n role_ids=[fusionauth_application_role[\"admins\"][\"id\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myGroup = new Fusionauth.FusionAuthGroup(\"myGroup\", new()\n {\n TenantId = fusionauth_tenant.My_tenant.Id,\n RoleIds = new[]\n {\n fusionauth_application_role.Admins.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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthGroup(ctx, \"myGroup\", \u0026fusionauth.FusionAuthGroupArgs{\n\t\t\tTenantId: pulumi.Any(fusionauth_tenant.My_tenant.Id),\n\t\t\tRoleIds: pulumi.StringArray{\n\t\t\t\tfusionauth_application_role.Admins.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.fusionauth.FusionAuthGroup;\nimport com.pulumi.fusionauth.FusionAuthGroupArgs;\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 myGroup = new FusionAuthGroup(\"myGroup\", FusionAuthGroupArgs.builder() \n .tenantId(fusionauth_tenant.my_tenant().id())\n .roleIds(fusionauth_application_role.admins().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myGroup:\n type: fusionauth:FusionAuthGroup\n properties:\n tenantId: ${fusionauth_tenant.my_tenant.id}\n roleIds:\n - ${fusionauth_application_role.admins.id}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "data": { "type": "object", @@ -6273,7 +4083,7 @@ } }, "fusionauth:index/fusionAuthIdpApple:FusionAuthIdpApple": { - "description": "## # Apple Identity Provider Resource\n\nThe Apple identity provider type will use the Sign in with Apple APIs and will provide a Sign with Apple button on FusionAuth’s login page that will either redirect to an Apple sign in page or leverage native controls when using Safari on macOS or iOS. Additionally, this identity provider will call Apples’s /auth/token API to load additional details about the user and store them in FusionAuth.\n\nFusionAuth will also store the Apple refresh_token that is returned from the /auth/token endpoint in the UserRegistration object inside the tokens Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\n\n[Apple Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/apple/#create-the-apple-identity-provider)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst apple = new fusionauth.FusionAuthIdpApple(\"apple\", {\n applicationConfigurations: [{\n applicationId: \"1c212e59-0d0e-6b1a-ad48-f4f92793be32\",\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Sign in with Apple\",\n debug: false,\n enabled: true,\n keyId: \"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\",\n scope: \"email name\",\n servicesId: \"com.piedpiper.webapp\",\n teamId: \"R4NQ1P4UEB\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\napple = fusionauth.FusionAuthIdpApple(\"apple\",\n application_configurations=[fusionauth.FusionAuthIdpAppleApplicationConfigurationArgs(\n application_id=\"1c212e59-0d0e-6b1a-ad48-f4f92793be32\",\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Sign in with Apple\",\n debug=False,\n enabled=True,\n key_id=\"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\",\n scope=\"email name\",\n services_id=\"com.piedpiper.webapp\",\n team_id=\"R4NQ1P4UEB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apple = new Fusionauth.FusionAuthIdpApple(\"apple\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpAppleApplicationConfigurationArgs\n {\n ApplicationId = \"1c212e59-0d0e-6b1a-ad48-f4f92793be32\",\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Sign in with Apple\",\n Debug = false,\n Enabled = true,\n KeyId = \"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\",\n Scope = \"email name\",\n ServicesId = \"com.piedpiper.webapp\",\n TeamId = \"R4NQ1P4UEB\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpApple(ctx, \"apple\", \u0026fusionauth.FusionAuthIdpAppleArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpAppleApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpAppleApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.String(\"1c212e59-0d0e-6b1a-ad48-f4f92793be32\"),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Sign in with Apple\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tKeyId: pulumi.String(\"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\"),\n\t\t\tScope: pulumi.String(\"email name\"),\n\t\t\tServicesId: pulumi.String(\"com.piedpiper.webapp\"),\n\t\t\tTeamId: pulumi.String(\"R4NQ1P4UEB\"),\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.fusionauth.FusionAuthIdpApple;\nimport com.pulumi.fusionauth.FusionAuthIdpAppleArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpAppleApplicationConfigurationArgs;\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 apple = new FusionAuthIdpApple(\"apple\", FusionAuthIdpAppleArgs.builder() \n .applicationConfigurations(FusionAuthIdpAppleApplicationConfigurationArgs.builder()\n .applicationId(\"1c212e59-0d0e-6b1a-ad48-f4f92793be32\")\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Sign in with Apple\")\n .debug(false)\n .enabled(true)\n .keyId(\"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\")\n .scope(\"email name\")\n .servicesId(\"com.piedpiper.webapp\")\n .teamId(\"R4NQ1P4UEB\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apple:\n type: fusionauth:FusionAuthIdpApple\n properties:\n applicationConfigurations:\n - applicationId: 1c212e59-0d0e-6b1a-ad48-f4f92793be32\n createRegistration: true\n enabled: true\n buttonText: Sign in with Apple\n debug: false\n enabled: true\n keyId: 2f81529c-4d39-4ce2-982e-cf5fbb1325f6\n scope: email name\n servicesId: com.piedpiper.webapp\n teamId: R4NQ1P4UEB\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Apple Identity Provider Resource\n\nThe Apple identity provider type will use the Sign in with Apple APIs and will provide a Sign with Apple button on FusionAuth’s login page that will either redirect to an Apple sign in page or leverage native controls when using Safari on macOS or iOS. Additionally, this identity provider will call Apples’s /auth/token API to load additional details about the user and store them in FusionAuth.\n\nFusionAuth will also store the Apple refresh_token that is returned from the /auth/token endpoint in the UserRegistration object inside the tokens Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\n\n[Apple Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/apple/#create-the-apple-identity-provider)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst apple = new fusionauth.FusionAuthIdpApple(\"apple\", {\n applicationConfigurations: [{\n applicationId: \"1c212e59-0d0e-6b1a-ad48-f4f92793be32\",\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Sign in with Apple\",\n debug: false,\n enabled: true,\n keyId: \"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\",\n scope: \"email name\",\n servicesId: \"com.piedpiper.webapp\",\n teamId: \"R4NQ1P4UEB\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\napple = fusionauth.FusionAuthIdpApple(\"apple\",\n application_configurations=[fusionauth.FusionAuthIdpAppleApplicationConfigurationArgs(\n application_id=\"1c212e59-0d0e-6b1a-ad48-f4f92793be32\",\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Sign in with Apple\",\n debug=False,\n enabled=True,\n key_id=\"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\",\n scope=\"email name\",\n services_id=\"com.piedpiper.webapp\",\n team_id=\"R4NQ1P4UEB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apple = new Fusionauth.FusionAuthIdpApple(\"apple\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpAppleApplicationConfigurationArgs\n {\n ApplicationId = \"1c212e59-0d0e-6b1a-ad48-f4f92793be32\",\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Sign in with Apple\",\n Debug = false,\n Enabled = true,\n KeyId = \"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\",\n Scope = \"email name\",\n ServicesId = \"com.piedpiper.webapp\",\n TeamId = \"R4NQ1P4UEB\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpApple(ctx, \"apple\", \u0026fusionauth.FusionAuthIdpAppleArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpAppleApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpAppleApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.String(\"1c212e59-0d0e-6b1a-ad48-f4f92793be32\"),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Sign in with Apple\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tKeyId: pulumi.String(\"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\"),\n\t\t\tScope: pulumi.String(\"email name\"),\n\t\t\tServicesId: pulumi.String(\"com.piedpiper.webapp\"),\n\t\t\tTeamId: pulumi.String(\"R4NQ1P4UEB\"),\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.fusionauth.FusionAuthIdpApple;\nimport com.pulumi.fusionauth.FusionAuthIdpAppleArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpAppleApplicationConfigurationArgs;\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 apple = new FusionAuthIdpApple(\"apple\", FusionAuthIdpAppleArgs.builder() \n .applicationConfigurations(FusionAuthIdpAppleApplicationConfigurationArgs.builder()\n .applicationId(\"1c212e59-0d0e-6b1a-ad48-f4f92793be32\")\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Sign in with Apple\")\n .debug(false)\n .enabled(true)\n .keyId(\"2f81529c-4d39-4ce2-982e-cf5fbb1325f6\")\n .scope(\"email name\")\n .servicesId(\"com.piedpiper.webapp\")\n .teamId(\"R4NQ1P4UEB\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apple:\n type: fusionauth:FusionAuthIdpApple\n properties:\n applicationConfigurations:\n - applicationId: 1c212e59-0d0e-6b1a-ad48-f4f92793be32\n createRegistration: true\n enabled: true\n buttonText: Sign in with Apple\n debug: false\n enabled: true\n keyId: 2f81529c-4d39-4ce2-982e-cf5fbb1325f6\n scope: email name\n servicesId: com.piedpiper.webapp\n teamId: R4NQ1P4UEB\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -6451,7 +4261,7 @@ } }, "fusionauth:index/fusionAuthIdpExternalJwt:FusionAuthIdpExternalJwt": { - "description": "## # External JWT Identity Provider Resource\n\nThis is a special type of identity provider that is only used via the JWT Reconcile API. This identity provider defines the claims inside the incoming JWT and how they map to fields in the FusionAuth User object.\n\nIn order for this identity provider to use the JWT, it also needs the public key or HMAC secret that the JWT was signed with. FusionAuth will verify that the JWT is valid and has not expired. Once the JWT has been validated, FusionAuth will reconcile it to ensure that the User exists and is up-to-date.\n\n\n\n[External JWT Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/external-jwt/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst jwt = new fusionauth.FusionAuthIdpExternalJwt(\"jwt\", {\n claimMap: {\n dept: \"RegistrationData\",\n first_name: \"firstName\",\n last_name: \"lastName\",\n },\n debug: false,\n enabled: true,\n headerKeyParameter: \"kid\",\n oauth2AuthorizationEndpoint: \"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\",\n oauth2TokenEndpoint: \"https://acme.com/adfs/oauth2/token\",\n uniqueIdentityClaim: \"email\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\njwt = fusionauth.FusionAuthIdpExternalJwt(\"jwt\",\n claim_map={\n \"dept\": \"RegistrationData\",\n \"first_name\": \"firstName\",\n \"last_name\": \"lastName\",\n },\n debug=False,\n enabled=True,\n header_key_parameter=\"kid\",\n oauth2_authorization_endpoint=\"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\",\n oauth2_token_endpoint=\"https://acme.com/adfs/oauth2/token\",\n unique_identity_claim=\"email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var jwt = new Fusionauth.FusionAuthIdpExternalJwt(\"jwt\", new()\n {\n ClaimMap = \n {\n { \"dept\", \"RegistrationData\" },\n { \"first_name\", \"firstName\" },\n { \"last_name\", \"lastName\" },\n },\n Debug = false,\n Enabled = true,\n HeaderKeyParameter = \"kid\",\n Oauth2AuthorizationEndpoint = \"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\",\n Oauth2TokenEndpoint = \"https://acme.com/adfs/oauth2/token\",\n UniqueIdentityClaim = \"email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpExternalJwt(ctx, \"jwt\", \u0026fusionauth.FusionAuthIdpExternalJwtArgs{\n\t\t\tClaimMap: pulumi.AnyMap{\n\t\t\t\t\"dept\": pulumi.Any(\"RegistrationData\"),\n\t\t\t\t\"first_name\": pulumi.Any(\"firstName\"),\n\t\t\t\t\"last_name\": pulumi.Any(\"lastName\"),\n\t\t\t},\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tHeaderKeyParameter: pulumi.String(\"kid\"),\n\t\t\tOauth2AuthorizationEndpoint: pulumi.String(\"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\"),\n\t\t\tOauth2TokenEndpoint: pulumi.String(\"https://acme.com/adfs/oauth2/token\"),\n\t\t\tUniqueIdentityClaim: pulumi.String(\"email\"),\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.fusionauth.FusionAuthIdpExternalJwt;\nimport com.pulumi.fusionauth.FusionAuthIdpExternalJwtArgs;\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 jwt = new FusionAuthIdpExternalJwt(\"jwt\", FusionAuthIdpExternalJwtArgs.builder() \n .claimMap(Map.ofEntries(\n Map.entry(\"dept\", \"RegistrationData\"),\n Map.entry(\"first_name\", \"firstName\"),\n Map.entry(\"last_name\", \"lastName\")\n ))\n .debug(false)\n .enabled(true)\n .headerKeyParameter(\"kid\")\n .oauth2AuthorizationEndpoint(\"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\")\n .oauth2TokenEndpoint(\"https://acme.com/adfs/oauth2/token\")\n .uniqueIdentityClaim(\"email\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n jwt:\n type: fusionauth:FusionAuthIdpExternalJwt\n properties:\n claimMap:\n dept: RegistrationData\n first_name: firstName\n last_name: lastName\n debug: false\n enabled: true\n headerKeyParameter: kid\n oauth2AuthorizationEndpoint: https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\n oauth2TokenEndpoint: https://acme.com/adfs/oauth2/token\n uniqueIdentityClaim: email\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # External JWT Identity Provider Resource\n\nThis is a special type of identity provider that is only used via the JWT Reconcile API. This identity provider defines the claims inside the incoming JWT and how they map to fields in the FusionAuth User object.\n\nIn order for this identity provider to use the JWT, it also needs the public key or HMAC secret that the JWT was signed with. FusionAuth will verify that the JWT is valid and has not expired. Once the JWT has been validated, FusionAuth will reconcile it to ensure that the User exists and is up-to-date.\n\n\n\n[External JWT Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/external-jwt/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst jwt = new fusionauth.FusionAuthIdpExternalJwt(\"jwt\", {\n claimMap: {\n dept: \"RegistrationData\",\n first_name: \"firstName\",\n last_name: \"lastName\",\n },\n debug: false,\n enabled: true,\n headerKeyParameter: \"kid\",\n oauth2AuthorizationEndpoint: \"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\",\n oauth2TokenEndpoint: \"https://acme.com/adfs/oauth2/token\",\n uniqueIdentityClaim: \"email\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\njwt = fusionauth.FusionAuthIdpExternalJwt(\"jwt\",\n claim_map={\n \"dept\": \"RegistrationData\",\n \"first_name\": \"firstName\",\n \"last_name\": \"lastName\",\n },\n debug=False,\n enabled=True,\n header_key_parameter=\"kid\",\n oauth2_authorization_endpoint=\"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\",\n oauth2_token_endpoint=\"https://acme.com/adfs/oauth2/token\",\n unique_identity_claim=\"email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var jwt = new Fusionauth.FusionAuthIdpExternalJwt(\"jwt\", new()\n {\n ClaimMap = \n {\n { \"dept\", \"RegistrationData\" },\n { \"first_name\", \"firstName\" },\n { \"last_name\", \"lastName\" },\n },\n Debug = false,\n Enabled = true,\n HeaderKeyParameter = \"kid\",\n Oauth2AuthorizationEndpoint = \"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\",\n Oauth2TokenEndpoint = \"https://acme.com/adfs/oauth2/token\",\n UniqueIdentityClaim = \"email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpExternalJwt(ctx, \"jwt\", \u0026fusionauth.FusionAuthIdpExternalJwtArgs{\n\t\t\tClaimMap: pulumi.AnyMap{\n\t\t\t\t\"dept\": pulumi.Any(\"RegistrationData\"),\n\t\t\t\t\"first_name\": pulumi.Any(\"firstName\"),\n\t\t\t\t\"last_name\": pulumi.Any(\"lastName\"),\n\t\t\t},\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tHeaderKeyParameter: pulumi.String(\"kid\"),\n\t\t\tOauth2AuthorizationEndpoint: pulumi.String(\"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\"),\n\t\t\tOauth2TokenEndpoint: pulumi.String(\"https://acme.com/adfs/oauth2/token\"),\n\t\t\tUniqueIdentityClaim: pulumi.String(\"email\"),\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.fusionauth.FusionAuthIdpExternalJwt;\nimport com.pulumi.fusionauth.FusionAuthIdpExternalJwtArgs;\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 jwt = new FusionAuthIdpExternalJwt(\"jwt\", FusionAuthIdpExternalJwtArgs.builder() \n .claimMap(Map.ofEntries(\n Map.entry(\"dept\", \"RegistrationData\"),\n Map.entry(\"first_name\", \"firstName\"),\n Map.entry(\"last_name\", \"lastName\")\n ))\n .debug(false)\n .enabled(true)\n .headerKeyParameter(\"kid\")\n .oauth2AuthorizationEndpoint(\"https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\")\n .oauth2TokenEndpoint(\"https://acme.com/adfs/oauth2/token\")\n .uniqueIdentityClaim(\"email\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n jwt:\n type: fusionauth:FusionAuthIdpExternalJwt\n properties:\n claimMap:\n dept: RegistrationData\n first_name: firstName\n last_name: lastName\n debug: false\n enabled: true\n headerKeyParameter: kid\n oauth2AuthorizationEndpoint: https://acme.com/adfs/oauth2/authorize?client_id=cf3b00da-9551-460a-ad18-33232e6cbff0\u0026response_type=code\u0026redirect_uri=https://acme.com/oauth2/redirect\n oauth2TokenEndpoint: https://acme.com/adfs/oauth2/token\n uniqueIdentityClaim: email\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -6680,7 +4490,7 @@ } }, "fusionauth:index/fusionAuthIdpFacebook:FusionAuthIdpFacebook": { - "description": "## # Facebook Identity Provider Resource\n\nThe Facebook identity provider type will use the Facebook OAuth login API. It will provide a `Login with Facebook` button on FusionAuth’s login page that will leverage the Facebook login pop-up dialog. Additionally, this identity provider will call Facebook’s Graph API to load additional details about the user and store them in FusionAuth.\n\nThe email address returned by the Facebook Graph API will be used to create or lookup the existing user. Additional claims returned by Facebook can be used to reconcile the User to FusionAuth by using a Facebook Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the `email` address will be used from the available claims returned by Facebook.\n\nWhen the `picture` field is not requested FusionAuth will also call Facebook’s `/me/picture` API to load the user’s profile image and store it as the `imageUrl` in FusionAuth. When the `picture` field is requested, the user’s profile image will be returned by the `/me` API and a second request to the `/me/picture` endpoint will not be required.\n\nFinally, FusionAuth will call Facebook’s `/oauth/access_token` API to exchange the login token for a long-lived Facebook token. This token is stored in the `UserRegistration` object inside the `tokens` Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\nPlease note if an `idp_hint` is appended to the OAuth Authorize endpoint, then the interaction behavior will be defaulted to `redirect`, even if popup interaction is explicitly configured.\n\n[Facebook Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/facebook)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst facebook = new fusionauth.FusionAuthIdpFacebook(\"facebook\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Facebook\",\n debug: false,\n enabled: true,\n appId: \"9876543210\",\n clientSecret: \"716a572f917640698cdb99e9d7e64115\",\n fields: \"email\",\n permissions: \"email\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nfacebook = fusionauth.FusionAuthIdpFacebook(\"facebook\",\n application_configurations=[fusionauth.FusionAuthIdpFacebookApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Facebook\",\n debug=False,\n enabled=True,\n app_id=\"9876543210\",\n client_secret=\"716a572f917640698cdb99e9d7e64115\",\n fields=\"email\",\n permissions=\"email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var facebook = new Fusionauth.FusionAuthIdpFacebook(\"facebook\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpFacebookApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Facebook\",\n Debug = false,\n Enabled = true,\n AppId = \"9876543210\",\n ClientSecret = \"716a572f917640698cdb99e9d7e64115\",\n Fields = \"email\",\n Permissions = \"email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpFacebook(ctx, \"facebook\", \u0026fusionauth.FusionAuthIdpFacebookArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpFacebookApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpFacebookApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Facebook\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tAppId: pulumi.String(\"9876543210\"),\n\t\t\tClientSecret: pulumi.String(\"716a572f917640698cdb99e9d7e64115\"),\n\t\t\tFields: pulumi.String(\"email\"),\n\t\t\tPermissions: pulumi.String(\"email\"),\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.fusionauth.FusionAuthIdpFacebook;\nimport com.pulumi.fusionauth.FusionAuthIdpFacebookArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpFacebookApplicationConfigurationArgs;\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 facebook = new FusionAuthIdpFacebook(\"facebook\", FusionAuthIdpFacebookArgs.builder() \n .applicationConfigurations(FusionAuthIdpFacebookApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Facebook\")\n .debug(false)\n .enabled(true)\n .appId(\"9876543210\")\n .clientSecret(\"716a572f917640698cdb99e9d7e64115\")\n .fields(\"email\")\n .permissions(\"email\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n facebook:\n type: fusionauth:FusionAuthIdpFacebook\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Facebook\n debug: false\n enabled: true\n appId: '9876543210'\n clientSecret: 716a572f917640698cdb99e9d7e64115\n fields: email\n permissions: email\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Facebook Identity Provider Resource\n\nThe Facebook identity provider type will use the Facebook OAuth login API. It will provide a `Login with Facebook` button on FusionAuth’s login page that will leverage the Facebook login pop-up dialog. Additionally, this identity provider will call Facebook’s Graph API to load additional details about the user and store them in FusionAuth.\n\nThe email address returned by the Facebook Graph API will be used to create or lookup the existing user. Additional claims returned by Facebook can be used to reconcile the User to FusionAuth by using a Facebook Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the `email` address will be used from the available claims returned by Facebook.\n\nWhen the `picture` field is not requested FusionAuth will also call Facebook’s `/me/picture` API to load the user’s profile image and store it as the `imageUrl` in FusionAuth. When the `picture` field is requested, the user’s profile image will be returned by the `/me` API and a second request to the `/me/picture` endpoint will not be required.\n\nFinally, FusionAuth will call Facebook’s `/oauth/access_token` API to exchange the login token for a long-lived Facebook token. This token is stored in the `UserRegistration` object inside the `tokens` Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\nPlease note if an `idp_hint` is appended to the OAuth Authorize endpoint, then the interaction behavior will be defaulted to `redirect`, even if popup interaction is explicitly configured.\n\n[Facebook Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/facebook)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst facebook = new fusionauth.FusionAuthIdpFacebook(\"facebook\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Facebook\",\n debug: false,\n enabled: true,\n appId: \"9876543210\",\n clientSecret: \"716a572f917640698cdb99e9d7e64115\",\n fields: \"email\",\n permissions: \"email\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nfacebook = fusionauth.FusionAuthIdpFacebook(\"facebook\",\n application_configurations=[fusionauth.FusionAuthIdpFacebookApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Facebook\",\n debug=False,\n enabled=True,\n app_id=\"9876543210\",\n client_secret=\"716a572f917640698cdb99e9d7e64115\",\n fields=\"email\",\n permissions=\"email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var facebook = new Fusionauth.FusionAuthIdpFacebook(\"facebook\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpFacebookApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Facebook\",\n Debug = false,\n Enabled = true,\n AppId = \"9876543210\",\n ClientSecret = \"716a572f917640698cdb99e9d7e64115\",\n Fields = \"email\",\n Permissions = \"email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpFacebook(ctx, \"facebook\", \u0026fusionauth.FusionAuthIdpFacebookArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpFacebookApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpFacebookApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Facebook\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tAppId: pulumi.String(\"9876543210\"),\n\t\t\tClientSecret: pulumi.String(\"716a572f917640698cdb99e9d7e64115\"),\n\t\t\tFields: pulumi.String(\"email\"),\n\t\t\tPermissions: pulumi.String(\"email\"),\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.fusionauth.FusionAuthIdpFacebook;\nimport com.pulumi.fusionauth.FusionAuthIdpFacebookArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpFacebookApplicationConfigurationArgs;\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 facebook = new FusionAuthIdpFacebook(\"facebook\", FusionAuthIdpFacebookArgs.builder() \n .applicationConfigurations(FusionAuthIdpFacebookApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Facebook\")\n .debug(false)\n .enabled(true)\n .appId(\"9876543210\")\n .clientSecret(\"716a572f917640698cdb99e9d7e64115\")\n .fields(\"email\")\n .permissions(\"email\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n facebook:\n type: fusionauth:FusionAuthIdpFacebook\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Facebook\n debug: false\n enabled: true\n appId: '9876543210'\n clientSecret: 716a572f917640698cdb99e9d7e64115\n fields: email\n permissions: email\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "appId": { "type": "string", @@ -6870,7 +4680,7 @@ } }, "fusionauth:index/fusionAuthIdpGoogle:FusionAuthIdpGoogle": { - "description": "## # Google Identity Provider Resource\n\nThe Google identity provider type will use the Google OAuth v2.0 login API. it will provide a Login with Google button on FusionAuth’s login page that will leverage the Google login pop-up dialog. Additionally, this identity provider will call Google’s /oauth2/v3/tokeninfo API to load additional details about the user and store them in FusionAuth.\n\nThe email address returned by the Google Token info API will be used to create or lookup the existing user. Additional claims returned by Google can be used to reconcile the User to FusionAuth by using a Google Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the email address will be used from the available claims returned by Google.\n\nFusionAuth will also store the Google access_token that is returned from the login pop-up dialog in the UserRegistration object inside the tokens Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\n[Google Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/google#create-the-google-identity-provider)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst google = new fusionauth.FusionAuthIdpGoogle(\"google\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Google\",\n debug: false,\n clientId: \"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\",\n clientSecret: \"BRr7x7xz_-cXxIFznBDIdxF1\",\n scope: \"profile\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\ngoogle = fusionauth.FusionAuthIdpGoogle(\"google\",\n application_configurations=[fusionauth.FusionAuthIdpGoogleApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Google\",\n debug=False,\n client_id=\"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\",\n client_secret=\"BRr7x7xz_-cXxIFznBDIdxF1\",\n scope=\"profile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var google = new Fusionauth.FusionAuthIdpGoogle(\"google\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpGoogleApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Google\",\n Debug = false,\n ClientId = \"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\",\n ClientSecret = \"BRr7x7xz_-cXxIFznBDIdxF1\",\n Scope = \"profile\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpGoogle(ctx, \"google\", \u0026fusionauth.FusionAuthIdpGoogleArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpGoogleApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpGoogleApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Google\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tClientId: pulumi.String(\"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\"),\n\t\t\tClientSecret: pulumi.String(\"BRr7x7xz_-cXxIFznBDIdxF1\"),\n\t\t\tScope: pulumi.String(\"profile\"),\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.fusionauth.FusionAuthIdpGoogle;\nimport com.pulumi.fusionauth.FusionAuthIdpGoogleArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpGoogleApplicationConfigurationArgs;\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 google = new FusionAuthIdpGoogle(\"google\", FusionAuthIdpGoogleArgs.builder() \n .applicationConfigurations(FusionAuthIdpGoogleApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Google\")\n .debug(false)\n .clientId(\"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\")\n .clientSecret(\"BRr7x7xz_-cXxIFznBDIdxF1\")\n .scope(\"profile\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n google:\n type: fusionauth:FusionAuthIdpGoogle\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Google\n debug: false\n clientId: 254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\n clientSecret: BRr7x7xz_-cXxIFznBDIdxF1\n scope: profile\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Google Identity Provider Resource\n\nThe Google identity provider type will use the Google OAuth v2.0 login API. it will provide a Login with Google button on FusionAuth’s login page that will leverage the Google login pop-up dialog. Additionally, this identity provider will call Google’s /oauth2/v3/tokeninfo API to load additional details about the user and store them in FusionAuth.\n\nThe email address returned by the Google Token info API will be used to create or lookup the existing user. Additional claims returned by Google can be used to reconcile the User to FusionAuth by using a Google Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the email address will be used from the available claims returned by Google.\n\nFusionAuth will also store the Google access_token that is returned from the login pop-up dialog in the UserRegistration object inside the tokens Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\n[Google Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/google#create-the-google-identity-provider)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst google = new fusionauth.FusionAuthIdpGoogle(\"google\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Google\",\n debug: false,\n clientId: \"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\",\n clientSecret: \"BRr7x7xz_-cXxIFznBDIdxF1\",\n scope: \"profile\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\ngoogle = fusionauth.FusionAuthIdpGoogle(\"google\",\n application_configurations=[fusionauth.FusionAuthIdpGoogleApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Google\",\n debug=False,\n client_id=\"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\",\n client_secret=\"BRr7x7xz_-cXxIFznBDIdxF1\",\n scope=\"profile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var google = new Fusionauth.FusionAuthIdpGoogle(\"google\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpGoogleApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Google\",\n Debug = false,\n ClientId = \"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\",\n ClientSecret = \"BRr7x7xz_-cXxIFznBDIdxF1\",\n Scope = \"profile\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpGoogle(ctx, \"google\", \u0026fusionauth.FusionAuthIdpGoogleArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpGoogleApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpGoogleApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Google\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tClientId: pulumi.String(\"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\"),\n\t\t\tClientSecret: pulumi.String(\"BRr7x7xz_-cXxIFznBDIdxF1\"),\n\t\t\tScope: pulumi.String(\"profile\"),\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.fusionauth.FusionAuthIdpGoogle;\nimport com.pulumi.fusionauth.FusionAuthIdpGoogleArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpGoogleApplicationConfigurationArgs;\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 google = new FusionAuthIdpGoogle(\"google\", FusionAuthIdpGoogleArgs.builder() \n .applicationConfigurations(FusionAuthIdpGoogleApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Google\")\n .debug(false)\n .clientId(\"254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\")\n .clientSecret(\"BRr7x7xz_-cXxIFznBDIdxF1\")\n .scope(\"profile\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n google:\n type: fusionauth:FusionAuthIdpGoogle\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Google\n debug: false\n clientId: 254311943570-8e2i2hds0qdnee4124socceeh2q2mtjl.apps.googleusercontent.com\n clientSecret: BRr7x7xz_-cXxIFznBDIdxF1\n scope: profile\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -7045,7 +4855,7 @@ } }, "fusionauth:index/fusionAuthIdpLinkedIn:FusionAuthIdpLinkedIn": { - "description": "## # LinkedIn Identity Provider Resource\n\nThe LinkedIn identity provider type will use OAuth 2.0 to authenticate a user with LinkedIn. It will also provide a\n`Login with LinkedIn` button on FusionAuth’s login page that will direct a user to the LinkedIn login page.\nAdditionally, after successful user authentication, this identity provider will call LinkedIn’s `/v2/me` and\n`/v2/emailAddress` APIs to load additional details about the user and store them in FusionAuth.\n\nThe email address returned by the LinkedIn `/v2/emailAddress` API will be used to create or look up the existing user.\nAdditional claims returned by LinkedIn can be used to reconcile the User to FusionAuth by using a LinkedIn Reconcile\nlambda. Unless you assign a reconcile lambda to this provider, only the email address will be used from the available\nclaims returned by LinkedIn.\n\nFusionAuth will also store the LinkedIn `access_token` returned from the login endpoint in the `identityProviderLink`\nobject. This object is accessible using the Link API.\n\nThe `identityProviderLink` object stores the token so that you can use it in your application to call LinkedIn APIs on\nbehalf of the user if desired.\n\n[LinkedIn Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/linkedin)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst linkedin = new fusionauth.FusionAuthIdpLinkedIn(\"linkedin\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with LinkedIn\",\n debug: false,\n enabled: true,\n clientId: \"9876543210\",\n clientSecret: \"716a572f917640698cdb99e9d7e64115\",\n scope: \"r_emailaddress r_liteprofile\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nlinkedin = fusionauth.FusionAuthIdpLinkedIn(\"linkedin\",\n application_configurations=[fusionauth.FusionAuthIdpLinkedInApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with LinkedIn\",\n debug=False,\n enabled=True,\n client_id=\"9876543210\",\n client_secret=\"716a572f917640698cdb99e9d7e64115\",\n scope=\"r_emailaddress r_liteprofile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var linkedin = new Fusionauth.FusionAuthIdpLinkedIn(\"linkedin\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpLinkedInApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with LinkedIn\",\n Debug = false,\n Enabled = true,\n ClientId = \"9876543210\",\n ClientSecret = \"716a572f917640698cdb99e9d7e64115\",\n Scope = \"r_emailaddress r_liteprofile\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpLinkedIn(ctx, \"linkedin\", \u0026fusionauth.FusionAuthIdpLinkedInArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpLinkedInApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpLinkedInApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with LinkedIn\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tClientId: pulumi.String(\"9876543210\"),\n\t\t\tClientSecret: pulumi.String(\"716a572f917640698cdb99e9d7e64115\"),\n\t\t\tScope: pulumi.String(\"r_emailaddress r_liteprofile\"),\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.fusionauth.FusionAuthIdpLinkedIn;\nimport com.pulumi.fusionauth.FusionAuthIdpLinkedInArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpLinkedInApplicationConfigurationArgs;\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 linkedin = new FusionAuthIdpLinkedIn(\"linkedin\", FusionAuthIdpLinkedInArgs.builder() \n .applicationConfigurations(FusionAuthIdpLinkedInApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with LinkedIn\")\n .debug(false)\n .enabled(true)\n .clientId(\"9876543210\")\n .clientSecret(\"716a572f917640698cdb99e9d7e64115\")\n .scope(\"r_emailaddress r_liteprofile\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n linkedin:\n type: fusionauth:FusionAuthIdpLinkedIn\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n buttonText: Login with LinkedIn\n debug: false\n enabled: true\n clientId: '9876543210'\n clientSecret: 716a572f917640698cdb99e9d7e64115\n scope: r_emailaddress r_liteprofile\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # LinkedIn Identity Provider Resource\n\nThe LinkedIn identity provider type will use OAuth 2.0 to authenticate a user with LinkedIn. It will also provide a\n`Login with LinkedIn` button on FusionAuth’s login page that will direct a user to the LinkedIn login page.\nAdditionally, after successful user authentication, this identity provider will call LinkedIn’s `/v2/me` and\n`/v2/emailAddress` APIs to load additional details about the user and store them in FusionAuth.\n\nThe email address returned by the LinkedIn `/v2/emailAddress` API will be used to create or look up the existing user.\nAdditional claims returned by LinkedIn can be used to reconcile the User to FusionAuth by using a LinkedIn Reconcile\nlambda. Unless you assign a reconcile lambda to this provider, only the email address will be used from the available\nclaims returned by LinkedIn.\n\nFusionAuth will also store the LinkedIn `access_token` returned from the login endpoint in the `identityProviderLink`\nobject. This object is accessible using the Link API.\n\nThe `identityProviderLink` object stores the token so that you can use it in your application to call LinkedIn APIs on\nbehalf of the user if desired.\n\n[LinkedIn Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/linkedin)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst linkedin = new fusionauth.FusionAuthIdpLinkedIn(\"linkedin\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with LinkedIn\",\n debug: false,\n enabled: true,\n clientId: \"9876543210\",\n clientSecret: \"716a572f917640698cdb99e9d7e64115\",\n scope: \"r_emailaddress r_liteprofile\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nlinkedin = fusionauth.FusionAuthIdpLinkedIn(\"linkedin\",\n application_configurations=[fusionauth.FusionAuthIdpLinkedInApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with LinkedIn\",\n debug=False,\n enabled=True,\n client_id=\"9876543210\",\n client_secret=\"716a572f917640698cdb99e9d7e64115\",\n scope=\"r_emailaddress r_liteprofile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var linkedin = new Fusionauth.FusionAuthIdpLinkedIn(\"linkedin\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpLinkedInApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with LinkedIn\",\n Debug = false,\n Enabled = true,\n ClientId = \"9876543210\",\n ClientSecret = \"716a572f917640698cdb99e9d7e64115\",\n Scope = \"r_emailaddress r_liteprofile\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpLinkedIn(ctx, \"linkedin\", \u0026fusionauth.FusionAuthIdpLinkedInArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpLinkedInApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpLinkedInApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with LinkedIn\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tClientId: pulumi.String(\"9876543210\"),\n\t\t\tClientSecret: pulumi.String(\"716a572f917640698cdb99e9d7e64115\"),\n\t\t\tScope: pulumi.String(\"r_emailaddress r_liteprofile\"),\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.fusionauth.FusionAuthIdpLinkedIn;\nimport com.pulumi.fusionauth.FusionAuthIdpLinkedInArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpLinkedInApplicationConfigurationArgs;\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 linkedin = new FusionAuthIdpLinkedIn(\"linkedin\", FusionAuthIdpLinkedInArgs.builder() \n .applicationConfigurations(FusionAuthIdpLinkedInApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with LinkedIn\")\n .debug(false)\n .enabled(true)\n .clientId(\"9876543210\")\n .clientSecret(\"716a572f917640698cdb99e9d7e64115\")\n .scope(\"r_emailaddress r_liteprofile\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n linkedin:\n type: fusionauth:FusionAuthIdpLinkedIn\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n buttonText: Login with LinkedIn\n debug: false\n enabled: true\n clientId: '9876543210'\n clientSecret: 716a572f917640698cdb99e9d7e64115\n scope: r_emailaddress r_liteprofile\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -7211,7 +5021,7 @@ } }, "fusionauth:index/fusionAuthIdpOpenIdConnect:FusionAuthIdpOpenIdConnect": { - "description": "## # OpenID Connect Identity Provider Resource\n\nOpenID Connect identity providers connect to external OpenID Connect login systems. This type of login will optionally provide a Login with …​ button on FusionAuth’s login page. This button is customizable by using different properties of the identity provider.\n\nOptionally, this identity provider can define one or more domains it is associated with. This is useful for allowing employees to log in with their corporate credentials. As long as the company has an identity solution that provides OpenID Connect, you can leverage this feature. This is referred to as a Domain Based Identity Provider. If you enable domains for an identity provider, the Login with …​ button will not be displayed. Instead, only the email form field will be displayed initially on the FusionAuth login page. Once the user types in their email address, FusionAuth will determine if the user is logging in locally or if they should be redirected to this identity provider. This is determined by extracting the domain from their email address and comparing it to the domains associated with the identity provider.\n\nFusionAuth will also leverage the /userinfo API that is part of the OpenID Connect specification. The email address returned from the Userinfo response will be used to create or lookup the existing user. Additional claims from the Userinfo response can be used to reconcile the User in FusionAuth by using an OpenID Connect Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the email address will be used from the available claims returned by the OpenID Connect identity provider.\n\nIf the external OpenID Connect identity provider returns a refresh token, it will be stored in the UserRegistration object inside the tokens Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\n[OpenID Connect Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/openid-connect)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst openID = new fusionauth.FusionAuthIdpOpenIdConnect(\"openID\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n oauth2AuthorizationEndpoint: \"https://acme.com/oauth2/authorization\",\n oauth2ClientId: \"191c23dc-b772-4558-bd21-dc1cbf74ae21\",\n oauth2ClientSecret: \"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\",\n oauth2ClientAuthenticationMethod: \"client_secret_basic\",\n oauth2Scope: \"openid offline_access\",\n oauth2TokenEndpoint: \"https://acme.com/oauth2/token\",\n oauth2UserInfoEndpoint: \"https://acme.com/oauth2/userinfo\",\n buttonText: \"Login with OpenID Connect\",\n debug: false,\n enabled: true,\n tenantConfigurations: [{\n tenantId: fusionauth_tenant.example.id,\n limitUserLinkCountEnabled: false,\n limitUserLinkCountMaximumLinks: 42,\n }],\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nopen_id = fusionauth.FusionAuthIdpOpenIdConnect(\"openID\",\n application_configurations=[fusionauth.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n oauth2_authorization_endpoint=\"https://acme.com/oauth2/authorization\",\n oauth2_client_id=\"191c23dc-b772-4558-bd21-dc1cbf74ae21\",\n oauth2_client_secret=\"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\",\n oauth2_client_authentication_method=\"client_secret_basic\",\n oauth2_scope=\"openid offline_access\",\n oauth2_token_endpoint=\"https://acme.com/oauth2/token\",\n oauth2_user_info_endpoint=\"https://acme.com/oauth2/userinfo\",\n button_text=\"Login with OpenID Connect\",\n debug=False,\n enabled=True,\n tenant_configurations=[fusionauth.FusionAuthIdpOpenIdConnectTenantConfigurationArgs(\n tenant_id=fusionauth_tenant[\"example\"][\"id\"],\n limit_user_link_count_enabled=False,\n limit_user_link_count_maximum_links=42,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var openID = new Fusionauth.FusionAuthIdpOpenIdConnect(\"openID\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n Oauth2AuthorizationEndpoint = \"https://acme.com/oauth2/authorization\",\n Oauth2ClientId = \"191c23dc-b772-4558-bd21-dc1cbf74ae21\",\n Oauth2ClientSecret = \"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\",\n Oauth2ClientAuthenticationMethod = \"client_secret_basic\",\n Oauth2Scope = \"openid offline_access\",\n Oauth2TokenEndpoint = \"https://acme.com/oauth2/token\",\n Oauth2UserInfoEndpoint = \"https://acme.com/oauth2/userinfo\",\n ButtonText = \"Login with OpenID Connect\",\n Debug = false,\n Enabled = true,\n TenantConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpOpenIdConnectTenantConfigurationArgs\n {\n TenantId = fusionauth_tenant.Example.Id,\n LimitUserLinkCountEnabled = false,\n LimitUserLinkCountMaximumLinks = 42,\n },\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpOpenIdConnect(ctx, \"openID\", \u0026fusionauth.FusionAuthIdpOpenIdConnectArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpOpenIdConnectApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOauth2AuthorizationEndpoint: pulumi.String(\"https://acme.com/oauth2/authorization\"),\n\t\t\tOauth2ClientId: pulumi.String(\"191c23dc-b772-4558-bd21-dc1cbf74ae21\"),\n\t\t\tOauth2ClientSecret: pulumi.String(\"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\"),\n\t\t\tOauth2ClientAuthenticationMethod: pulumi.String(\"client_secret_basic\"),\n\t\t\tOauth2Scope: pulumi.String(\"openid offline_access\"),\n\t\t\tOauth2TokenEndpoint: pulumi.String(\"https://acme.com/oauth2/token\"),\n\t\t\tOauth2UserInfoEndpoint: pulumi.String(\"https://acme.com/oauth2/userinfo\"),\n\t\t\tButtonText: pulumi.String(\"Login with OpenID Connect\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tTenantConfigurations: fusionauth.FusionAuthIdpOpenIdConnectTenantConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpOpenIdConnectTenantConfigurationArgs{\n\t\t\t\t\tTenantId: pulumi.Any(fusionauth_tenant.Example.Id),\n\t\t\t\t\tLimitUserLinkCountEnabled: pulumi.Bool(false),\n\t\t\t\t\tLimitUserLinkCountMaximumLinks: pulumi.Int(42),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.fusionauth.FusionAuthIdpOpenIdConnect;\nimport com.pulumi.fusionauth.FusionAuthIdpOpenIdConnectArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpOpenIdConnectTenantConfigurationArgs;\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 openID = new FusionAuthIdpOpenIdConnect(\"openID\", FusionAuthIdpOpenIdConnectArgs.builder() \n .applicationConfigurations(FusionAuthIdpOpenIdConnectApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .oauth2AuthorizationEndpoint(\"https://acme.com/oauth2/authorization\")\n .oauth2ClientId(\"191c23dc-b772-4558-bd21-dc1cbf74ae21\")\n .oauth2ClientSecret(\"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\")\n .oauth2ClientAuthenticationMethod(\"client_secret_basic\")\n .oauth2Scope(\"openid offline_access\")\n .oauth2TokenEndpoint(\"https://acme.com/oauth2/token\")\n .oauth2UserInfoEndpoint(\"https://acme.com/oauth2/userinfo\")\n .buttonText(\"Login with OpenID Connect\")\n .debug(false)\n .enabled(true)\n .tenantConfigurations(FusionAuthIdpOpenIdConnectTenantConfigurationArgs.builder()\n .tenantId(fusionauth_tenant.example().id())\n .limitUserLinkCountEnabled(false)\n .limitUserLinkCountMaximumLinks(42)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n openID:\n type: fusionauth:FusionAuthIdpOpenIdConnect\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n oauth2AuthorizationEndpoint: https://acme.com/oauth2/authorization\n oauth2ClientId: 191c23dc-b772-4558-bd21-dc1cbf74ae21\n oauth2ClientSecret: SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\n oauth2ClientAuthenticationMethod: client_secret_basic\n oauth2Scope: openid offline_access\n oauth2TokenEndpoint: https://acme.com/oauth2/token\n oauth2UserInfoEndpoint: https://acme.com/oauth2/userinfo\n buttonText: Login with OpenID Connect\n debug: false\n enabled: true\n tenantConfigurations:\n - tenantId: ${fusionauth_tenant.example.id}\n limitUserLinkCountEnabled: false\n limitUserLinkCountMaximumLinks: 42\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # OpenID Connect Identity Provider Resource\n\nOpenID Connect identity providers connect to external OpenID Connect login systems. This type of login will optionally provide a Login with …​ button on FusionAuth’s login page. This button is customizable by using different properties of the identity provider.\n\nOptionally, this identity provider can define one or more domains it is associated with. This is useful for allowing employees to log in with their corporate credentials. As long as the company has an identity solution that provides OpenID Connect, you can leverage this feature. This is referred to as a Domain Based Identity Provider. If you enable domains for an identity provider, the Login with …​ button will not be displayed. Instead, only the email form field will be displayed initially on the FusionAuth login page. Once the user types in their email address, FusionAuth will determine if the user is logging in locally or if they should be redirected to this identity provider. This is determined by extracting the domain from their email address and comparing it to the domains associated with the identity provider.\n\nFusionAuth will also leverage the /userinfo API that is part of the OpenID Connect specification. The email address returned from the Userinfo response will be used to create or lookup the existing user. Additional claims from the Userinfo response can be used to reconcile the User in FusionAuth by using an OpenID Connect Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the email address will be used from the available claims returned by the OpenID Connect identity provider.\n\nIf the external OpenID Connect identity provider returns a refresh token, it will be stored in the UserRegistration object inside the tokens Map. This Map stores the tokens from the various identity providers so that you can use them in your application to call their APIs.\n\n[OpenID Connect Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/openid-connect)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst openID = new fusionauth.FusionAuthIdpOpenIdConnect(\"openID\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n createRegistration: true,\n enabled: true,\n }],\n oauth2AuthorizationEndpoint: \"https://acme.com/oauth2/authorization\",\n oauth2ClientId: \"191c23dc-b772-4558-bd21-dc1cbf74ae21\",\n oauth2ClientSecret: \"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\",\n oauth2ClientAuthenticationMethod: \"client_secret_basic\",\n oauth2Scope: \"openid offline_access\",\n oauth2TokenEndpoint: \"https://acme.com/oauth2/token\",\n oauth2UserInfoEndpoint: \"https://acme.com/oauth2/userinfo\",\n buttonText: \"Login with OpenID Connect\",\n debug: false,\n enabled: true,\n tenantConfigurations: [{\n tenantId: fusionauth_tenant.example.id,\n limitUserLinkCountEnabled: false,\n limitUserLinkCountMaximumLinks: 42,\n }],\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nopen_id = fusionauth.FusionAuthIdpOpenIdConnect(\"openID\",\n application_configurations=[fusionauth.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n oauth2_authorization_endpoint=\"https://acme.com/oauth2/authorization\",\n oauth2_client_id=\"191c23dc-b772-4558-bd21-dc1cbf74ae21\",\n oauth2_client_secret=\"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\",\n oauth2_client_authentication_method=\"client_secret_basic\",\n oauth2_scope=\"openid offline_access\",\n oauth2_token_endpoint=\"https://acme.com/oauth2/token\",\n oauth2_user_info_endpoint=\"https://acme.com/oauth2/userinfo\",\n button_text=\"Login with OpenID Connect\",\n debug=False,\n enabled=True,\n tenant_configurations=[fusionauth.FusionAuthIdpOpenIdConnectTenantConfigurationArgs(\n tenant_id=fusionauth_tenant[\"example\"][\"id\"],\n limit_user_link_count_enabled=False,\n limit_user_link_count_maximum_links=42,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var openID = new Fusionauth.FusionAuthIdpOpenIdConnect(\"openID\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n Oauth2AuthorizationEndpoint = \"https://acme.com/oauth2/authorization\",\n Oauth2ClientId = \"191c23dc-b772-4558-bd21-dc1cbf74ae21\",\n Oauth2ClientSecret = \"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\",\n Oauth2ClientAuthenticationMethod = \"client_secret_basic\",\n Oauth2Scope = \"openid offline_access\",\n Oauth2TokenEndpoint = \"https://acme.com/oauth2/token\",\n Oauth2UserInfoEndpoint = \"https://acme.com/oauth2/userinfo\",\n ButtonText = \"Login with OpenID Connect\",\n Debug = false,\n Enabled = true,\n TenantConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpOpenIdConnectTenantConfigurationArgs\n {\n TenantId = fusionauth_tenant.Example.Id,\n LimitUserLinkCountEnabled = false,\n LimitUserLinkCountMaximumLinks = 42,\n },\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpOpenIdConnect(ctx, \"openID\", \u0026fusionauth.FusionAuthIdpOpenIdConnectArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpOpenIdConnectApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOauth2AuthorizationEndpoint: pulumi.String(\"https://acme.com/oauth2/authorization\"),\n\t\t\tOauth2ClientId: pulumi.String(\"191c23dc-b772-4558-bd21-dc1cbf74ae21\"),\n\t\t\tOauth2ClientSecret: pulumi.String(\"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\"),\n\t\t\tOauth2ClientAuthenticationMethod: pulumi.String(\"client_secret_basic\"),\n\t\t\tOauth2Scope: pulumi.String(\"openid offline_access\"),\n\t\t\tOauth2TokenEndpoint: pulumi.String(\"https://acme.com/oauth2/token\"),\n\t\t\tOauth2UserInfoEndpoint: pulumi.String(\"https://acme.com/oauth2/userinfo\"),\n\t\t\tButtonText: pulumi.String(\"Login with OpenID Connect\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tTenantConfigurations: fusionauth.FusionAuthIdpOpenIdConnectTenantConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpOpenIdConnectTenantConfigurationArgs{\n\t\t\t\t\tTenantId: pulumi.Any(fusionauth_tenant.Example.Id),\n\t\t\t\t\tLimitUserLinkCountEnabled: pulumi.Bool(false),\n\t\t\t\t\tLimitUserLinkCountMaximumLinks: pulumi.Int(42),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.fusionauth.FusionAuthIdpOpenIdConnect;\nimport com.pulumi.fusionauth.FusionAuthIdpOpenIdConnectArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpOpenIdConnectApplicationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpOpenIdConnectTenantConfigurationArgs;\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 openID = new FusionAuthIdpOpenIdConnect(\"openID\", FusionAuthIdpOpenIdConnectArgs.builder() \n .applicationConfigurations(FusionAuthIdpOpenIdConnectApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .oauth2AuthorizationEndpoint(\"https://acme.com/oauth2/authorization\")\n .oauth2ClientId(\"191c23dc-b772-4558-bd21-dc1cbf74ae21\")\n .oauth2ClientSecret(\"SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\")\n .oauth2ClientAuthenticationMethod(\"client_secret_basic\")\n .oauth2Scope(\"openid offline_access\")\n .oauth2TokenEndpoint(\"https://acme.com/oauth2/token\")\n .oauth2UserInfoEndpoint(\"https://acme.com/oauth2/userinfo\")\n .buttonText(\"Login with OpenID Connect\")\n .debug(false)\n .enabled(true)\n .tenantConfigurations(FusionAuthIdpOpenIdConnectTenantConfigurationArgs.builder()\n .tenantId(fusionauth_tenant.example().id())\n .limitUserLinkCountEnabled(false)\n .limitUserLinkCountMaximumLinks(42)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n openID:\n type: fusionauth:FusionAuthIdpOpenIdConnect\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n createRegistration: true\n enabled: true\n oauth2AuthorizationEndpoint: https://acme.com/oauth2/authorization\n oauth2ClientId: 191c23dc-b772-4558-bd21-dc1cbf74ae21\n oauth2ClientSecret: SUsnoP0pWUYfXvWbSe5pvj8Di5nAxOvO\n oauth2ClientAuthenticationMethod: client_secret_basic\n oauth2Scope: openid offline_access\n oauth2TokenEndpoint: https://acme.com/oauth2/token\n oauth2UserInfoEndpoint: https://acme.com/oauth2/userinfo\n buttonText: Login with OpenID Connect\n debug: false\n enabled: true\n tenantConfigurations:\n - tenantId: ${fusionauth_tenant.example.id}\n limitUserLinkCountEnabled: false\n limitUserLinkCountMaximumLinks: 42\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -7542,7 +5352,7 @@ } }, "fusionauth:index/fusionAuthIdpPsn:FusionAuthIdpPsn": { - "description": "## # Sony Playstation Network Identity Provider Resource\n\nThe Sony PlayStation Network identity provider type will use the Sony OAuth v2.0 login API. It will also provide a Login with Sony PlayStation Network button on FusionAuth’s login page that will direct a user to the Sony login page.\n\nThis identity provider will call Sony’s API to load the user’s email and online_id and use those as email and username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. Additional claims returned by Sony PlayStation Network can be used to reconcile the user to FusionAuth by using a Sony PlayStation Network Reconcile Lambda.\n\nFusionAuth will also store the Sony PlayStation Network access_token returned from the Sony PlayStation Network API in the link between the user and the identity provider. This token can be used by an application to make further requests to Sony PlayStation Network APIs on behalf of the user.\n\n\n\n\n\n[Sony PlayStation Network Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/sonypsn/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst sonyPsn = new fusionauth.FusionAuthIdpPsn(\"sonyPsn\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.my_app.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Playstation\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n clientSecret: \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nsony_psn = fusionauth.FusionAuthIdpPsn(\"sonyPsn\",\n application_configurations=[fusionauth.FusionAuthIdpPsnApplicationConfigurationArgs(\n application_id=fusionauth_application[\"my_app\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Playstation\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n client_secret=\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var sonyPsn = new Fusionauth.FusionAuthIdpPsn(\"sonyPsn\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpPsnApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.My_app.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Playstation\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n ClientSecret = \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpPsn(ctx, \"sonyPsn\", \u0026fusionauth.FusionAuthIdpPsnArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpPsnApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpPsnApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.My_app.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Playstation\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tClientSecret: pulumi.String(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\"),\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.fusionauth.FusionAuthIdpPsn;\nimport com.pulumi.fusionauth.FusionAuthIdpPsnArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpPsnApplicationConfigurationArgs;\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 sonyPsn = new FusionAuthIdpPsn(\"sonyPsn\", FusionAuthIdpPsnArgs.builder() \n .applicationConfigurations(FusionAuthIdpPsnApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.my_app().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Playstation\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .clientSecret(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n sonyPsn:\n type: fusionauth:FusionAuthIdpPsn\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.my_app.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Playstation\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n clientSecret: 693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Sony Playstation Network Identity Provider Resource\n\nThe Sony PlayStation Network identity provider type will use the Sony OAuth v2.0 login API. It will also provide a Login with Sony PlayStation Network button on FusionAuth’s login page that will direct a user to the Sony login page.\n\nThis identity provider will call Sony’s API to load the user’s email and online_id and use those as email and username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. Additional claims returned by Sony PlayStation Network can be used to reconcile the user to FusionAuth by using a Sony PlayStation Network Reconcile Lambda.\n\nFusionAuth will also store the Sony PlayStation Network access_token returned from the Sony PlayStation Network API in the link between the user and the identity provider. This token can be used by an application to make further requests to Sony PlayStation Network APIs on behalf of the user.\n\n\n\n\n\n[Sony PlayStation Network Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/sonypsn/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst sonyPsn = new fusionauth.FusionAuthIdpPsn(\"sonyPsn\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.my_app.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Playstation\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n clientSecret: \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nsony_psn = fusionauth.FusionAuthIdpPsn(\"sonyPsn\",\n application_configurations=[fusionauth.FusionAuthIdpPsnApplicationConfigurationArgs(\n application_id=fusionauth_application[\"my_app\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Playstation\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n client_secret=\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var sonyPsn = new Fusionauth.FusionAuthIdpPsn(\"sonyPsn\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpPsnApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.My_app.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Playstation\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n ClientSecret = \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpPsn(ctx, \"sonyPsn\", \u0026fusionauth.FusionAuthIdpPsnArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpPsnApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpPsnApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.My_app.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Playstation\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tClientSecret: pulumi.String(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\"),\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.fusionauth.FusionAuthIdpPsn;\nimport com.pulumi.fusionauth.FusionAuthIdpPsnArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpPsnApplicationConfigurationArgs;\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 sonyPsn = new FusionAuthIdpPsn(\"sonyPsn\", FusionAuthIdpPsnArgs.builder() \n .applicationConfigurations(FusionAuthIdpPsnApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.my_app().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Playstation\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .clientSecret(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n sonyPsn:\n type: fusionauth:FusionAuthIdpPsn\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.my_app.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Playstation\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n clientSecret: 693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -7906,7 +5716,7 @@ } }, "fusionauth:index/fusionAuthIdpSamlv2:FusionAuthIdpSamlv2": { - "description": "## # SAML v2 Identity Provider Resource\n\nSAML v2 identity providers connect to external SAML v2 login systems. This type of login will optionally provide a Login with …​ button on FusionAuth’s login page. This button is customizable by using different properties of the identity provider.\n\nOptionally, this identity provider can define one or more domains it is associated with. This is useful for allowing employees to log in with their corporate credentials. As long as the company has an identity solution that provides SAML v2, you can leverage this feature. This is referred to as a Domain Based Identity Provider. If you enable domains for an identity provider, the Login with …​ button will not be displayed. Instead, only the email form field will be displayed initially on the FusionAuth login page. Once the user types in their email address, FusionAuth will determine if the user is logging in locally or if they should be redirected to this identity provider. This is determined by extracting the domain from their email address and comparing it to the domains associated with the identity provider.\n\nFusionAuth will locate the user’s email address in the SAML assertion which will be used to create or lookup the existing user. Additional claims from the SAML response can be used to reconcile the User to FusionAuth by using a SAML v2 Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the email address will be used from the available assertions returned by the SAML v2 identity provider.\n\n\n[SAML v2 Connect Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/samlv2/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst saml = new fusionauth.FusionAuthIdpSamlv2(\"saml\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n buttonText: \"Login with SAML (app text)\",\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with SAML\",\n debug: false,\n emailClaim: \"email\",\n idpEndpoint: \"https://www.example.com/login\",\n postRequest: true,\n requestSigningKey: \"3168129b-91fa-46f4-9676-947f5509fdce\",\n signRequest: true,\n useNameForEmail: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nsaml = fusionauth.FusionAuthIdpSamlv2(\"saml\",\n application_configurations=[fusionauth.FusionAuthIdpSamlv2ApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n button_text=\"Login with SAML (app text)\",\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with SAML\",\n debug=False,\n email_claim=\"email\",\n idp_endpoint=\"https://www.example.com/login\",\n post_request=True,\n request_signing_key=\"3168129b-91fa-46f4-9676-947f5509fdce\",\n sign_request=True,\n use_name_for_email=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var saml = new Fusionauth.FusionAuthIdpSamlv2(\"saml\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpSamlv2ApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n ButtonText = \"Login with SAML (app text)\",\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with SAML\",\n Debug = false,\n EmailClaim = \"email\",\n IdpEndpoint = \"https://www.example.com/login\",\n PostRequest = true,\n RequestSigningKey = \"3168129b-91fa-46f4-9676-947f5509fdce\",\n SignRequest = true,\n UseNameForEmail = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpSamlv2(ctx, \"saml\", \u0026fusionauth.FusionAuthIdpSamlv2Args{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpSamlv2ApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpSamlv2ApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tButtonText: pulumi.String(\"Login with SAML (app text)\"),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with SAML\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEmailClaim: pulumi.String(\"email\"),\n\t\t\tIdpEndpoint: pulumi.String(\"https://www.example.com/login\"),\n\t\t\tPostRequest: pulumi.Bool(true),\n\t\t\tRequestSigningKey: pulumi.String(\"3168129b-91fa-46f4-9676-947f5509fdce\"),\n\t\t\tSignRequest: pulumi.Bool(true),\n\t\t\tUseNameForEmail: 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.fusionauth.FusionAuthIdpSamlv2;\nimport com.pulumi.fusionauth.FusionAuthIdpSamlv2Args;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpSamlv2ApplicationConfigurationArgs;\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 saml = new FusionAuthIdpSamlv2(\"saml\", FusionAuthIdpSamlv2Args.builder() \n .applicationConfigurations(FusionAuthIdpSamlv2ApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .buttonText(\"Login with SAML (app text)\")\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with SAML\")\n .debug(false)\n .emailClaim(\"email\")\n .idpEndpoint(\"https://www.example.com/login\")\n .postRequest(true)\n .requestSigningKey(\"3168129b-91fa-46f4-9676-947f5509fdce\")\n .signRequest(true)\n .useNameForEmail(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n saml:\n type: fusionauth:FusionAuthIdpSamlv2\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n buttonText: Login with SAML (app text)\n createRegistration: true\n enabled: true\n buttonText: Login with SAML\n debug: false\n emailClaim: email\n idpEndpoint: https://www.example.com/login\n postRequest: true\n requestSigningKey: 3168129b-91fa-46f4-9676-947f5509fdce\n signRequest: true\n useNameForEmail: true\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # SAML v2 Identity Provider Resource\n\nSAML v2 identity providers connect to external SAML v2 login systems. This type of login will optionally provide a Login with …​ button on FusionAuth’s login page. This button is customizable by using different properties of the identity provider.\n\nOptionally, this identity provider can define one or more domains it is associated with. This is useful for allowing employees to log in with their corporate credentials. As long as the company has an identity solution that provides SAML v2, you can leverage this feature. This is referred to as a Domain Based Identity Provider. If you enable domains for an identity provider, the Login with …​ button will not be displayed. Instead, only the email form field will be displayed initially on the FusionAuth login page. Once the user types in their email address, FusionAuth will determine if the user is logging in locally or if they should be redirected to this identity provider. This is determined by extracting the domain from their email address and comparing it to the domains associated with the identity provider.\n\nFusionAuth will locate the user’s email address in the SAML assertion which will be used to create or lookup the existing user. Additional claims from the SAML response can be used to reconcile the User to FusionAuth by using a SAML v2 Reconcile Lambda. Unless you assign a reconcile lambda to this provider, on the email address will be used from the available assertions returned by the SAML v2 identity provider.\n\n\n[SAML v2 Connect Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/samlv2/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst saml = new fusionauth.FusionAuthIdpSamlv2(\"saml\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.myapp.id,\n buttonText: \"Login with SAML (app text)\",\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with SAML\",\n debug: false,\n emailClaim: \"email\",\n idpEndpoint: \"https://www.example.com/login\",\n postRequest: true,\n requestSigningKey: \"3168129b-91fa-46f4-9676-947f5509fdce\",\n signRequest: true,\n useNameForEmail: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nsaml = fusionauth.FusionAuthIdpSamlv2(\"saml\",\n application_configurations=[fusionauth.FusionAuthIdpSamlv2ApplicationConfigurationArgs(\n application_id=fusionauth_application[\"myapp\"][\"id\"],\n button_text=\"Login with SAML (app text)\",\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with SAML\",\n debug=False,\n email_claim=\"email\",\n idp_endpoint=\"https://www.example.com/login\",\n post_request=True,\n request_signing_key=\"3168129b-91fa-46f4-9676-947f5509fdce\",\n sign_request=True,\n use_name_for_email=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var saml = new Fusionauth.FusionAuthIdpSamlv2(\"saml\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpSamlv2ApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.Myapp.Id,\n ButtonText = \"Login with SAML (app text)\",\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with SAML\",\n Debug = false,\n EmailClaim = \"email\",\n IdpEndpoint = \"https://www.example.com/login\",\n PostRequest = true,\n RequestSigningKey = \"3168129b-91fa-46f4-9676-947f5509fdce\",\n SignRequest = true,\n UseNameForEmail = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpSamlv2(ctx, \"saml\", \u0026fusionauth.FusionAuthIdpSamlv2Args{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpSamlv2ApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpSamlv2ApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.Myapp.Id),\n\t\t\t\t\tButtonText: pulumi.String(\"Login with SAML (app text)\"),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with SAML\"),\n\t\t\tDebug: pulumi.Bool(false),\n\t\t\tEmailClaim: pulumi.String(\"email\"),\n\t\t\tIdpEndpoint: pulumi.String(\"https://www.example.com/login\"),\n\t\t\tPostRequest: pulumi.Bool(true),\n\t\t\tRequestSigningKey: pulumi.String(\"3168129b-91fa-46f4-9676-947f5509fdce\"),\n\t\t\tSignRequest: pulumi.Bool(true),\n\t\t\tUseNameForEmail: 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.fusionauth.FusionAuthIdpSamlv2;\nimport com.pulumi.fusionauth.FusionAuthIdpSamlv2Args;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpSamlv2ApplicationConfigurationArgs;\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 saml = new FusionAuthIdpSamlv2(\"saml\", FusionAuthIdpSamlv2Args.builder() \n .applicationConfigurations(FusionAuthIdpSamlv2ApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.myapp().id())\n .buttonText(\"Login with SAML (app text)\")\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with SAML\")\n .debug(false)\n .emailClaim(\"email\")\n .idpEndpoint(\"https://www.example.com/login\")\n .postRequest(true)\n .requestSigningKey(\"3168129b-91fa-46f4-9676-947f5509fdce\")\n .signRequest(true)\n .useNameForEmail(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n saml:\n type: fusionauth:FusionAuthIdpSamlv2\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.myapp.id}\n buttonText: Login with SAML (app text)\n createRegistration: true\n enabled: true\n buttonText: Login with SAML\n debug: false\n emailClaim: email\n idpEndpoint: https://www.example.com/login\n postRequest: true\n requestSigningKey: 3168129b-91fa-46f4-9676-947f5509fdce\n signRequest: true\n useNameForEmail: true\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -8201,7 +6011,7 @@ } }, "fusionauth:index/fusionAuthIdpSteam:FusionAuthIdpSteam": { - "description": "## # Steam Identity Provider Resource\n\nThe Steam identity provider type will use the Steam OAuth login API. It will also provide a Login with Steam button on FusionAuth’s login page that will direct a user to the Steam login page. The Steam login uses the implicit OAuth grant and will return to the callback URL with token and state in the URL Fragment. This is handled by the FusionAuth /oauth2/implicit javascript function to pass those values to the /oauth2/callback endpoint.\n\nThis identity provider will call Steam’s API to load the Steam user’s personaname and use that as username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. However, Steam does not allow access to user emails, so neither email linking strategy can be used and user’s will not be able to login or be created.\n\nFusionAuth will also store the Steam token that is returned from the Steam login in the link between the user and the identity provider. This token can be used by an application to make further requests to Steam APIs on behalf of the user.\n\n[Steam Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/steam/ )\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst steam = new fusionauth.FusionAuthIdpSteam(\"steam\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.GPS_Insight.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Steam\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n scope: \"Xboxlive.signin Xboxlive.offline_access\",\n webApiKey: \"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nsteam = fusionauth.FusionAuthIdpSteam(\"steam\",\n application_configurations=[fusionauth.FusionAuthIdpSteamApplicationConfigurationArgs(\n application_id=fusionauth_application[\"GPS_Insight\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Steam\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n scope=\"Xboxlive.signin Xboxlive.offline_access\",\n web_api_key=\"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var steam = new Fusionauth.FusionAuthIdpSteam(\"steam\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpSteamApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.GPS_Insight.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Steam\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n Scope = \"Xboxlive.signin Xboxlive.offline_access\",\n WebApiKey = \"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpSteam(ctx, \"steam\", \u0026fusionauth.FusionAuthIdpSteamArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpSteamApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpSteamApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.GPS_Insight.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Steam\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tScope: pulumi.String(\"Xboxlive.signin Xboxlive.offline_access\"),\n\t\t\tWebApiKey: pulumi.String(\"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\"),\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.fusionauth.FusionAuthIdpSteam;\nimport com.pulumi.fusionauth.FusionAuthIdpSteamArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpSteamApplicationConfigurationArgs;\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 steam = new FusionAuthIdpSteam(\"steam\", FusionAuthIdpSteamArgs.builder() \n .applicationConfigurations(FusionAuthIdpSteamApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.GPS_Insight().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Steam\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .scope(\"Xboxlive.signin Xboxlive.offline_access\")\n .webApiKey(\"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n steam:\n type: fusionauth:FusionAuthIdpSteam\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.GPS_Insight.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Steam\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n scope: Xboxlive.signin Xboxlive.offline_access\n webApiKey: HG0A97ACKPQ5ZLPU0007BN6674OA25TY\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Steam Identity Provider Resource\n\nThe Steam identity provider type will use the Steam OAuth login API. It will also provide a Login with Steam button on FusionAuth’s login page that will direct a user to the Steam login page. The Steam login uses the implicit OAuth grant and will return to the callback URL with token and state in the URL Fragment. This is handled by the FusionAuth /oauth2/implicit javascript function to pass those values to the /oauth2/callback endpoint.\n\nThis identity provider will call Steam’s API to load the Steam user’s personaname and use that as username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. However, Steam does not allow access to user emails, so neither email linking strategy can be used and user’s will not be able to login or be created.\n\nFusionAuth will also store the Steam token that is returned from the Steam login in the link between the user and the identity provider. This token can be used by an application to make further requests to Steam APIs on behalf of the user.\n\n[Steam Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/steam/ )\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst steam = new fusionauth.FusionAuthIdpSteam(\"steam\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.GPS_Insight.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Steam\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n scope: \"Xboxlive.signin Xboxlive.offline_access\",\n webApiKey: \"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nsteam = fusionauth.FusionAuthIdpSteam(\"steam\",\n application_configurations=[fusionauth.FusionAuthIdpSteamApplicationConfigurationArgs(\n application_id=fusionauth_application[\"GPS_Insight\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Steam\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n scope=\"Xboxlive.signin Xboxlive.offline_access\",\n web_api_key=\"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var steam = new Fusionauth.FusionAuthIdpSteam(\"steam\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpSteamApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.GPS_Insight.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Steam\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n Scope = \"Xboxlive.signin Xboxlive.offline_access\",\n WebApiKey = \"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpSteam(ctx, \"steam\", \u0026fusionauth.FusionAuthIdpSteamArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpSteamApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpSteamApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.GPS_Insight.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Steam\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tScope: pulumi.String(\"Xboxlive.signin Xboxlive.offline_access\"),\n\t\t\tWebApiKey: pulumi.String(\"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\"),\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.fusionauth.FusionAuthIdpSteam;\nimport com.pulumi.fusionauth.FusionAuthIdpSteamArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpSteamApplicationConfigurationArgs;\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 steam = new FusionAuthIdpSteam(\"steam\", FusionAuthIdpSteamArgs.builder() \n .applicationConfigurations(FusionAuthIdpSteamApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.GPS_Insight().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Steam\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .scope(\"Xboxlive.signin Xboxlive.offline_access\")\n .webApiKey(\"HG0A97ACKPQ5ZLPU0007BN6674OA25TY\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n steam:\n type: fusionauth:FusionAuthIdpSteam\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.GPS_Insight.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Steam\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n scope: Xboxlive.signin Xboxlive.offline_access\n webApiKey: HG0A97ACKPQ5ZLPU0007BN6674OA25TY\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -8377,7 +6187,7 @@ } }, "fusionauth:index/fusionAuthIdpTwitch:FusionAuthIdpTwitch": { - "description": "## # Twitch Identity Provider Resource\n\nThe Twitch identity provider type will use the Twitch OAuth v2.0 login API. It will also provide a Login with Twitch button on FusionAuth’s login page that will direct a user to the Twitch login page.\n\nThis identity provider will call Twitch’s API to load the user’s email and preferred_username and use those as email and username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. Additional claims returned by Twitch can be used to reconcile the user to FusionAuth by using a Twitch Reconcile Lambda.\n\nFusionAuth will also store the Twitch refresh_token returned from the Twitch API in the link between the user and the identity provider. This token can be used by an application to make further requests to Twitch APIs on behalf of the user.\n\n[Twitch Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/twitch/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst twitch = new fusionauth.FusionAuthIdpTwitch(\"twitch\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.my_app.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Twitch\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n clientSecret: \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope: \"Xboxlive.signin Xboxlive.offline_access\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\ntwitch = fusionauth.FusionAuthIdpTwitch(\"twitch\",\n application_configurations=[fusionauth.FusionAuthIdpTwitchApplicationConfigurationArgs(\n application_id=fusionauth_application[\"my_app\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Twitch\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n client_secret=\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope=\"Xboxlive.signin Xboxlive.offline_access\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var twitch = new Fusionauth.FusionAuthIdpTwitch(\"twitch\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpTwitchApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.My_app.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Twitch\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n ClientSecret = \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n Scope = \"Xboxlive.signin Xboxlive.offline_access\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpTwitch(ctx, \"twitch\", \u0026fusionauth.FusionAuthIdpTwitchArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpTwitchApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpTwitchApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.My_app.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Twitch\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tClientSecret: pulumi.String(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\"),\n\t\t\tScope: pulumi.String(\"Xboxlive.signin Xboxlive.offline_access\"),\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.fusionauth.FusionAuthIdpTwitch;\nimport com.pulumi.fusionauth.FusionAuthIdpTwitchArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpTwitchApplicationConfigurationArgs;\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 twitch = new FusionAuthIdpTwitch(\"twitch\", FusionAuthIdpTwitchArgs.builder() \n .applicationConfigurations(FusionAuthIdpTwitchApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.my_app().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Twitch\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .clientSecret(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n .scope(\"Xboxlive.signin Xboxlive.offline_access\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n twitch:\n type: fusionauth:FusionAuthIdpTwitch\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.my_app.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Twitch\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n clientSecret: 693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\n scope: Xboxlive.signin Xboxlive.offline_access\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Twitch Identity Provider Resource\n\nThe Twitch identity provider type will use the Twitch OAuth v2.0 login API. It will also provide a Login with Twitch button on FusionAuth’s login page that will direct a user to the Twitch login page.\n\nThis identity provider will call Twitch’s API to load the user’s email and preferred_username and use those as email and username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. Additional claims returned by Twitch can be used to reconcile the user to FusionAuth by using a Twitch Reconcile Lambda.\n\nFusionAuth will also store the Twitch refresh_token returned from the Twitch API in the link between the user and the identity provider. This token can be used by an application to make further requests to Twitch APIs on behalf of the user.\n\n[Twitch Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/twitch/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst twitch = new fusionauth.FusionAuthIdpTwitch(\"twitch\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.my_app.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Twitch\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n clientSecret: \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope: \"Xboxlive.signin Xboxlive.offline_access\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\ntwitch = fusionauth.FusionAuthIdpTwitch(\"twitch\",\n application_configurations=[fusionauth.FusionAuthIdpTwitchApplicationConfigurationArgs(\n application_id=fusionauth_application[\"my_app\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Twitch\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n client_secret=\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope=\"Xboxlive.signin Xboxlive.offline_access\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var twitch = new Fusionauth.FusionAuthIdpTwitch(\"twitch\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpTwitchApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.My_app.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Twitch\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n ClientSecret = \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n Scope = \"Xboxlive.signin Xboxlive.offline_access\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpTwitch(ctx, \"twitch\", \u0026fusionauth.FusionAuthIdpTwitchArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpTwitchApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpTwitchApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.My_app.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Twitch\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tClientSecret: pulumi.String(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\"),\n\t\t\tScope: pulumi.String(\"Xboxlive.signin Xboxlive.offline_access\"),\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.fusionauth.FusionAuthIdpTwitch;\nimport com.pulumi.fusionauth.FusionAuthIdpTwitchArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpTwitchApplicationConfigurationArgs;\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 twitch = new FusionAuthIdpTwitch(\"twitch\", FusionAuthIdpTwitchArgs.builder() \n .applicationConfigurations(FusionAuthIdpTwitchApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.my_app().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Twitch\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .clientSecret(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n .scope(\"Xboxlive.signin Xboxlive.offline_access\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n twitch:\n type: fusionauth:FusionAuthIdpTwitch\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.my_app.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Twitch\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n clientSecret: 693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\n scope: Xboxlive.signin Xboxlive.offline_access\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -8553,7 +6363,7 @@ } }, "fusionauth:index/fusionAuthIdpXBox:FusionAuthIdpXBox": { - "description": "## # Xbox Identity Provider Resource\n\nThe Xbox identity provider type will use the Xbox OAuth v2.0 login API. It will also provide a Login with Xbox button on FusionAuth’s login page that will direct a user to the Xbox login page.\n\nThis identity provider will call Xbox’s API to load the user’s email and gtg (Gamer Tag) and use those as email and username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. Additional claims returned by Xbox can be used to reconcile the user to FusionAuth by using an Xbox Reconcile Lambda.\n\nFusionAuth will also store the Xbox refresh_token returned from the Xbox API in the link between the user and the identity provider. This token can be used by an application to make further requests to Xbox APIs on behalf of the user.\n\n\n\n[Xbox Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/xbox/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst xbox = new fusionauth.FusionAuthIdpXBox(\"xbox\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.GPS_Insight.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Xbox\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n clientSecret: \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope: \"Xboxlive.signin Xboxlive.offline_access\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nxbox = fusionauth.FusionAuthIdpXBox(\"xbox\",\n application_configurations=[fusionauth.FusionAuthIdpXBoxApplicationConfigurationArgs(\n application_id=fusionauth_application[\"GPS_Insight\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Xbox\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n client_secret=\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope=\"Xboxlive.signin Xboxlive.offline_access\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var xbox = new Fusionauth.FusionAuthIdpXBox(\"xbox\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpXBoxApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.GPS_Insight.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Xbox\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n ClientSecret = \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n Scope = \"Xboxlive.signin Xboxlive.offline_access\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpXBox(ctx, \"xbox\", \u0026fusionauth.FusionAuthIdpXBoxArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpXBoxApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpXBoxApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.GPS_Insight.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Xbox\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tClientSecret: pulumi.String(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\"),\n\t\t\tScope: pulumi.String(\"Xboxlive.signin Xboxlive.offline_access\"),\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.fusionauth.FusionAuthIdpXBox;\nimport com.pulumi.fusionauth.FusionAuthIdpXBoxArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpXBoxApplicationConfigurationArgs;\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 xbox = new FusionAuthIdpXBox(\"xbox\", FusionAuthIdpXBoxArgs.builder() \n .applicationConfigurations(FusionAuthIdpXBoxApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.GPS_Insight().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Xbox\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .clientSecret(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n .scope(\"Xboxlive.signin Xboxlive.offline_access\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n xbox:\n type: fusionauth:FusionAuthIdpXBox\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.GPS_Insight.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Xbox\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n clientSecret: 693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\n scope: Xboxlive.signin Xboxlive.offline_access\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Xbox Identity Provider Resource\n\nThe Xbox identity provider type will use the Xbox OAuth v2.0 login API. It will also provide a Login with Xbox button on FusionAuth’s login page that will direct a user to the Xbox login page.\n\nThis identity provider will call Xbox’s API to load the user’s email and gtg (Gamer Tag) and use those as email and username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. Additional claims returned by Xbox can be used to reconcile the user to FusionAuth by using an Xbox Reconcile Lambda.\n\nFusionAuth will also store the Xbox refresh_token returned from the Xbox API in the link between the user and the identity provider. This token can be used by an application to make further requests to Xbox APIs on behalf of the user.\n\n\n\n[Xbox Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/xbox/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst xbox = new fusionauth.FusionAuthIdpXBox(\"xbox\", {\n applicationConfigurations: [{\n applicationId: fusionauth_application.GPS_Insight.id,\n createRegistration: true,\n enabled: true,\n }],\n buttonText: \"Login with Xbox\",\n clientId: \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n clientSecret: \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope: \"Xboxlive.signin Xboxlive.offline_access\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nxbox = fusionauth.FusionAuthIdpXBox(\"xbox\",\n application_configurations=[fusionauth.FusionAuthIdpXBoxApplicationConfigurationArgs(\n application_id=fusionauth_application[\"GPS_Insight\"][\"id\"],\n create_registration=True,\n enabled=True,\n )],\n button_text=\"Login with Xbox\",\n client_id=\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n client_secret=\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n scope=\"Xboxlive.signin Xboxlive.offline_access\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var xbox = new Fusionauth.FusionAuthIdpXBox(\"xbox\", new()\n {\n ApplicationConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthIdpXBoxApplicationConfigurationArgs\n {\n ApplicationId = fusionauth_application.GPS_Insight.Id,\n CreateRegistration = true,\n Enabled = true,\n },\n },\n ButtonText = \"Login with Xbox\",\n ClientId = \"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\",\n ClientSecret = \"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\",\n Scope = \"Xboxlive.signin Xboxlive.offline_access\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthIdpXBox(ctx, \"xbox\", \u0026fusionauth.FusionAuthIdpXBoxArgs{\n\t\t\tApplicationConfigurations: fusionauth.FusionAuthIdpXBoxApplicationConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthIdpXBoxApplicationConfigurationArgs{\n\t\t\t\t\tApplicationId: pulumi.Any(fusionauth_application.GPS_Insight.Id),\n\t\t\t\t\tCreateRegistration: pulumi.Bool(true),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tButtonText: pulumi.String(\"Login with Xbox\"),\n\t\t\tClientId: pulumi.String(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\"),\n\t\t\tClientSecret: pulumi.String(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\"),\n\t\t\tScope: pulumi.String(\"Xboxlive.signin Xboxlive.offline_access\"),\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.fusionauth.FusionAuthIdpXBox;\nimport com.pulumi.fusionauth.FusionAuthIdpXBoxArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthIdpXBoxApplicationConfigurationArgs;\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 xbox = new FusionAuthIdpXBox(\"xbox\", FusionAuthIdpXBoxArgs.builder() \n .applicationConfigurations(FusionAuthIdpXBoxApplicationConfigurationArgs.builder()\n .applicationId(fusionauth_application.GPS_Insight().id())\n .createRegistration(true)\n .enabled(true)\n .build())\n .buttonText(\"Login with Xbox\")\n .clientId(\"0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\")\n .clientSecret(\"693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\")\n .scope(\"Xboxlive.signin Xboxlive.offline_access\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n xbox:\n type: fusionauth:FusionAuthIdpXBox\n properties:\n applicationConfigurations:\n - applicationId: ${fusionauth_application.GPS_Insight.id}\n createRegistration: true\n enabled: true\n buttonText: Login with Xbox\n clientId: 0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc\n clientSecret: 693s000cbn66k0mxtqzr_c_NfLy3~6_SEA\n scope: Xboxlive.signin Xboxlive.offline_access\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationConfigurations": { "type": "array", @@ -8729,7 +6539,7 @@ } }, "fusionauth:index/fusionAuthImportedKey:FusionAuthImportedKey": { - "description": "## # Imported Key Resource\n\nCryptographic keys are used in signing and verifying JWTs and verifying responses for third party identity providers. It is more likely you will interact with keys using the FusionAuth UI in the Key Master menu. \n\n[Keys API](https://fusionauth.io/docs/v1/tech/apis/keys)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst name = new fusionauth.FusionAuthImportedKey(\"name\", {\n kid: \"8675309\",\n privateKey: fs.readFileSync(\"./AuthKey_8675309.p8\"),\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nname = fusionauth.FusionAuthImportedKey(\"name\",\n kid=\"8675309\",\n private_key=(lambda path: open(path).read())(\"./AuthKey_8675309.p8\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var name = new Fusionauth.FusionAuthImportedKey(\"name\", new()\n {\n Kid = \"8675309\",\n PrivateKey = File.ReadAllText(\"./AuthKey_8675309.p8\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthImportedKey(ctx, \"name\", \u0026fusionauth.FusionAuthImportedKeyArgs{\n\t\t\tKid: pulumi.String(\"8675309\"),\n\t\t\tPrivateKey: readFileOrPanic(\"./AuthKey_8675309.p8\"),\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.fusionauth.FusionAuthImportedKey;\nimport com.pulumi.fusionauth.FusionAuthImportedKeyArgs;\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 name = new FusionAuthImportedKey(\"name\", FusionAuthImportedKeyArgs.builder() \n .kid(\"8675309\")\n .privateKey(Files.readString(Paths.get(\"./AuthKey_8675309.p8\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n name:\n type: fusionauth:FusionAuthImportedKey\n properties:\n kid: '8675309'\n privateKey:\n fn::readFile: ./AuthKey_8675309.p8\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Imported Key Resource\n\nCryptographic keys are used in signing and verifying JWTs and verifying responses for third party identity providers. It is more likely you will interact with keys using the FusionAuth UI in the Key Master menu. \n\n[Keys API](https://fusionauth.io/docs/v1/tech/apis/keys)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst name = new fusionauth.FusionAuthImportedKey(\"name\", {\n kid: \"8675309\",\n privateKey: fs.readFileSync(\"./AuthKey_8675309.p8\"),\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nname = fusionauth.FusionAuthImportedKey(\"name\",\n kid=\"8675309\",\n private_key=(lambda path: open(path).read())(\"./AuthKey_8675309.p8\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var name = new Fusionauth.FusionAuthImportedKey(\"name\", new()\n {\n Kid = \"8675309\",\n PrivateKey = File.ReadAllText(\"./AuthKey_8675309.p8\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthImportedKey(ctx, \"name\", \u0026fusionauth.FusionAuthImportedKeyArgs{\n\t\t\tKid: pulumi.String(\"8675309\"),\n\t\t\tPrivateKey: readFileOrPanic(\"./AuthKey_8675309.p8\"),\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.fusionauth.FusionAuthImportedKey;\nimport com.pulumi.fusionauth.FusionAuthImportedKeyArgs;\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 name = new FusionAuthImportedKey(\"name\", FusionAuthImportedKeyArgs.builder() \n .kid(\"8675309\")\n .privateKey(Files.readString(Paths.get(\"./AuthKey_8675309.p8\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n name:\n type: fusionauth:FusionAuthImportedKey\n properties:\n kid: '8675309'\n privateKey:\n fn::readFile: ./AuthKey_8675309.p8\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "algorithm": { "type": "string", @@ -8878,7 +6688,7 @@ } }, "fusionauth:index/fusionAuthKey:FusionAuthKey": { - "description": "## # Key Resource\n\nCryptographic keys are used in signing and verifying JWTs and verifying responses for third party identity providers. It is more likely you will interact with keys using the FusionAuth UI in the Key Master menu.\n\n[Keys API](https://fusionauth.io/docs/v1/tech/apis/keys)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst adminId = new fusionauth.FusionAuthKey(\"adminId\", {\n algorithm: \"RS256\",\n length: 2048,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nadmin_id = fusionauth.FusionAuthKey(\"adminId\",\n algorithm=\"RS256\",\n length=2048)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var adminId = new Fusionauth.FusionAuthKey(\"adminId\", new()\n {\n Algorithm = \"RS256\",\n Length = 2048,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthKey(ctx, \"adminId\", \u0026fusionauth.FusionAuthKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RS256\"),\n\t\t\tLength: pulumi.Int(2048),\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.fusionauth.FusionAuthKey;\nimport com.pulumi.fusionauth.FusionAuthKeyArgs;\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 adminId = new FusionAuthKey(\"adminId\", FusionAuthKeyArgs.builder() \n .algorithm(\"RS256\")\n .length(2048)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n adminId:\n type: fusionauth:FusionAuthKey\n properties:\n algorithm: RS256\n length: 2048\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Key Resource\n\nCryptographic keys are used in signing and verifying JWTs and verifying responses for third party identity providers. It is more likely you will interact with keys using the FusionAuth UI in the Key Master menu.\n\n[Keys API](https://fusionauth.io/docs/v1/tech/apis/keys)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst adminId = new fusionauth.FusionAuthKey(\"adminId\", {\n algorithm: \"RS256\",\n length: 2048,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nadmin_id = fusionauth.FusionAuthKey(\"adminId\",\n algorithm=\"RS256\",\n length=2048)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var adminId = new Fusionauth.FusionAuthKey(\"adminId\", new()\n {\n Algorithm = \"RS256\",\n Length = 2048,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthKey(ctx, \"adminId\", \u0026fusionauth.FusionAuthKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RS256\"),\n\t\t\tLength: pulumi.Int(2048),\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.fusionauth.FusionAuthKey;\nimport com.pulumi.fusionauth.FusionAuthKeyArgs;\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 adminId = new FusionAuthKey(\"adminId\", FusionAuthKeyArgs.builder() \n .algorithm(\"RS256\")\n .length(2048)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n adminId:\n type: fusionauth:FusionAuthKey\n properties:\n algorithm: RS256\n length: 2048\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "algorithm": { "type": "string", @@ -8960,7 +6770,7 @@ } }, "fusionauth:index/fusionAuthLambda:FusionAuthLambda": { - "description": "## # Lambda Resource\n\nLambdas are user defined JavaScript functions that may be executed at runtime to perform various functions. Lambdas may be used to customize the claims returned in a JWT, reconcile a SAML v2 response or an OpenID Connect response when using these external identity providers.\n\n[Lambdas API](https://fusionauth.io/docs/v1/tech/apis/lambdas)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst preferred_Username = new fusionauth.FusionAuthLambda(\"preferred Username\", {\n body: `// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n`,\n enabled: true,\n type: \"JWTPopulate\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\npreferred__username = fusionauth.FusionAuthLambda(\"preferred Username\",\n body=\"\"\"// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n\"\"\",\n enabled=True,\n type=\"JWTPopulate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var preferred_Username = new Fusionauth.FusionAuthLambda(\"preferred Username\", new()\n {\n Body = @\"// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n\",\n Enabled = true,\n Type = \"JWTPopulate\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthLambda(ctx, \"preferred Username\", \u0026fusionauth.FusionAuthLambdaArgs{\n\t\t\tBody: pulumi.String(\"// Using the user and registration parameters add additional values to the jwt object.\\nfunction populate(jwt, user, registration) {\\n jwt.preferred_username = registration.username;\\n}\\n \\n\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tType: pulumi.String(\"JWTPopulate\"),\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.fusionauth.FusionAuthLambda;\nimport com.pulumi.fusionauth.FusionAuthLambdaArgs;\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 preferred_Username = new FusionAuthLambda(\"preferred Username\", FusionAuthLambdaArgs.builder() \n .body(\"\"\"\n// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n \"\"\")\n .enabled(true)\n .type(\"JWTPopulate\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n preferred Username:\n type: fusionauth:FusionAuthLambda\n properties:\n body: \"// Using the user and registration parameters add additional values to the jwt object.\\nfunction populate(jwt, user, registration) {\\n jwt.preferred_username = registration.username;\\n}\\n \\n\"\n enabled: true\n type: JWTPopulate\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Lambda Resource\n\nLambdas are user defined JavaScript functions that may be executed at runtime to perform various functions. Lambdas may be used to customize the claims returned in a JWT, reconcile a SAML v2 response or an OpenID Connect response when using these external identity providers.\n\n[Lambdas API](https://fusionauth.io/docs/v1/tech/apis/lambdas)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst preferred_Username = new fusionauth.FusionAuthLambda(\"preferred Username\", {\n body: `// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n`,\n enabled: true,\n type: \"JWTPopulate\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\npreferred__username = fusionauth.FusionAuthLambda(\"preferred Username\",\n body=\"\"\"// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n\"\"\",\n enabled=True,\n type=\"JWTPopulate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var preferred_Username = new Fusionauth.FusionAuthLambda(\"preferred Username\", new()\n {\n Body = @\"// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n\",\n Enabled = true,\n Type = \"JWTPopulate\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthLambda(ctx, \"preferred Username\", \u0026fusionauth.FusionAuthLambdaArgs{\n\t\t\tBody: pulumi.String(\"// Using the user and registration parameters add additional values to the jwt object.\\nfunction populate(jwt, user, registration) {\\n jwt.preferred_username = registration.username;\\n}\\n \\n\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tType: pulumi.String(\"JWTPopulate\"),\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.fusionauth.FusionAuthLambda;\nimport com.pulumi.fusionauth.FusionAuthLambdaArgs;\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 preferred_Username = new FusionAuthLambda(\"preferred Username\", FusionAuthLambdaArgs.builder() \n .body(\"\"\"\n// Using the user and registration parameters add additional values to the jwt object.\nfunction populate(jwt, user, registration) {\n jwt.preferred_username = registration.username;\n}\n \n \"\"\")\n .enabled(true)\n .type(\"JWTPopulate\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n preferred Username:\n type: fusionauth:FusionAuthLambda\n properties:\n body: \"// Using the user and registration parameters add additional values to the jwt object.\\nfunction populate(jwt, user, registration) {\\n jwt.preferred_username = registration.username;\\n}\\n \\n\"\n enabled: true\n type: JWTPopulate\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "body": { "type": "string", @@ -9070,7 +6880,7 @@ } }, "fusionauth:index/fusionAuthReactor:FusionAuthReactor": { - "description": "## # Reactor Resource\n\nThe Reactor is FusionAuth’s license system. Reactor is used to activate features based upon your licensing tier.\n\n[Reactor API](https://fusionauth.io/docs/v1/tech/apis/reactor)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst reactor = new fusionauth.FusionAuthReactor(\"reactor\", {\n license: \"abc\",\n licenseId: \"xyz\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nreactor = fusionauth.FusionAuthReactor(\"reactor\",\n license=\"abc\",\n license_id=\"xyz\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var reactor = new Fusionauth.FusionAuthReactor(\"reactor\", new()\n {\n License = \"abc\",\n LicenseId = \"xyz\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthReactor(ctx, \"reactor\", \u0026fusionauth.FusionAuthReactorArgs{\n\t\t\tLicense: pulumi.String(\"abc\"),\n\t\t\tLicenseId: pulumi.String(\"xyz\"),\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.fusionauth.FusionAuthReactor;\nimport com.pulumi.fusionauth.FusionAuthReactorArgs;\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 reactor = new FusionAuthReactor(\"reactor\", FusionAuthReactorArgs.builder() \n .license(\"abc\")\n .licenseId(\"xyz\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n reactor:\n type: fusionauth:FusionAuthReactor\n properties:\n license: abc\n licenseId: xyz\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Reactor Resource\n\nThe Reactor is FusionAuth’s license system. Reactor is used to activate features based upon your licensing tier.\n\n[Reactor API](https://fusionauth.io/docs/v1/tech/apis/reactor)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst reactor = new fusionauth.FusionAuthReactor(\"reactor\", {\n license: \"abc\",\n licenseId: \"xyz\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nreactor = fusionauth.FusionAuthReactor(\"reactor\",\n license=\"abc\",\n license_id=\"xyz\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var reactor = new Fusionauth.FusionAuthReactor(\"reactor\", new()\n {\n License = \"abc\",\n LicenseId = \"xyz\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthReactor(ctx, \"reactor\", \u0026fusionauth.FusionAuthReactorArgs{\n\t\t\tLicense: pulumi.String(\"abc\"),\n\t\t\tLicenseId: pulumi.String(\"xyz\"),\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.fusionauth.FusionAuthReactor;\nimport com.pulumi.fusionauth.FusionAuthReactorArgs;\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 reactor = new FusionAuthReactor(\"reactor\", FusionAuthReactorArgs.builder() \n .license(\"abc\")\n .licenseId(\"xyz\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n reactor:\n type: fusionauth:FusionAuthReactor\n properties:\n license: abc\n licenseId: xyz\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "license": { "type": "string", @@ -9119,7 +6929,7 @@ } }, "fusionauth:index/fusionAuthRegistration:FusionAuthRegistration": { - "description": "## # Registration Resource\n\nA registration is the association between a User and an Application that they log into. \n\n[Registrations API](https://fusionauth.io/docs/v1/tech/apis/registrations)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthRegistration(\"example\", {\n userId: fusionauth_user.example.id,\n applicationId: data.fusionauth_application.FusionAuth.id,\n roles: [\"admin\"],\n username: \"theadmin\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthRegistration(\"example\",\n user_id=fusionauth_user[\"example\"][\"id\"],\n application_id=data[\"fusionauth_application\"][\"FusionAuth\"][\"id\"],\n roles=[\"admin\"],\n username=\"theadmin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthRegistration(\"example\", new()\n {\n UserId = fusionauth_user.Example.Id,\n ApplicationId = data.Fusionauth_application.FusionAuth.Id,\n Roles = new[]\n {\n \"admin\",\n },\n Username = \"theadmin\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthRegistration(ctx, \"example\", \u0026fusionauth.FusionAuthRegistrationArgs{\n\t\t\tUserId: pulumi.Any(fusionauth_user.Example.Id),\n\t\t\tApplicationId: pulumi.Any(data.Fusionauth_application.FusionAuth.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\n\t\t\t},\n\t\t\tUsername: pulumi.String(\"theadmin\"),\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.fusionauth.FusionAuthRegistration;\nimport com.pulumi.fusionauth.FusionAuthRegistrationArgs;\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 example = new FusionAuthRegistration(\"example\", FusionAuthRegistrationArgs.builder() \n .userId(fusionauth_user.example().id())\n .applicationId(data.fusionauth_application().FusionAuth().id())\n .roles(\"admin\")\n .username(\"theadmin\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthRegistration\n properties:\n userId: ${fusionauth_user.example.id}\n applicationId: ${data.fusionauth_application.FusionAuth.id}\n roles:\n - admin\n username: theadmin\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Registration Resource\n\nA registration is the association between a User and an Application that they log into. \n\n[Registrations API](https://fusionauth.io/docs/v1/tech/apis/registrations)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthRegistration(\"example\", {\n userId: fusionauth_user.example.id,\n applicationId: data.fusionauth_application.FusionAuth.id,\n roles: [\"admin\"],\n username: \"theadmin\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthRegistration(\"example\",\n user_id=fusionauth_user[\"example\"][\"id\"],\n application_id=data[\"fusionauth_application\"][\"FusionAuth\"][\"id\"],\n roles=[\"admin\"],\n username=\"theadmin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthRegistration(\"example\", new()\n {\n UserId = fusionauth_user.Example.Id,\n ApplicationId = data.Fusionauth_application.FusionAuth.Id,\n Roles = new[]\n {\n \"admin\",\n },\n Username = \"theadmin\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthRegistration(ctx, \"example\", \u0026fusionauth.FusionAuthRegistrationArgs{\n\t\t\tUserId: pulumi.Any(fusionauth_user.Example.Id),\n\t\t\tApplicationId: pulumi.Any(data.Fusionauth_application.FusionAuth.Id),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\n\t\t\t},\n\t\t\tUsername: pulumi.String(\"theadmin\"),\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.fusionauth.FusionAuthRegistration;\nimport com.pulumi.fusionauth.FusionAuthRegistrationArgs;\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 example = new FusionAuthRegistration(\"example\", FusionAuthRegistrationArgs.builder() \n .userId(fusionauth_user.example().id())\n .applicationId(data.fusionauth_application().FusionAuth().id())\n .roles(\"admin\")\n .username(\"theadmin\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthRegistration\n properties:\n userId: ${fusionauth_user.example.id}\n applicationId: ${data.fusionauth_application.FusionAuth.id}\n roles:\n - admin\n username: theadmin\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationId": { "type": "string", @@ -9295,7 +7105,7 @@ } }, "fusionauth:index/fusionAuthSystemConfiguration:FusionAuthSystemConfiguration": { - "description": "## # System Configuration Resource\n\nA registration is the association between a User and an Application that they log into. \n\n[System Configuration API](https://fusionauth.io/docs/v1/tech/apis/system)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthSystemConfiguration(\"example\", {\n auditLogConfiguration: {\n \"delete\": {\n enabled: true,\n numberOfDaysToRetain: 367,\n },\n },\n corsConfiguration: {\n allowedMethods: [\n \"POST\",\n \"PUT\",\n ],\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthSystemConfiguration(\"example\",\n audit_log_configuration=fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationArgs(\n delete=fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs(\n enabled=True,\n number_of_days_to_retain=367,\n ),\n ),\n cors_configuration=fusionauth.FusionAuthSystemConfigurationCorsConfigurationArgs(\n allowed_methods=[\n \"POST\",\n \"PUT\",\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthSystemConfiguration(\"example\", new()\n {\n AuditLogConfiguration = new Fusionauth.Inputs.FusionAuthSystemConfigurationAuditLogConfigurationArgs\n {\n Delete = new Fusionauth.Inputs.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs\n {\n Enabled = true,\n NumberOfDaysToRetain = 367,\n },\n },\n CorsConfiguration = new Fusionauth.Inputs.FusionAuthSystemConfigurationCorsConfigurationArgs\n {\n AllowedMethods = new[]\n {\n \"POST\",\n \"PUT\",\n },\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthSystemConfiguration(ctx, \"example\", \u0026fusionauth.FusionAuthSystemConfigurationArgs{\n\t\t\tAuditLogConfiguration: \u0026fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationArgs{\n\t\t\t\tDelete: \u0026fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tNumberOfDaysToRetain: pulumi.Int(367),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCorsConfiguration: \u0026fusionauth.FusionAuthSystemConfigurationCorsConfigurationArgs{\n\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.fusionauth.FusionAuthSystemConfiguration;\nimport com.pulumi.fusionauth.FusionAuthSystemConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthSystemConfigurationAuditLogConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthSystemConfigurationCorsConfigurationArgs;\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 example = new FusionAuthSystemConfiguration(\"example\", FusionAuthSystemConfigurationArgs.builder() \n .auditLogConfiguration(FusionAuthSystemConfigurationAuditLogConfigurationArgs.builder()\n .delete(FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs.builder()\n .enabled(true)\n .numberOfDaysToRetain(367)\n .build())\n .build())\n .corsConfiguration(FusionAuthSystemConfigurationCorsConfigurationArgs.builder()\n .allowedMethods( \n \"POST\",\n \"PUT\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthSystemConfiguration\n properties:\n auditLogConfiguration:\n delete:\n enabled: true\n numberOfDaysToRetain: 367\n corsConfiguration:\n allowedMethods:\n - POST\n - PUT\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # System Configuration Resource\n\nA registration is the association between a User and an Application that they log into. \n\n[System Configuration API](https://fusionauth.io/docs/v1/tech/apis/system)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthSystemConfiguration(\"example\", {\n auditLogConfiguration: {\n \"delete\": {\n enabled: true,\n numberOfDaysToRetain: 367,\n },\n },\n corsConfiguration: {\n allowedMethods: [\n \"POST\",\n \"PUT\",\n ],\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthSystemConfiguration(\"example\",\n audit_log_configuration=fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationArgs(\n delete=fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs(\n enabled=True,\n number_of_days_to_retain=367,\n ),\n ),\n cors_configuration=fusionauth.FusionAuthSystemConfigurationCorsConfigurationArgs(\n allowed_methods=[\n \"POST\",\n \"PUT\",\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthSystemConfiguration(\"example\", new()\n {\n AuditLogConfiguration = new Fusionauth.Inputs.FusionAuthSystemConfigurationAuditLogConfigurationArgs\n {\n Delete = new Fusionauth.Inputs.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs\n {\n Enabled = true,\n NumberOfDaysToRetain = 367,\n },\n },\n CorsConfiguration = new Fusionauth.Inputs.FusionAuthSystemConfigurationCorsConfigurationArgs\n {\n AllowedMethods = new[]\n {\n \"POST\",\n \"PUT\",\n },\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthSystemConfiguration(ctx, \"example\", \u0026fusionauth.FusionAuthSystemConfigurationArgs{\n\t\t\tAuditLogConfiguration: \u0026fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationArgs{\n\t\t\t\tDelete: \u0026fusionauth.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tNumberOfDaysToRetain: pulumi.Int(367),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCorsConfiguration: \u0026fusionauth.FusionAuthSystemConfigurationCorsConfigurationArgs{\n\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.fusionauth.FusionAuthSystemConfiguration;\nimport com.pulumi.fusionauth.FusionAuthSystemConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthSystemConfigurationAuditLogConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthSystemConfigurationCorsConfigurationArgs;\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 example = new FusionAuthSystemConfiguration(\"example\", FusionAuthSystemConfigurationArgs.builder() \n .auditLogConfiguration(FusionAuthSystemConfigurationAuditLogConfigurationArgs.builder()\n .delete(FusionAuthSystemConfigurationAuditLogConfigurationDeleteArgs.builder()\n .enabled(true)\n .numberOfDaysToRetain(367)\n .build())\n .build())\n .corsConfiguration(FusionAuthSystemConfigurationCorsConfigurationArgs.builder()\n .allowedMethods( \n \"POST\",\n \"PUT\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthSystemConfiguration\n properties:\n auditLogConfiguration:\n delete:\n enabled: true\n numberOfDaysToRetain: 367\n corsConfiguration:\n allowedMethods:\n - POST\n - PUT\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "auditLogConfiguration": { "$ref": "#/types/fusionauth:index/FusionAuthSystemConfigurationAuditLogConfiguration:FusionAuthSystemConfigurationAuditLogConfiguration" @@ -9372,7 +7182,7 @@ } }, "fusionauth:index/fusionAuthTenant:FusionAuthTenant": { - "description": "## # Tenant Resource\n\nA FusionAuth Tenant is a named object that represents a discrete namespace for Users, Applications and Groups. A user is unique by email address or username within a tenant.\n\nTenants may be useful to support a multi-tenant application where you wish to use a single instance of FusionAuth but require the ability to have duplicate users across the tenants in your own application. In this scenario a user may exist multiple times with the same email address and different passwords across tenants.\n\nTenants may also be useful in a test or staging environment to allow multiple users to call APIs and create and modify users without possibility of collision.\n\n[Tenants API](https://fusionauth.io/docs/v1/tech/apis/tenants)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthTenant(\"example\", {\n connectorPolicies: [{\n connectorId: \"b57b3d0f-f7a4-4831-a838-549717362ea8\",\n domains: [\"*\"],\n migrate: false,\n }],\n emailConfiguration: {\n forgotPasswordEmailTemplateId: fusionauth_email.ForgotPassword_Example.id,\n host: \"smtp.sendgrid.net\",\n password: \"password\",\n passwordlessEmailTemplateId: fusionauth_email.PasswordlessLogin_Example.id,\n port: 587,\n security: \"TLS\",\n setPasswordEmailTemplateId: fusionauth_email.SetupPassword_Example.id,\n username: \"username\",\n verifyEmail: true,\n verifyEmailWhenChanged: true,\n },\n eventConfigurations: [\n {\n event: \"user.delete\",\n enabled: true,\n transactionType: \"None\",\n },\n {\n event: \"user.create\",\n enabled: true,\n transactionType: \"None\",\n },\n {\n event: \"user.update\",\n enabled: true,\n transactionType: \"None\",\n },\n {\n event: \"user.deactivate\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.bulk.create\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.reactivate\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"jwt.refresh-token.revoke\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"jwt.refresh\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"jwt.public-key.update\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.login.success\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.login.failed\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.create\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.update\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.delete\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.verified\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.email.verified\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.identity-provider.link\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.identity-provider.unlink\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.password.breach\",\n enabled: false,\n transactionType: \"None\",\n },\n ],\n externalIdentifierConfiguration: {\n authorizationGrantIdTimeToLiveInSeconds: 30,\n changePasswordIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n changePasswordIdTimeToLiveInSeconds: 600,\n deviceCodeTimeToLiveInSeconds: 1800,\n deviceUserCodeIdGenerator: {\n length: 6,\n type: \"randomAlphaNumeric\",\n },\n emailVerificationIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n emailVerificationIdTimeToLiveInSeconds: 86400,\n emailVerificationOneTimeCodeGenerator: {\n length: 6,\n type: \"randomAlphaNumeric\",\n },\n externalAuthenticationIdTimeToLiveInSeconds: 300,\n oneTimePasswordTimeToLiveInSeconds: 60,\n passwordlessLoginGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n passwordlessLoginTimeToLiveInSeconds: 600,\n registrationVerificationIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n registrationVerificationIdTimeToLiveInSeconds: 86400,\n registrationVerificationOneTimeCodeGenerator: {\n length: 6,\n type: \"randomAlphaNumeric\",\n },\n samlV2AuthnRequestIdTtlSeconds: 300,\n setupPasswordIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n setupPasswordIdTimeToLiveInSeconds: 86400,\n twoFactorIdTimeToLiveInSeconds: 300,\n twoFactorOneTimeCodeIdGenerator: {\n length: 6,\n type: \"randomDigits\",\n },\n twoFactorTrustIdTimeToLiveInSeconds: 2592000,\n },\n failedAuthenticationConfiguration: {\n actionDuration: 3,\n actionDurationUnit: \"MINUTES\",\n resetCountInSeconds: 60,\n tooManyAttempts: 5,\n },\n familyConfiguration: {\n allowChildRegistrations: true,\n deleteOrphanedAccounts: false,\n deleteOrphanedAccountsDays: 30,\n enabled: true,\n maximumChildAge: 12,\n minimumOwnerAge: 21,\n parentEmailRequired: false,\n },\n formConfiguration: {\n adminUserFormId: \"e92751a5-25f4-4bca-ad91-66cdf67725d2\",\n },\n httpSessionMaxInactiveInterval: 3600,\n issuer: \"https://example.com\",\n jwtConfigurations: [{\n accessTokenKeyId: fusionauth_key.accesstoken.id,\n idTokenKeyId: fusionauth_key.idtoken.id,\n refreshTokenTimeToLiveInMinutes: 43200,\n timeToLiveInSeconds: 3600,\n }],\n loginConfiguration: {\n requireAuthentication: true,\n },\n maximumPasswordAge: {\n days: 180,\n enabled: false,\n },\n minimumPasswordAge: {\n enabled: false,\n seconds: 30,\n },\n oauthConfigurations: [{\n clientCredentialsAccessTokenPopulateLambdaId: fusionauth_lambda.client_jwt_populate.id,\n }],\n passwordEncryptionConfigurations: [{\n encryptionScheme: \"salted-pbkdf2-hmac-sha256\",\n encryptionSchemeFactor: 24000,\n modifyEncryptionSchemeOnLogin: false,\n }],\n passwordValidationRules: {\n maxLength: 256,\n minLength: 7,\n rememberPreviousPasswords: {\n count: 1,\n enabled: false,\n },\n requiredMixedCase: false,\n requireNonAlpha: false,\n requireNumber: false,\n validateOnLogin: false,\n },\n themeId: fusionauth_theme.example_theme.id,\n userDeletePolicy: {\n unverifiedEnabled: false,\n unverifiedNumberOfDaysToRetain: 30,\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthTenant(\"example\",\n connector_policies=[fusionauth.FusionAuthTenantConnectorPolicyArgs(\n connector_id=\"b57b3d0f-f7a4-4831-a838-549717362ea8\",\n domains=[\"*\"],\n migrate=False,\n )],\n email_configuration=fusionauth.FusionAuthTenantEmailConfigurationArgs(\n forgot_password_email_template_id=fusionauth_email[\"ForgotPassword_Example\"][\"id\"],\n host=\"smtp.sendgrid.net\",\n password=\"password\",\n passwordless_email_template_id=fusionauth_email[\"PasswordlessLogin_Example\"][\"id\"],\n port=587,\n security=\"TLS\",\n set_password_email_template_id=fusionauth_email[\"SetupPassword_Example\"][\"id\"],\n username=\"username\",\n verify_email=True,\n verify_email_when_changed=True,\n ),\n event_configurations=[\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.delete\",\n enabled=True,\n transaction_type=\"None\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.create\",\n enabled=True,\n transaction_type=\"None\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.update\",\n enabled=True,\n transaction_type=\"None\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.deactivate\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.bulk.create\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.reactivate\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"jwt.refresh-token.revoke\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"jwt.refresh\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"jwt.public-key.update\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.login.success\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.login.failed\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.create\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.update\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.delete\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.verified\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.email.verified\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.identity-provider.link\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.identity-provider.unlink\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.password.breach\",\n enabled=False,\n transaction_type=\"None\",\n ),\n ],\n external_identifier_configuration=fusionauth.FusionAuthTenantExternalIdentifierConfigurationArgs(\n authorization_grant_id_time_to_live_in_seconds=30,\n change_password_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n change_password_id_time_to_live_in_seconds=600,\n device_code_time_to_live_in_seconds=1800,\n device_user_code_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs(\n length=6,\n type=\"randomAlphaNumeric\",\n ),\n email_verification_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n email_verification_id_time_to_live_in_seconds=86400,\n email_verification_one_time_code_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs(\n length=6,\n type=\"randomAlphaNumeric\",\n ),\n external_authentication_id_time_to_live_in_seconds=300,\n one_time_password_time_to_live_in_seconds=60,\n passwordless_login_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n passwordless_login_time_to_live_in_seconds=600,\n registration_verification_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n registration_verification_id_time_to_live_in_seconds=86400,\n registration_verification_one_time_code_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs(\n length=6,\n type=\"randomAlphaNumeric\",\n ),\n saml_v2_authn_request_id_ttl_seconds=300,\n setup_password_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n setup_password_id_time_to_live_in_seconds=86400,\n two_factor_id_time_to_live_in_seconds=300,\n two_factor_one_time_code_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs(\n length=6,\n type=\"randomDigits\",\n ),\n two_factor_trust_id_time_to_live_in_seconds=2592000,\n ),\n failed_authentication_configuration=fusionauth.FusionAuthTenantFailedAuthenticationConfigurationArgs(\n action_duration=3,\n action_duration_unit=\"MINUTES\",\n reset_count_in_seconds=60,\n too_many_attempts=5,\n ),\n family_configuration=fusionauth.FusionAuthTenantFamilyConfigurationArgs(\n allow_child_registrations=True,\n delete_orphaned_accounts=False,\n delete_orphaned_accounts_days=30,\n enabled=True,\n maximum_child_age=12,\n minimum_owner_age=21,\n parent_email_required=False,\n ),\n form_configuration=fusionauth.FusionAuthTenantFormConfigurationArgs(\n admin_user_form_id=\"e92751a5-25f4-4bca-ad91-66cdf67725d2\",\n ),\n http_session_max_inactive_interval=3600,\n issuer=\"https://example.com\",\n jwt_configurations=[fusionauth.FusionAuthTenantJwtConfigurationArgs(\n access_token_key_id=fusionauth_key[\"accesstoken\"][\"id\"],\n id_token_key_id=fusionauth_key[\"idtoken\"][\"id\"],\n refresh_token_time_to_live_in_minutes=43200,\n time_to_live_in_seconds=3600,\n )],\n login_configuration=fusionauth.FusionAuthTenantLoginConfigurationArgs(\n require_authentication=True,\n ),\n maximum_password_age=fusionauth.FusionAuthTenantMaximumPasswordAgeArgs(\n days=180,\n enabled=False,\n ),\n minimum_password_age=fusionauth.FusionAuthTenantMinimumPasswordAgeArgs(\n enabled=False,\n seconds=30,\n ),\n oauth_configurations=[fusionauth.FusionAuthTenantOauthConfigurationArgs(\n client_credentials_access_token_populate_lambda_id=fusionauth_lambda[\"client_jwt_populate\"][\"id\"],\n )],\n password_encryption_configurations=[fusionauth.FusionAuthTenantPasswordEncryptionConfigurationArgs(\n encryption_scheme=\"salted-pbkdf2-hmac-sha256\",\n encryption_scheme_factor=24000,\n modify_encryption_scheme_on_login=False,\n )],\n password_validation_rules=fusionauth.FusionAuthTenantPasswordValidationRulesArgs(\n max_length=256,\n min_length=7,\n remember_previous_passwords=fusionauth.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs(\n count=1,\n enabled=False,\n ),\n required_mixed_case=False,\n require_non_alpha=False,\n require_number=False,\n validate_on_login=False,\n ),\n theme_id=fusionauth_theme[\"example_theme\"][\"id\"],\n user_delete_policy=fusionauth.FusionAuthTenantUserDeletePolicyArgs(\n unverified_enabled=False,\n unverified_number_of_days_to_retain=30,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthTenant(\"example\", new()\n {\n ConnectorPolicies = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantConnectorPolicyArgs\n {\n ConnectorId = \"b57b3d0f-f7a4-4831-a838-549717362ea8\",\n Domains = new[]\n {\n \"*\",\n },\n Migrate = false,\n },\n },\n EmailConfiguration = new Fusionauth.Inputs.FusionAuthTenantEmailConfigurationArgs\n {\n ForgotPasswordEmailTemplateId = fusionauth_email.ForgotPassword_Example.Id,\n Host = \"smtp.sendgrid.net\",\n Password = \"password\",\n PasswordlessEmailTemplateId = fusionauth_email.PasswordlessLogin_Example.Id,\n Port = 587,\n Security = \"TLS\",\n SetPasswordEmailTemplateId = fusionauth_email.SetupPassword_Example.Id,\n Username = \"username\",\n VerifyEmail = true,\n VerifyEmailWhenChanged = true,\n },\n EventConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.delete\",\n Enabled = true,\n TransactionType = \"None\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.create\",\n Enabled = true,\n TransactionType = \"None\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.update\",\n Enabled = true,\n TransactionType = \"None\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.deactivate\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.bulk.create\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.reactivate\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"jwt.refresh-token.revoke\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"jwt.refresh\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"jwt.public-key.update\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.login.success\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.login.failed\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.create\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.update\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.delete\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.verified\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.email.verified\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.identity-provider.link\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.identity-provider.unlink\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.password.breach\",\n Enabled = false,\n TransactionType = \"None\",\n },\n },\n ExternalIdentifierConfiguration = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationArgs\n {\n AuthorizationGrantIdTimeToLiveInSeconds = 30,\n ChangePasswordIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n ChangePasswordIdTimeToLiveInSeconds = 600,\n DeviceCodeTimeToLiveInSeconds = 1800,\n DeviceUserCodeIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs\n {\n Length = 6,\n Type = \"randomAlphaNumeric\",\n },\n EmailVerificationIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n EmailVerificationIdTimeToLiveInSeconds = 86400,\n EmailVerificationOneTimeCodeGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs\n {\n Length = 6,\n Type = \"randomAlphaNumeric\",\n },\n ExternalAuthenticationIdTimeToLiveInSeconds = 300,\n OneTimePasswordTimeToLiveInSeconds = 60,\n PasswordlessLoginGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n PasswordlessLoginTimeToLiveInSeconds = 600,\n RegistrationVerificationIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n RegistrationVerificationIdTimeToLiveInSeconds = 86400,\n RegistrationVerificationOneTimeCodeGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs\n {\n Length = 6,\n Type = \"randomAlphaNumeric\",\n },\n SamlV2AuthnRequestIdTtlSeconds = 300,\n SetupPasswordIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n SetupPasswordIdTimeToLiveInSeconds = 86400,\n TwoFactorIdTimeToLiveInSeconds = 300,\n TwoFactorOneTimeCodeIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs\n {\n Length = 6,\n Type = \"randomDigits\",\n },\n TwoFactorTrustIdTimeToLiveInSeconds = 2592000,\n },\n FailedAuthenticationConfiguration = new Fusionauth.Inputs.FusionAuthTenantFailedAuthenticationConfigurationArgs\n {\n ActionDuration = 3,\n ActionDurationUnit = \"MINUTES\",\n ResetCountInSeconds = 60,\n TooManyAttempts = 5,\n },\n FamilyConfiguration = new Fusionauth.Inputs.FusionAuthTenantFamilyConfigurationArgs\n {\n AllowChildRegistrations = true,\n DeleteOrphanedAccounts = false,\n DeleteOrphanedAccountsDays = 30,\n Enabled = true,\n MaximumChildAge = 12,\n MinimumOwnerAge = 21,\n ParentEmailRequired = false,\n },\n FormConfiguration = new Fusionauth.Inputs.FusionAuthTenantFormConfigurationArgs\n {\n AdminUserFormId = \"e92751a5-25f4-4bca-ad91-66cdf67725d2\",\n },\n HttpSessionMaxInactiveInterval = 3600,\n Issuer = \"https://example.com\",\n JwtConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantJwtConfigurationArgs\n {\n AccessTokenKeyId = fusionauth_key.Accesstoken.Id,\n IdTokenKeyId = fusionauth_key.Idtoken.Id,\n RefreshTokenTimeToLiveInMinutes = 43200,\n TimeToLiveInSeconds = 3600,\n },\n },\n LoginConfiguration = new Fusionauth.Inputs.FusionAuthTenantLoginConfigurationArgs\n {\n RequireAuthentication = true,\n },\n MaximumPasswordAge = new Fusionauth.Inputs.FusionAuthTenantMaximumPasswordAgeArgs\n {\n Days = 180,\n Enabled = false,\n },\n MinimumPasswordAge = new Fusionauth.Inputs.FusionAuthTenantMinimumPasswordAgeArgs\n {\n Enabled = false,\n Seconds = 30,\n },\n OauthConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantOauthConfigurationArgs\n {\n ClientCredentialsAccessTokenPopulateLambdaId = fusionauth_lambda.Client_jwt_populate.Id,\n },\n },\n PasswordEncryptionConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantPasswordEncryptionConfigurationArgs\n {\n EncryptionScheme = \"salted-pbkdf2-hmac-sha256\",\n EncryptionSchemeFactor = 24000,\n ModifyEncryptionSchemeOnLogin = false,\n },\n },\n PasswordValidationRules = new Fusionauth.Inputs.FusionAuthTenantPasswordValidationRulesArgs\n {\n MaxLength = 256,\n MinLength = 7,\n RememberPreviousPasswords = new Fusionauth.Inputs.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs\n {\n Count = 1,\n Enabled = false,\n },\n RequiredMixedCase = false,\n RequireNonAlpha = false,\n RequireNumber = false,\n ValidateOnLogin = false,\n },\n ThemeId = fusionauth_theme.Example_theme.Id,\n UserDeletePolicy = new Fusionauth.Inputs.FusionAuthTenantUserDeletePolicyArgs\n {\n UnverifiedEnabled = false,\n UnverifiedNumberOfDaysToRetain = 30,\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthTenant(ctx, \"example\", \u0026fusionauth.FusionAuthTenantArgs{\n\t\t\tConnectorPolicies: fusionauth.FusionAuthTenantConnectorPolicyArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantConnectorPolicyArgs{\n\t\t\t\t\tConnectorId: pulumi.String(\"b57b3d0f-f7a4-4831-a838-549717362ea8\"),\n\t\t\t\t\tDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tMigrate: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEmailConfiguration: \u0026fusionauth.FusionAuthTenantEmailConfigurationArgs{\n\t\t\t\tForgotPasswordEmailTemplateId: pulumi.Any(fusionauth_email.ForgotPassword_Example.Id),\n\t\t\t\tHost: pulumi.String(\"smtp.sendgrid.net\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\tPasswordlessEmailTemplateId: pulumi.Any(fusionauth_email.PasswordlessLogin_Example.Id),\n\t\t\t\tPort: pulumi.Int(587),\n\t\t\t\tSecurity: pulumi.String(\"TLS\"),\n\t\t\t\tSetPasswordEmailTemplateId: pulumi.Any(fusionauth_email.SetupPassword_Example.Id),\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tVerifyEmail: pulumi.Bool(true),\n\t\t\t\tVerifyEmailWhenChanged: pulumi.Bool(true),\n\t\t\t},\n\t\t\tEventConfigurations: fusionauth.FusionAuthTenantEventConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.delete\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.create\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.update\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.deactivate\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.bulk.create\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.reactivate\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"jwt.refresh-token.revoke\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"jwt.refresh\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"jwt.public-key.update\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.login.success\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.login.failed\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.create\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.update\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.delete\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.verified\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.email.verified\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.identity-provider.link\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.identity-provider.unlink\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.password.breach\"),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tExternalIdentifierConfiguration: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationArgs{\n\t\t\t\tAuthorizationGrantIdTimeToLiveInSeconds: pulumi.Int(30),\n\t\t\t\tChangePasswordIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tChangePasswordIdTimeToLiveInSeconds: pulumi.Int(600),\n\t\t\t\tDeviceCodeTimeToLiveInSeconds: pulumi.Int(1800),\n\t\t\t\tDeviceUserCodeIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomAlphaNumeric\"),\n\t\t\t\t},\n\t\t\t\tEmailVerificationIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tEmailVerificationIdTimeToLiveInSeconds: pulumi.Int(86400),\n\t\t\t\tEmailVerificationOneTimeCodeGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomAlphaNumeric\"),\n\t\t\t\t},\n\t\t\t\tExternalAuthenticationIdTimeToLiveInSeconds: pulumi.Int(300),\n\t\t\t\tOneTimePasswordTimeToLiveInSeconds: pulumi.Int(60),\n\t\t\t\tPasswordlessLoginGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tPasswordlessLoginTimeToLiveInSeconds: pulumi.Int(600),\n\t\t\t\tRegistrationVerificationIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tRegistrationVerificationIdTimeToLiveInSeconds: pulumi.Int(86400),\n\t\t\t\tRegistrationVerificationOneTimeCodeGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomAlphaNumeric\"),\n\t\t\t\t},\n\t\t\t\tSamlV2AuthnRequestIdTtlSeconds: pulumi.Int(300),\n\t\t\t\tSetupPasswordIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tSetupPasswordIdTimeToLiveInSeconds: pulumi.Int(86400),\n\t\t\t\tTwoFactorIdTimeToLiveInSeconds: pulumi.Int(300),\n\t\t\t\tTwoFactorOneTimeCodeIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomDigits\"),\n\t\t\t\t},\n\t\t\t\tTwoFactorTrustIdTimeToLiveInSeconds: pulumi.Int(2592000),\n\t\t\t},\n\t\t\tFailedAuthenticationConfiguration: \u0026fusionauth.FusionAuthTenantFailedAuthenticationConfigurationArgs{\n\t\t\t\tActionDuration: pulumi.Int(3),\n\t\t\t\tActionDurationUnit: pulumi.String(\"MINUTES\"),\n\t\t\t\tResetCountInSeconds: pulumi.Int(60),\n\t\t\t\tTooManyAttempts: pulumi.Int(5),\n\t\t\t},\n\t\t\tFamilyConfiguration: \u0026fusionauth.FusionAuthTenantFamilyConfigurationArgs{\n\t\t\t\tAllowChildRegistrations: pulumi.Bool(true),\n\t\t\t\tDeleteOrphanedAccounts: pulumi.Bool(false),\n\t\t\t\tDeleteOrphanedAccountsDays: pulumi.Int(30),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tMaximumChildAge: pulumi.Int(12),\n\t\t\t\tMinimumOwnerAge: pulumi.Int(21),\n\t\t\t\tParentEmailRequired: pulumi.Bool(false),\n\t\t\t},\n\t\t\tFormConfiguration: \u0026fusionauth.FusionAuthTenantFormConfigurationArgs{\n\t\t\t\tAdminUserFormId: pulumi.String(\"e92751a5-25f4-4bca-ad91-66cdf67725d2\"),\n\t\t\t},\n\t\t\tHttpSessionMaxInactiveInterval: pulumi.Int(3600),\n\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\tJwtConfigurations: fusionauth.FusionAuthTenantJwtConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantJwtConfigurationArgs{\n\t\t\t\t\tAccessTokenKeyId: pulumi.Any(fusionauth_key.Accesstoken.Id),\n\t\t\t\t\tIdTokenKeyId: pulumi.Any(fusionauth_key.Idtoken.Id),\n\t\t\t\t\tRefreshTokenTimeToLiveInMinutes: pulumi.Int(43200),\n\t\t\t\t\tTimeToLiveInSeconds: pulumi.Int(3600),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoginConfiguration: \u0026fusionauth.FusionAuthTenantLoginConfigurationArgs{\n\t\t\t\tRequireAuthentication: pulumi.Bool(true),\n\t\t\t},\n\t\t\tMaximumPasswordAge: \u0026fusionauth.FusionAuthTenantMaximumPasswordAgeArgs{\n\t\t\t\tDays: pulumi.Int(180),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tMinimumPasswordAge: \u0026fusionauth.FusionAuthTenantMinimumPasswordAgeArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tSeconds: pulumi.Int(30),\n\t\t\t},\n\t\t\tOauthConfigurations: fusionauth.FusionAuthTenantOauthConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantOauthConfigurationArgs{\n\t\t\t\t\tClientCredentialsAccessTokenPopulateLambdaId: pulumi.Any(fusionauth_lambda.Client_jwt_populate.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPasswordEncryptionConfigurations: fusionauth.FusionAuthTenantPasswordEncryptionConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantPasswordEncryptionConfigurationArgs{\n\t\t\t\t\tEncryptionScheme: pulumi.String(\"salted-pbkdf2-hmac-sha256\"),\n\t\t\t\t\tEncryptionSchemeFactor: pulumi.Int(24000),\n\t\t\t\t\tModifyEncryptionSchemeOnLogin: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPasswordValidationRules: \u0026fusionauth.FusionAuthTenantPasswordValidationRulesArgs{\n\t\t\t\tMaxLength: pulumi.Int(256),\n\t\t\t\tMinLength: pulumi.Int(7),\n\t\t\t\tRememberPreviousPasswords: \u0026fusionauth.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs{\n\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tRequiredMixedCase: pulumi.Bool(false),\n\t\t\t\tRequireNonAlpha: pulumi.Bool(false),\n\t\t\t\tRequireNumber: pulumi.Bool(false),\n\t\t\t\tValidateOnLogin: pulumi.Bool(false),\n\t\t\t},\n\t\t\tThemeId: pulumi.Any(fusionauth_theme.Example_theme.Id),\n\t\t\tUserDeletePolicy: \u0026fusionauth.FusionAuthTenantUserDeletePolicyArgs{\n\t\t\t\tUnverifiedEnabled: pulumi.Bool(false),\n\t\t\t\tUnverifiedNumberOfDaysToRetain: pulumi.Int(30),\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.fusionauth.FusionAuthTenant;\nimport com.pulumi.fusionauth.FusionAuthTenantArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantConnectorPolicyArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantEmailConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantEventConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantFailedAuthenticationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantFamilyConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantFormConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantJwtConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantLoginConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantMaximumPasswordAgeArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantMinimumPasswordAgeArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantOauthConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantPasswordEncryptionConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantPasswordValidationRulesArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantUserDeletePolicyArgs;\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 example = new FusionAuthTenant(\"example\", FusionAuthTenantArgs.builder() \n .connectorPolicies(FusionAuthTenantConnectorPolicyArgs.builder()\n .connectorId(\"b57b3d0f-f7a4-4831-a838-549717362ea8\")\n .domains(\"*\")\n .migrate(false)\n .build())\n .emailConfiguration(FusionAuthTenantEmailConfigurationArgs.builder()\n .forgotPasswordEmailTemplateId(fusionauth_email.ForgotPassword_Example().id())\n .host(\"smtp.sendgrid.net\")\n .password(\"password\")\n .passwordlessEmailTemplateId(fusionauth_email.PasswordlessLogin_Example().id())\n .port(587)\n .security(\"TLS\")\n .setPasswordEmailTemplateId(fusionauth_email.SetupPassword_Example().id())\n .username(\"username\")\n .verifyEmail(true)\n .verifyEmailWhenChanged(true)\n .build())\n .eventConfigurations( \n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.delete\")\n .enabled(true)\n .transactionType(\"None\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.create\")\n .enabled(true)\n .transactionType(\"None\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.update\")\n .enabled(true)\n .transactionType(\"None\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.deactivate\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.bulk.create\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.reactivate\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"jwt.refresh-token.revoke\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"jwt.refresh\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"jwt.public-key.update\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.login.success\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.login.failed\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.create\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.update\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.delete\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.verified\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.email.verified\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.identity-provider.link\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.identity-provider.unlink\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.password.breach\")\n .enabled(false)\n .transactionType(\"None\")\n .build())\n .externalIdentifierConfiguration(FusionAuthTenantExternalIdentifierConfigurationArgs.builder()\n .authorizationGrantIdTimeToLiveInSeconds(30)\n .changePasswordIdGenerator(FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .changePasswordIdTimeToLiveInSeconds(600)\n .deviceCodeTimeToLiveInSeconds(1800)\n .deviceUserCodeIdGenerator(FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs.builder()\n .length(6)\n .type(\"randomAlphaNumeric\")\n .build())\n .emailVerificationIdGenerator(FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .emailVerificationIdTimeToLiveInSeconds(86400)\n .emailVerificationOneTimeCodeGenerator(FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs.builder()\n .length(6)\n .type(\"randomAlphaNumeric\")\n .build())\n .externalAuthenticationIdTimeToLiveInSeconds(300)\n .oneTimePasswordTimeToLiveInSeconds(60)\n .passwordlessLoginGenerator(FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .passwordlessLoginTimeToLiveInSeconds(600)\n .registrationVerificationIdGenerator(FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .registrationVerificationIdTimeToLiveInSeconds(86400)\n .registrationVerificationOneTimeCodeGenerator(FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs.builder()\n .length(6)\n .type(\"randomAlphaNumeric\")\n .build())\n .samlV2AuthnRequestIdTtlSeconds(300)\n .setupPasswordIdGenerator(FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .setupPasswordIdTimeToLiveInSeconds(86400)\n .twoFactorIdTimeToLiveInSeconds(300)\n .twoFactorOneTimeCodeIdGenerator(FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs.builder()\n .length(6)\n .type(\"randomDigits\")\n .build())\n .twoFactorTrustIdTimeToLiveInSeconds(2592000)\n .build())\n .failedAuthenticationConfiguration(FusionAuthTenantFailedAuthenticationConfigurationArgs.builder()\n .actionDuration(3)\n .actionDurationUnit(\"MINUTES\")\n .resetCountInSeconds(60)\n .tooManyAttempts(5)\n .build())\n .familyConfiguration(FusionAuthTenantFamilyConfigurationArgs.builder()\n .allowChildRegistrations(true)\n .deleteOrphanedAccounts(false)\n .deleteOrphanedAccountsDays(30)\n .enabled(true)\n .maximumChildAge(12)\n .minimumOwnerAge(21)\n .parentEmailRequired(false)\n .build())\n .formConfiguration(FusionAuthTenantFormConfigurationArgs.builder()\n .adminUserFormId(\"e92751a5-25f4-4bca-ad91-66cdf67725d2\")\n .build())\n .httpSessionMaxInactiveInterval(3600)\n .issuer(\"https://example.com\")\n .jwtConfigurations(FusionAuthTenantJwtConfigurationArgs.builder()\n .accessTokenKeyId(fusionauth_key.accesstoken().id())\n .idTokenKeyId(fusionauth_key.idtoken().id())\n .refreshTokenTimeToLiveInMinutes(43200)\n .timeToLiveInSeconds(3600)\n .build())\n .loginConfiguration(FusionAuthTenantLoginConfigurationArgs.builder()\n .requireAuthentication(true)\n .build())\n .maximumPasswordAge(FusionAuthTenantMaximumPasswordAgeArgs.builder()\n .days(180)\n .enabled(false)\n .build())\n .minimumPasswordAge(FusionAuthTenantMinimumPasswordAgeArgs.builder()\n .enabled(false)\n .seconds(30)\n .build())\n .oauthConfigurations(FusionAuthTenantOauthConfigurationArgs.builder()\n .clientCredentialsAccessTokenPopulateLambdaId(fusionauth_lambda.client_jwt_populate().id())\n .build())\n .passwordEncryptionConfigurations(FusionAuthTenantPasswordEncryptionConfigurationArgs.builder()\n .encryptionScheme(\"salted-pbkdf2-hmac-sha256\")\n .encryptionSchemeFactor(24000)\n .modifyEncryptionSchemeOnLogin(false)\n .build())\n .passwordValidationRules(FusionAuthTenantPasswordValidationRulesArgs.builder()\n .maxLength(256)\n .minLength(7)\n .rememberPreviousPasswords(FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs.builder()\n .count(1)\n .enabled(false)\n .build())\n .requiredMixedCase(false)\n .requireNonAlpha(false)\n .requireNumber(false)\n .validateOnLogin(false)\n .build())\n .themeId(fusionauth_theme.example_theme().id())\n .userDeletePolicy(FusionAuthTenantUserDeletePolicyArgs.builder()\n .unverifiedEnabled(false)\n .unverifiedNumberOfDaysToRetain(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthTenant\n properties:\n connectorPolicies:\n - connectorId: b57b3d0f-f7a4-4831-a838-549717362ea8\n domains:\n - '*'\n migrate: false\n emailConfiguration:\n forgotPasswordEmailTemplateId: ${fusionauth_email.ForgotPassword_Example.id}\n host: smtp.sendgrid.net\n password: password\n passwordlessEmailTemplateId: ${fusionauth_email.PasswordlessLogin_Example.id}\n port: 587\n security: TLS\n setPasswordEmailTemplateId: ${fusionauth_email.SetupPassword_Example.id}\n username: username\n verifyEmail: true\n verifyEmailWhenChanged: true\n eventConfigurations:\n - event: user.delete\n enabled: true\n transactionType: None\n - event: user.create\n enabled: true\n transactionType: None\n - event: user.update\n enabled: true\n transactionType: None\n - event: user.deactivate\n enabled: true\n transactionType: Any\n - event: user.bulk.create\n enabled: true\n transactionType: Any\n - event: user.reactivate\n enabled: true\n transactionType: Any\n - event: jwt.refresh-token.revoke\n enabled: true\n transactionType: Any\n - event: jwt.refresh\n enabled: true\n transactionType: Any\n - event: jwt.public-key.update\n enabled: true\n transactionType: Any\n - event: user.login.success\n enabled: true\n transactionType: Any\n - event: user.login.failed\n enabled: true\n transactionType: Any\n - event: user.registration.create\n enabled: true\n transactionType: Any\n - event: user.registration.update\n enabled: true\n transactionType: Any\n - event: user.registration.delete\n enabled: true\n transactionType: Any\n - event: user.registration.verified\n enabled: true\n transactionType: Any\n - event: user.email.verified\n enabled: true\n transactionType: Any\n - event: user.identity-provider.link\n enabled: true\n transactionType: Any\n - event: user.identity-provider.unlink\n enabled: true\n transactionType: Any\n - event: user.password.breach\n enabled: false\n transactionType: None\n externalIdentifierConfiguration:\n authorizationGrantIdTimeToLiveInSeconds: 30\n changePasswordIdGenerator:\n length: 32\n type: randomBytes\n changePasswordIdTimeToLiveInSeconds: 600\n deviceCodeTimeToLiveInSeconds: 1800\n deviceUserCodeIdGenerator:\n length: 6\n type: randomAlphaNumeric\n emailVerificationIdGenerator:\n length: 32\n type: randomBytes\n emailVerificationIdTimeToLiveInSeconds: 86400\n emailVerificationOneTimeCodeGenerator:\n length: 6\n type: randomAlphaNumeric\n externalAuthenticationIdTimeToLiveInSeconds: 300\n oneTimePasswordTimeToLiveInSeconds: 60\n passwordlessLoginGenerator:\n length: 32\n type: randomBytes\n passwordlessLoginTimeToLiveInSeconds: 600\n registrationVerificationIdGenerator:\n length: 32\n type: randomBytes\n registrationVerificationIdTimeToLiveInSeconds: 86400\n registrationVerificationOneTimeCodeGenerator:\n length: 6\n type: randomAlphaNumeric\n samlV2AuthnRequestIdTtlSeconds: 300\n setupPasswordIdGenerator:\n length: 32\n type: randomBytes\n setupPasswordIdTimeToLiveInSeconds: 86400\n twoFactorIdTimeToLiveInSeconds: 300\n twoFactorOneTimeCodeIdGenerator:\n length: 6\n type: randomDigits\n twoFactorTrustIdTimeToLiveInSeconds: 2.592e+06\n failedAuthenticationConfiguration:\n actionDuration: 3\n actionDurationUnit: MINUTES\n resetCountInSeconds: 60\n tooManyAttempts: 5\n familyConfiguration:\n allowChildRegistrations: true\n deleteOrphanedAccounts: false\n deleteOrphanedAccountsDays: 30\n enabled: true\n maximumChildAge: 12\n minimumOwnerAge: 21\n parentEmailRequired: false\n formConfiguration:\n adminUserFormId: e92751a5-25f4-4bca-ad91-66cdf67725d2\n httpSessionMaxInactiveInterval: 3600\n issuer: https://example.com\n jwtConfigurations:\n - accessTokenKeyId: ${fusionauth_key.accesstoken.id}\n idTokenKeyId: ${fusionauth_key.idtoken.id}\n refreshTokenTimeToLiveInMinutes: 43200\n timeToLiveInSeconds: 3600\n loginConfiguration:\n requireAuthentication: true\n maximumPasswordAge:\n days: 180\n enabled: false\n minimumPasswordAge:\n enabled: false\n seconds: 30\n oauthConfigurations:\n - clientCredentialsAccessTokenPopulateLambdaId: ${fusionauth_lambda.client_jwt_populate.id}\n passwordEncryptionConfigurations:\n - encryptionScheme: salted-pbkdf2-hmac-sha256\n encryptionSchemeFactor: 24000\n modifyEncryptionSchemeOnLogin: false\n passwordValidationRules:\n maxLength: 256\n minLength: 7\n rememberPreviousPasswords:\n count: 1\n enabled: false\n requiredMixedCase: false\n requireNonAlpha: false\n requireNumber: false\n validateOnLogin: false\n themeId: ${fusionauth_theme.example_theme.id}\n userDeletePolicy:\n unverifiedEnabled: false\n unverifiedNumberOfDaysToRetain: 30\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Tenant Resource\n\nA FusionAuth Tenant is a named object that represents a discrete namespace for Users, Applications and Groups. A user is unique by email address or username within a tenant.\n\nTenants may be useful to support a multi-tenant application where you wish to use a single instance of FusionAuth but require the ability to have duplicate users across the tenants in your own application. In this scenario a user may exist multiple times with the same email address and different passwords across tenants.\n\nTenants may also be useful in a test or staging environment to allow multiple users to call APIs and create and modify users without possibility of collision.\n\n[Tenants API](https://fusionauth.io/docs/v1/tech/apis/tenants)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthTenant(\"example\", {\n connectorPolicies: [{\n connectorId: \"b57b3d0f-f7a4-4831-a838-549717362ea8\",\n domains: [\"*\"],\n migrate: false,\n }],\n emailConfiguration: {\n forgotPasswordEmailTemplateId: fusionauth_email.ForgotPassword_Example.id,\n host: \"smtp.sendgrid.net\",\n password: \"password\",\n passwordlessEmailTemplateId: fusionauth_email.PasswordlessLogin_Example.id,\n port: 587,\n security: \"TLS\",\n setPasswordEmailTemplateId: fusionauth_email.SetupPassword_Example.id,\n username: \"username\",\n verifyEmail: true,\n verifyEmailWhenChanged: true,\n },\n eventConfigurations: [\n {\n event: \"user.delete\",\n enabled: true,\n transactionType: \"None\",\n },\n {\n event: \"user.create\",\n enabled: true,\n transactionType: \"None\",\n },\n {\n event: \"user.update\",\n enabled: true,\n transactionType: \"None\",\n },\n {\n event: \"user.deactivate\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.bulk.create\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.reactivate\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"jwt.refresh-token.revoke\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"jwt.refresh\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"jwt.public-key.update\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.login.success\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.login.failed\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.create\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.update\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.delete\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.registration.verified\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.email.verified\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.identity-provider.link\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.identity-provider.unlink\",\n enabled: true,\n transactionType: \"Any\",\n },\n {\n event: \"user.password.breach\",\n enabled: false,\n transactionType: \"None\",\n },\n ],\n externalIdentifierConfiguration: {\n authorizationGrantIdTimeToLiveInSeconds: 30,\n changePasswordIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n changePasswordIdTimeToLiveInSeconds: 600,\n deviceCodeTimeToLiveInSeconds: 1800,\n deviceUserCodeIdGenerator: {\n length: 6,\n type: \"randomAlphaNumeric\",\n },\n emailVerificationIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n emailVerificationIdTimeToLiveInSeconds: 86400,\n emailVerificationOneTimeCodeGenerator: {\n length: 6,\n type: \"randomAlphaNumeric\",\n },\n externalAuthenticationIdTimeToLiveInSeconds: 300,\n oneTimePasswordTimeToLiveInSeconds: 60,\n passwordlessLoginGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n passwordlessLoginTimeToLiveInSeconds: 600,\n registrationVerificationIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n registrationVerificationIdTimeToLiveInSeconds: 86400,\n registrationVerificationOneTimeCodeGenerator: {\n length: 6,\n type: \"randomAlphaNumeric\",\n },\n samlV2AuthnRequestIdTtlSeconds: 300,\n setupPasswordIdGenerator: {\n length: 32,\n type: \"randomBytes\",\n },\n setupPasswordIdTimeToLiveInSeconds: 86400,\n twoFactorIdTimeToLiveInSeconds: 300,\n twoFactorOneTimeCodeIdGenerator: {\n length: 6,\n type: \"randomDigits\",\n },\n twoFactorTrustIdTimeToLiveInSeconds: 2592000,\n },\n failedAuthenticationConfiguration: {\n actionDuration: 3,\n actionDurationUnit: \"MINUTES\",\n resetCountInSeconds: 60,\n tooManyAttempts: 5,\n },\n familyConfiguration: {\n allowChildRegistrations: true,\n deleteOrphanedAccounts: false,\n deleteOrphanedAccountsDays: 30,\n enabled: true,\n maximumChildAge: 12,\n minimumOwnerAge: 21,\n parentEmailRequired: false,\n },\n formConfiguration: {\n adminUserFormId: \"e92751a5-25f4-4bca-ad91-66cdf67725d2\",\n },\n httpSessionMaxInactiveInterval: 3600,\n issuer: \"https://example.com\",\n jwtConfigurations: [{\n accessTokenKeyId: fusionauth_key.accesstoken.id,\n idTokenKeyId: fusionauth_key.idtoken.id,\n refreshTokenTimeToLiveInMinutes: 43200,\n timeToLiveInSeconds: 3600,\n }],\n loginConfiguration: {\n requireAuthentication: true,\n },\n maximumPasswordAge: {\n days: 180,\n enabled: false,\n },\n minimumPasswordAge: {\n enabled: false,\n seconds: 30,\n },\n oauthConfigurations: [{\n clientCredentialsAccessTokenPopulateLambdaId: fusionauth_lambda.client_jwt_populate.id,\n }],\n passwordEncryptionConfigurations: [{\n encryptionScheme: \"salted-pbkdf2-hmac-sha256\",\n encryptionSchemeFactor: 24000,\n modifyEncryptionSchemeOnLogin: false,\n }],\n passwordValidationRules: {\n maxLength: 256,\n minLength: 7,\n rememberPreviousPasswords: {\n count: 1,\n enabled: false,\n },\n requiredMixedCase: false,\n requireNonAlpha: false,\n requireNumber: false,\n validateOnLogin: false,\n },\n themeId: fusionauth_theme.example_theme.id,\n userDeletePolicy: {\n unverifiedEnabled: false,\n unverifiedNumberOfDaysToRetain: 30,\n },\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthTenant(\"example\",\n connector_policies=[fusionauth.FusionAuthTenantConnectorPolicyArgs(\n connector_id=\"b57b3d0f-f7a4-4831-a838-549717362ea8\",\n domains=[\"*\"],\n migrate=False,\n )],\n email_configuration=fusionauth.FusionAuthTenantEmailConfigurationArgs(\n forgot_password_email_template_id=fusionauth_email[\"ForgotPassword_Example\"][\"id\"],\n host=\"smtp.sendgrid.net\",\n password=\"password\",\n passwordless_email_template_id=fusionauth_email[\"PasswordlessLogin_Example\"][\"id\"],\n port=587,\n security=\"TLS\",\n set_password_email_template_id=fusionauth_email[\"SetupPassword_Example\"][\"id\"],\n username=\"username\",\n verify_email=True,\n verify_email_when_changed=True,\n ),\n event_configurations=[\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.delete\",\n enabled=True,\n transaction_type=\"None\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.create\",\n enabled=True,\n transaction_type=\"None\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.update\",\n enabled=True,\n transaction_type=\"None\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.deactivate\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.bulk.create\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.reactivate\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"jwt.refresh-token.revoke\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"jwt.refresh\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"jwt.public-key.update\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.login.success\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.login.failed\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.create\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.update\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.delete\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.registration.verified\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.email.verified\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.identity-provider.link\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.identity-provider.unlink\",\n enabled=True,\n transaction_type=\"Any\",\n ),\n fusionauth.FusionAuthTenantEventConfigurationArgs(\n event=\"user.password.breach\",\n enabled=False,\n transaction_type=\"None\",\n ),\n ],\n external_identifier_configuration=fusionauth.FusionAuthTenantExternalIdentifierConfigurationArgs(\n authorization_grant_id_time_to_live_in_seconds=30,\n change_password_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n change_password_id_time_to_live_in_seconds=600,\n device_code_time_to_live_in_seconds=1800,\n device_user_code_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs(\n length=6,\n type=\"randomAlphaNumeric\",\n ),\n email_verification_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n email_verification_id_time_to_live_in_seconds=86400,\n email_verification_one_time_code_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs(\n length=6,\n type=\"randomAlphaNumeric\",\n ),\n external_authentication_id_time_to_live_in_seconds=300,\n one_time_password_time_to_live_in_seconds=60,\n passwordless_login_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n passwordless_login_time_to_live_in_seconds=600,\n registration_verification_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n registration_verification_id_time_to_live_in_seconds=86400,\n registration_verification_one_time_code_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs(\n length=6,\n type=\"randomAlphaNumeric\",\n ),\n saml_v2_authn_request_id_ttl_seconds=300,\n setup_password_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs(\n length=32,\n type=\"randomBytes\",\n ),\n setup_password_id_time_to_live_in_seconds=86400,\n two_factor_id_time_to_live_in_seconds=300,\n two_factor_one_time_code_id_generator=fusionauth.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs(\n length=6,\n type=\"randomDigits\",\n ),\n two_factor_trust_id_time_to_live_in_seconds=2592000,\n ),\n failed_authentication_configuration=fusionauth.FusionAuthTenantFailedAuthenticationConfigurationArgs(\n action_duration=3,\n action_duration_unit=\"MINUTES\",\n reset_count_in_seconds=60,\n too_many_attempts=5,\n ),\n family_configuration=fusionauth.FusionAuthTenantFamilyConfigurationArgs(\n allow_child_registrations=True,\n delete_orphaned_accounts=False,\n delete_orphaned_accounts_days=30,\n enabled=True,\n maximum_child_age=12,\n minimum_owner_age=21,\n parent_email_required=False,\n ),\n form_configuration=fusionauth.FusionAuthTenantFormConfigurationArgs(\n admin_user_form_id=\"e92751a5-25f4-4bca-ad91-66cdf67725d2\",\n ),\n http_session_max_inactive_interval=3600,\n issuer=\"https://example.com\",\n jwt_configurations=[fusionauth.FusionAuthTenantJwtConfigurationArgs(\n access_token_key_id=fusionauth_key[\"accesstoken\"][\"id\"],\n id_token_key_id=fusionauth_key[\"idtoken\"][\"id\"],\n refresh_token_time_to_live_in_minutes=43200,\n time_to_live_in_seconds=3600,\n )],\n login_configuration=fusionauth.FusionAuthTenantLoginConfigurationArgs(\n require_authentication=True,\n ),\n maximum_password_age=fusionauth.FusionAuthTenantMaximumPasswordAgeArgs(\n days=180,\n enabled=False,\n ),\n minimum_password_age=fusionauth.FusionAuthTenantMinimumPasswordAgeArgs(\n enabled=False,\n seconds=30,\n ),\n oauth_configurations=[fusionauth.FusionAuthTenantOauthConfigurationArgs(\n client_credentials_access_token_populate_lambda_id=fusionauth_lambda[\"client_jwt_populate\"][\"id\"],\n )],\n password_encryption_configurations=[fusionauth.FusionAuthTenantPasswordEncryptionConfigurationArgs(\n encryption_scheme=\"salted-pbkdf2-hmac-sha256\",\n encryption_scheme_factor=24000,\n modify_encryption_scheme_on_login=False,\n )],\n password_validation_rules=fusionauth.FusionAuthTenantPasswordValidationRulesArgs(\n max_length=256,\n min_length=7,\n remember_previous_passwords=fusionauth.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs(\n count=1,\n enabled=False,\n ),\n required_mixed_case=False,\n require_non_alpha=False,\n require_number=False,\n validate_on_login=False,\n ),\n theme_id=fusionauth_theme[\"example_theme\"][\"id\"],\n user_delete_policy=fusionauth.FusionAuthTenantUserDeletePolicyArgs(\n unverified_enabled=False,\n unverified_number_of_days_to_retain=30,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthTenant(\"example\", new()\n {\n ConnectorPolicies = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantConnectorPolicyArgs\n {\n ConnectorId = \"b57b3d0f-f7a4-4831-a838-549717362ea8\",\n Domains = new[]\n {\n \"*\",\n },\n Migrate = false,\n },\n },\n EmailConfiguration = new Fusionauth.Inputs.FusionAuthTenantEmailConfigurationArgs\n {\n ForgotPasswordEmailTemplateId = fusionauth_email.ForgotPassword_Example.Id,\n Host = \"smtp.sendgrid.net\",\n Password = \"password\",\n PasswordlessEmailTemplateId = fusionauth_email.PasswordlessLogin_Example.Id,\n Port = 587,\n Security = \"TLS\",\n SetPasswordEmailTemplateId = fusionauth_email.SetupPassword_Example.Id,\n Username = \"username\",\n VerifyEmail = true,\n VerifyEmailWhenChanged = true,\n },\n EventConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.delete\",\n Enabled = true,\n TransactionType = \"None\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.create\",\n Enabled = true,\n TransactionType = \"None\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.update\",\n Enabled = true,\n TransactionType = \"None\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.deactivate\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.bulk.create\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.reactivate\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"jwt.refresh-token.revoke\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"jwt.refresh\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"jwt.public-key.update\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.login.success\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.login.failed\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.create\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.update\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.delete\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.registration.verified\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.email.verified\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.identity-provider.link\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.identity-provider.unlink\",\n Enabled = true,\n TransactionType = \"Any\",\n },\n new Fusionauth.Inputs.FusionAuthTenantEventConfigurationArgs\n {\n Event = \"user.password.breach\",\n Enabled = false,\n TransactionType = \"None\",\n },\n },\n ExternalIdentifierConfiguration = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationArgs\n {\n AuthorizationGrantIdTimeToLiveInSeconds = 30,\n ChangePasswordIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n ChangePasswordIdTimeToLiveInSeconds = 600,\n DeviceCodeTimeToLiveInSeconds = 1800,\n DeviceUserCodeIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs\n {\n Length = 6,\n Type = \"randomAlphaNumeric\",\n },\n EmailVerificationIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n EmailVerificationIdTimeToLiveInSeconds = 86400,\n EmailVerificationOneTimeCodeGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs\n {\n Length = 6,\n Type = \"randomAlphaNumeric\",\n },\n ExternalAuthenticationIdTimeToLiveInSeconds = 300,\n OneTimePasswordTimeToLiveInSeconds = 60,\n PasswordlessLoginGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n PasswordlessLoginTimeToLiveInSeconds = 600,\n RegistrationVerificationIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n RegistrationVerificationIdTimeToLiveInSeconds = 86400,\n RegistrationVerificationOneTimeCodeGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs\n {\n Length = 6,\n Type = \"randomAlphaNumeric\",\n },\n SamlV2AuthnRequestIdTtlSeconds = 300,\n SetupPasswordIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs\n {\n Length = 32,\n Type = \"randomBytes\",\n },\n SetupPasswordIdTimeToLiveInSeconds = 86400,\n TwoFactorIdTimeToLiveInSeconds = 300,\n TwoFactorOneTimeCodeIdGenerator = new Fusionauth.Inputs.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs\n {\n Length = 6,\n Type = \"randomDigits\",\n },\n TwoFactorTrustIdTimeToLiveInSeconds = 2592000,\n },\n FailedAuthenticationConfiguration = new Fusionauth.Inputs.FusionAuthTenantFailedAuthenticationConfigurationArgs\n {\n ActionDuration = 3,\n ActionDurationUnit = \"MINUTES\",\n ResetCountInSeconds = 60,\n TooManyAttempts = 5,\n },\n FamilyConfiguration = new Fusionauth.Inputs.FusionAuthTenantFamilyConfigurationArgs\n {\n AllowChildRegistrations = true,\n DeleteOrphanedAccounts = false,\n DeleteOrphanedAccountsDays = 30,\n Enabled = true,\n MaximumChildAge = 12,\n MinimumOwnerAge = 21,\n ParentEmailRequired = false,\n },\n FormConfiguration = new Fusionauth.Inputs.FusionAuthTenantFormConfigurationArgs\n {\n AdminUserFormId = \"e92751a5-25f4-4bca-ad91-66cdf67725d2\",\n },\n HttpSessionMaxInactiveInterval = 3600,\n Issuer = \"https://example.com\",\n JwtConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantJwtConfigurationArgs\n {\n AccessTokenKeyId = fusionauth_key.Accesstoken.Id,\n IdTokenKeyId = fusionauth_key.Idtoken.Id,\n RefreshTokenTimeToLiveInMinutes = 43200,\n TimeToLiveInSeconds = 3600,\n },\n },\n LoginConfiguration = new Fusionauth.Inputs.FusionAuthTenantLoginConfigurationArgs\n {\n RequireAuthentication = true,\n },\n MaximumPasswordAge = new Fusionauth.Inputs.FusionAuthTenantMaximumPasswordAgeArgs\n {\n Days = 180,\n Enabled = false,\n },\n MinimumPasswordAge = new Fusionauth.Inputs.FusionAuthTenantMinimumPasswordAgeArgs\n {\n Enabled = false,\n Seconds = 30,\n },\n OauthConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantOauthConfigurationArgs\n {\n ClientCredentialsAccessTokenPopulateLambdaId = fusionauth_lambda.Client_jwt_populate.Id,\n },\n },\n PasswordEncryptionConfigurations = new[]\n {\n new Fusionauth.Inputs.FusionAuthTenantPasswordEncryptionConfigurationArgs\n {\n EncryptionScheme = \"salted-pbkdf2-hmac-sha256\",\n EncryptionSchemeFactor = 24000,\n ModifyEncryptionSchemeOnLogin = false,\n },\n },\n PasswordValidationRules = new Fusionauth.Inputs.FusionAuthTenantPasswordValidationRulesArgs\n {\n MaxLength = 256,\n MinLength = 7,\n RememberPreviousPasswords = new Fusionauth.Inputs.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs\n {\n Count = 1,\n Enabled = false,\n },\n RequiredMixedCase = false,\n RequireNonAlpha = false,\n RequireNumber = false,\n ValidateOnLogin = false,\n },\n ThemeId = fusionauth_theme.Example_theme.Id,\n UserDeletePolicy = new Fusionauth.Inputs.FusionAuthTenantUserDeletePolicyArgs\n {\n UnverifiedEnabled = false,\n UnverifiedNumberOfDaysToRetain = 30,\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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthTenant(ctx, \"example\", \u0026fusionauth.FusionAuthTenantArgs{\n\t\t\tConnectorPolicies: fusionauth.FusionAuthTenantConnectorPolicyArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantConnectorPolicyArgs{\n\t\t\t\t\tConnectorId: pulumi.String(\"b57b3d0f-f7a4-4831-a838-549717362ea8\"),\n\t\t\t\t\tDomains: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tMigrate: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEmailConfiguration: \u0026fusionauth.FusionAuthTenantEmailConfigurationArgs{\n\t\t\t\tForgotPasswordEmailTemplateId: pulumi.Any(fusionauth_email.ForgotPassword_Example.Id),\n\t\t\t\tHost: pulumi.String(\"smtp.sendgrid.net\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t\tPasswordlessEmailTemplateId: pulumi.Any(fusionauth_email.PasswordlessLogin_Example.Id),\n\t\t\t\tPort: pulumi.Int(587),\n\t\t\t\tSecurity: pulumi.String(\"TLS\"),\n\t\t\t\tSetPasswordEmailTemplateId: pulumi.Any(fusionauth_email.SetupPassword_Example.Id),\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tVerifyEmail: pulumi.Bool(true),\n\t\t\t\tVerifyEmailWhenChanged: pulumi.Bool(true),\n\t\t\t},\n\t\t\tEventConfigurations: fusionauth.FusionAuthTenantEventConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.delete\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.create\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.update\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.deactivate\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.bulk.create\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.reactivate\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"jwt.refresh-token.revoke\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"jwt.refresh\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"jwt.public-key.update\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.login.success\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.login.failed\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.create\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.update\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.delete\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.registration.verified\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.email.verified\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.identity-provider.link\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.identity-provider.unlink\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransactionType: pulumi.String(\"Any\"),\n\t\t\t\t},\n\t\t\t\t\u0026fusionauth.FusionAuthTenantEventConfigurationArgs{\n\t\t\t\t\tEvent: pulumi.String(\"user.password.breach\"),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tTransactionType: pulumi.String(\"None\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tExternalIdentifierConfiguration: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationArgs{\n\t\t\t\tAuthorizationGrantIdTimeToLiveInSeconds: pulumi.Int(30),\n\t\t\t\tChangePasswordIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tChangePasswordIdTimeToLiveInSeconds: pulumi.Int(600),\n\t\t\t\tDeviceCodeTimeToLiveInSeconds: pulumi.Int(1800),\n\t\t\t\tDeviceUserCodeIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomAlphaNumeric\"),\n\t\t\t\t},\n\t\t\t\tEmailVerificationIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tEmailVerificationIdTimeToLiveInSeconds: pulumi.Int(86400),\n\t\t\t\tEmailVerificationOneTimeCodeGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomAlphaNumeric\"),\n\t\t\t\t},\n\t\t\t\tExternalAuthenticationIdTimeToLiveInSeconds: pulumi.Int(300),\n\t\t\t\tOneTimePasswordTimeToLiveInSeconds: pulumi.Int(60),\n\t\t\t\tPasswordlessLoginGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tPasswordlessLoginTimeToLiveInSeconds: pulumi.Int(600),\n\t\t\t\tRegistrationVerificationIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tRegistrationVerificationIdTimeToLiveInSeconds: pulumi.Int(86400),\n\t\t\t\tRegistrationVerificationOneTimeCodeGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomAlphaNumeric\"),\n\t\t\t\t},\n\t\t\t\tSamlV2AuthnRequestIdTtlSeconds: pulumi.Int(300),\n\t\t\t\tSetupPasswordIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(32),\n\t\t\t\t\tType: pulumi.String(\"randomBytes\"),\n\t\t\t\t},\n\t\t\t\tSetupPasswordIdTimeToLiveInSeconds: pulumi.Int(86400),\n\t\t\t\tTwoFactorIdTimeToLiveInSeconds: pulumi.Int(300),\n\t\t\t\tTwoFactorOneTimeCodeIdGenerator: \u0026fusionauth.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs{\n\t\t\t\t\tLength: pulumi.Int(6),\n\t\t\t\t\tType: pulumi.String(\"randomDigits\"),\n\t\t\t\t},\n\t\t\t\tTwoFactorTrustIdTimeToLiveInSeconds: pulumi.Int(2592000),\n\t\t\t},\n\t\t\tFailedAuthenticationConfiguration: \u0026fusionauth.FusionAuthTenantFailedAuthenticationConfigurationArgs{\n\t\t\t\tActionDuration: pulumi.Int(3),\n\t\t\t\tActionDurationUnit: pulumi.String(\"MINUTES\"),\n\t\t\t\tResetCountInSeconds: pulumi.Int(60),\n\t\t\t\tTooManyAttempts: pulumi.Int(5),\n\t\t\t},\n\t\t\tFamilyConfiguration: \u0026fusionauth.FusionAuthTenantFamilyConfigurationArgs{\n\t\t\t\tAllowChildRegistrations: pulumi.Bool(true),\n\t\t\t\tDeleteOrphanedAccounts: pulumi.Bool(false),\n\t\t\t\tDeleteOrphanedAccountsDays: pulumi.Int(30),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tMaximumChildAge: pulumi.Int(12),\n\t\t\t\tMinimumOwnerAge: pulumi.Int(21),\n\t\t\t\tParentEmailRequired: pulumi.Bool(false),\n\t\t\t},\n\t\t\tFormConfiguration: \u0026fusionauth.FusionAuthTenantFormConfigurationArgs{\n\t\t\t\tAdminUserFormId: pulumi.String(\"e92751a5-25f4-4bca-ad91-66cdf67725d2\"),\n\t\t\t},\n\t\t\tHttpSessionMaxInactiveInterval: pulumi.Int(3600),\n\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\tJwtConfigurations: fusionauth.FusionAuthTenantJwtConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantJwtConfigurationArgs{\n\t\t\t\t\tAccessTokenKeyId: pulumi.Any(fusionauth_key.Accesstoken.Id),\n\t\t\t\t\tIdTokenKeyId: pulumi.Any(fusionauth_key.Idtoken.Id),\n\t\t\t\t\tRefreshTokenTimeToLiveInMinutes: pulumi.Int(43200),\n\t\t\t\t\tTimeToLiveInSeconds: pulumi.Int(3600),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoginConfiguration: \u0026fusionauth.FusionAuthTenantLoginConfigurationArgs{\n\t\t\t\tRequireAuthentication: pulumi.Bool(true),\n\t\t\t},\n\t\t\tMaximumPasswordAge: \u0026fusionauth.FusionAuthTenantMaximumPasswordAgeArgs{\n\t\t\t\tDays: pulumi.Int(180),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tMinimumPasswordAge: \u0026fusionauth.FusionAuthTenantMinimumPasswordAgeArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\tSeconds: pulumi.Int(30),\n\t\t\t},\n\t\t\tOauthConfigurations: fusionauth.FusionAuthTenantOauthConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantOauthConfigurationArgs{\n\t\t\t\t\tClientCredentialsAccessTokenPopulateLambdaId: pulumi.Any(fusionauth_lambda.Client_jwt_populate.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPasswordEncryptionConfigurations: fusionauth.FusionAuthTenantPasswordEncryptionConfigurationArray{\n\t\t\t\t\u0026fusionauth.FusionAuthTenantPasswordEncryptionConfigurationArgs{\n\t\t\t\t\tEncryptionScheme: pulumi.String(\"salted-pbkdf2-hmac-sha256\"),\n\t\t\t\t\tEncryptionSchemeFactor: pulumi.Int(24000),\n\t\t\t\t\tModifyEncryptionSchemeOnLogin: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPasswordValidationRules: \u0026fusionauth.FusionAuthTenantPasswordValidationRulesArgs{\n\t\t\t\tMaxLength: pulumi.Int(256),\n\t\t\t\tMinLength: pulumi.Int(7),\n\t\t\t\tRememberPreviousPasswords: \u0026fusionauth.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs{\n\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tRequiredMixedCase: pulumi.Bool(false),\n\t\t\t\tRequireNonAlpha: pulumi.Bool(false),\n\t\t\t\tRequireNumber: pulumi.Bool(false),\n\t\t\t\tValidateOnLogin: pulumi.Bool(false),\n\t\t\t},\n\t\t\tThemeId: pulumi.Any(fusionauth_theme.Example_theme.Id),\n\t\t\tUserDeletePolicy: \u0026fusionauth.FusionAuthTenantUserDeletePolicyArgs{\n\t\t\t\tUnverifiedEnabled: pulumi.Bool(false),\n\t\t\t\tUnverifiedNumberOfDaysToRetain: pulumi.Int(30),\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.fusionauth.FusionAuthTenant;\nimport com.pulumi.fusionauth.FusionAuthTenantArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantConnectorPolicyArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantEmailConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantEventConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantFailedAuthenticationConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantFamilyConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantFormConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantJwtConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantLoginConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantMaximumPasswordAgeArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantMinimumPasswordAgeArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantOauthConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantPasswordEncryptionConfigurationArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantPasswordValidationRulesArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthTenantUserDeletePolicyArgs;\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 example = new FusionAuthTenant(\"example\", FusionAuthTenantArgs.builder() \n .connectorPolicies(FusionAuthTenantConnectorPolicyArgs.builder()\n .connectorId(\"b57b3d0f-f7a4-4831-a838-549717362ea8\")\n .domains(\"*\")\n .migrate(false)\n .build())\n .emailConfiguration(FusionAuthTenantEmailConfigurationArgs.builder()\n .forgotPasswordEmailTemplateId(fusionauth_email.ForgotPassword_Example().id())\n .host(\"smtp.sendgrid.net\")\n .password(\"password\")\n .passwordlessEmailTemplateId(fusionauth_email.PasswordlessLogin_Example().id())\n .port(587)\n .security(\"TLS\")\n .setPasswordEmailTemplateId(fusionauth_email.SetupPassword_Example().id())\n .username(\"username\")\n .verifyEmail(true)\n .verifyEmailWhenChanged(true)\n .build())\n .eventConfigurations( \n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.delete\")\n .enabled(true)\n .transactionType(\"None\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.create\")\n .enabled(true)\n .transactionType(\"None\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.update\")\n .enabled(true)\n .transactionType(\"None\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.deactivate\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.bulk.create\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.reactivate\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"jwt.refresh-token.revoke\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"jwt.refresh\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"jwt.public-key.update\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.login.success\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.login.failed\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.create\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.update\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.delete\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.registration.verified\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.email.verified\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.identity-provider.link\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.identity-provider.unlink\")\n .enabled(true)\n .transactionType(\"Any\")\n .build(),\n FusionAuthTenantEventConfigurationArgs.builder()\n .event(\"user.password.breach\")\n .enabled(false)\n .transactionType(\"None\")\n .build())\n .externalIdentifierConfiguration(FusionAuthTenantExternalIdentifierConfigurationArgs.builder()\n .authorizationGrantIdTimeToLiveInSeconds(30)\n .changePasswordIdGenerator(FusionAuthTenantExternalIdentifierConfigurationChangePasswordIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .changePasswordIdTimeToLiveInSeconds(600)\n .deviceCodeTimeToLiveInSeconds(1800)\n .deviceUserCodeIdGenerator(FusionAuthTenantExternalIdentifierConfigurationDeviceUserCodeIdGeneratorArgs.builder()\n .length(6)\n .type(\"randomAlphaNumeric\")\n .build())\n .emailVerificationIdGenerator(FusionAuthTenantExternalIdentifierConfigurationEmailVerificationIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .emailVerificationIdTimeToLiveInSeconds(86400)\n .emailVerificationOneTimeCodeGenerator(FusionAuthTenantExternalIdentifierConfigurationEmailVerificationOneTimeCodeGeneratorArgs.builder()\n .length(6)\n .type(\"randomAlphaNumeric\")\n .build())\n .externalAuthenticationIdTimeToLiveInSeconds(300)\n .oneTimePasswordTimeToLiveInSeconds(60)\n .passwordlessLoginGenerator(FusionAuthTenantExternalIdentifierConfigurationPasswordlessLoginGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .passwordlessLoginTimeToLiveInSeconds(600)\n .registrationVerificationIdGenerator(FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .registrationVerificationIdTimeToLiveInSeconds(86400)\n .registrationVerificationOneTimeCodeGenerator(FusionAuthTenantExternalIdentifierConfigurationRegistrationVerificationOneTimeCodeGeneratorArgs.builder()\n .length(6)\n .type(\"randomAlphaNumeric\")\n .build())\n .samlV2AuthnRequestIdTtlSeconds(300)\n .setupPasswordIdGenerator(FusionAuthTenantExternalIdentifierConfigurationSetupPasswordIdGeneratorArgs.builder()\n .length(32)\n .type(\"randomBytes\")\n .build())\n .setupPasswordIdTimeToLiveInSeconds(86400)\n .twoFactorIdTimeToLiveInSeconds(300)\n .twoFactorOneTimeCodeIdGenerator(FusionAuthTenantExternalIdentifierConfigurationTwoFactorOneTimeCodeIdGeneratorArgs.builder()\n .length(6)\n .type(\"randomDigits\")\n .build())\n .twoFactorTrustIdTimeToLiveInSeconds(2592000)\n .build())\n .failedAuthenticationConfiguration(FusionAuthTenantFailedAuthenticationConfigurationArgs.builder()\n .actionDuration(3)\n .actionDurationUnit(\"MINUTES\")\n .resetCountInSeconds(60)\n .tooManyAttempts(5)\n .build())\n .familyConfiguration(FusionAuthTenantFamilyConfigurationArgs.builder()\n .allowChildRegistrations(true)\n .deleteOrphanedAccounts(false)\n .deleteOrphanedAccountsDays(30)\n .enabled(true)\n .maximumChildAge(12)\n .minimumOwnerAge(21)\n .parentEmailRequired(false)\n .build())\n .formConfiguration(FusionAuthTenantFormConfigurationArgs.builder()\n .adminUserFormId(\"e92751a5-25f4-4bca-ad91-66cdf67725d2\")\n .build())\n .httpSessionMaxInactiveInterval(3600)\n .issuer(\"https://example.com\")\n .jwtConfigurations(FusionAuthTenantJwtConfigurationArgs.builder()\n .accessTokenKeyId(fusionauth_key.accesstoken().id())\n .idTokenKeyId(fusionauth_key.idtoken().id())\n .refreshTokenTimeToLiveInMinutes(43200)\n .timeToLiveInSeconds(3600)\n .build())\n .loginConfiguration(FusionAuthTenantLoginConfigurationArgs.builder()\n .requireAuthentication(true)\n .build())\n .maximumPasswordAge(FusionAuthTenantMaximumPasswordAgeArgs.builder()\n .days(180)\n .enabled(false)\n .build())\n .minimumPasswordAge(FusionAuthTenantMinimumPasswordAgeArgs.builder()\n .enabled(false)\n .seconds(30)\n .build())\n .oauthConfigurations(FusionAuthTenantOauthConfigurationArgs.builder()\n .clientCredentialsAccessTokenPopulateLambdaId(fusionauth_lambda.client_jwt_populate().id())\n .build())\n .passwordEncryptionConfigurations(FusionAuthTenantPasswordEncryptionConfigurationArgs.builder()\n .encryptionScheme(\"salted-pbkdf2-hmac-sha256\")\n .encryptionSchemeFactor(24000)\n .modifyEncryptionSchemeOnLogin(false)\n .build())\n .passwordValidationRules(FusionAuthTenantPasswordValidationRulesArgs.builder()\n .maxLength(256)\n .minLength(7)\n .rememberPreviousPasswords(FusionAuthTenantPasswordValidationRulesRememberPreviousPasswordsArgs.builder()\n .count(1)\n .enabled(false)\n .build())\n .requiredMixedCase(false)\n .requireNonAlpha(false)\n .requireNumber(false)\n .validateOnLogin(false)\n .build())\n .themeId(fusionauth_theme.example_theme().id())\n .userDeletePolicy(FusionAuthTenantUserDeletePolicyArgs.builder()\n .unverifiedEnabled(false)\n .unverifiedNumberOfDaysToRetain(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthTenant\n properties:\n connectorPolicies:\n - connectorId: b57b3d0f-f7a4-4831-a838-549717362ea8\n domains:\n - '*'\n migrate: false\n emailConfiguration:\n forgotPasswordEmailTemplateId: ${fusionauth_email.ForgotPassword_Example.id}\n host: smtp.sendgrid.net\n password: password\n passwordlessEmailTemplateId: ${fusionauth_email.PasswordlessLogin_Example.id}\n port: 587\n security: TLS\n setPasswordEmailTemplateId: ${fusionauth_email.SetupPassword_Example.id}\n username: username\n verifyEmail: true\n verifyEmailWhenChanged: true\n eventConfigurations:\n - event: user.delete\n enabled: true\n transactionType: None\n - event: user.create\n enabled: true\n transactionType: None\n - event: user.update\n enabled: true\n transactionType: None\n - event: user.deactivate\n enabled: true\n transactionType: Any\n - event: user.bulk.create\n enabled: true\n transactionType: Any\n - event: user.reactivate\n enabled: true\n transactionType: Any\n - event: jwt.refresh-token.revoke\n enabled: true\n transactionType: Any\n - event: jwt.refresh\n enabled: true\n transactionType: Any\n - event: jwt.public-key.update\n enabled: true\n transactionType: Any\n - event: user.login.success\n enabled: true\n transactionType: Any\n - event: user.login.failed\n enabled: true\n transactionType: Any\n - event: user.registration.create\n enabled: true\n transactionType: Any\n - event: user.registration.update\n enabled: true\n transactionType: Any\n - event: user.registration.delete\n enabled: true\n transactionType: Any\n - event: user.registration.verified\n enabled: true\n transactionType: Any\n - event: user.email.verified\n enabled: true\n transactionType: Any\n - event: user.identity-provider.link\n enabled: true\n transactionType: Any\n - event: user.identity-provider.unlink\n enabled: true\n transactionType: Any\n - event: user.password.breach\n enabled: false\n transactionType: None\n externalIdentifierConfiguration:\n authorizationGrantIdTimeToLiveInSeconds: 30\n changePasswordIdGenerator:\n length: 32\n type: randomBytes\n changePasswordIdTimeToLiveInSeconds: 600\n deviceCodeTimeToLiveInSeconds: 1800\n deviceUserCodeIdGenerator:\n length: 6\n type: randomAlphaNumeric\n emailVerificationIdGenerator:\n length: 32\n type: randomBytes\n emailVerificationIdTimeToLiveInSeconds: 86400\n emailVerificationOneTimeCodeGenerator:\n length: 6\n type: randomAlphaNumeric\n externalAuthenticationIdTimeToLiveInSeconds: 300\n oneTimePasswordTimeToLiveInSeconds: 60\n passwordlessLoginGenerator:\n length: 32\n type: randomBytes\n passwordlessLoginTimeToLiveInSeconds: 600\n registrationVerificationIdGenerator:\n length: 32\n type: randomBytes\n registrationVerificationIdTimeToLiveInSeconds: 86400\n registrationVerificationOneTimeCodeGenerator:\n length: 6\n type: randomAlphaNumeric\n samlV2AuthnRequestIdTtlSeconds: 300\n setupPasswordIdGenerator:\n length: 32\n type: randomBytes\n setupPasswordIdTimeToLiveInSeconds: 86400\n twoFactorIdTimeToLiveInSeconds: 300\n twoFactorOneTimeCodeIdGenerator:\n length: 6\n type: randomDigits\n twoFactorTrustIdTimeToLiveInSeconds: 2.592e+06\n failedAuthenticationConfiguration:\n actionDuration: 3\n actionDurationUnit: MINUTES\n resetCountInSeconds: 60\n tooManyAttempts: 5\n familyConfiguration:\n allowChildRegistrations: true\n deleteOrphanedAccounts: false\n deleteOrphanedAccountsDays: 30\n enabled: true\n maximumChildAge: 12\n minimumOwnerAge: 21\n parentEmailRequired: false\n formConfiguration:\n adminUserFormId: e92751a5-25f4-4bca-ad91-66cdf67725d2\n httpSessionMaxInactiveInterval: 3600\n issuer: https://example.com\n jwtConfigurations:\n - accessTokenKeyId: ${fusionauth_key.accesstoken.id}\n idTokenKeyId: ${fusionauth_key.idtoken.id}\n refreshTokenTimeToLiveInMinutes: 43200\n timeToLiveInSeconds: 3600\n loginConfiguration:\n requireAuthentication: true\n maximumPasswordAge:\n days: 180\n enabled: false\n minimumPasswordAge:\n enabled: false\n seconds: 30\n oauthConfigurations:\n - clientCredentialsAccessTokenPopulateLambdaId: ${fusionauth_lambda.client_jwt_populate.id}\n passwordEncryptionConfigurations:\n - encryptionScheme: salted-pbkdf2-hmac-sha256\n encryptionSchemeFactor: 24000\n modifyEncryptionSchemeOnLogin: false\n passwordValidationRules:\n maxLength: 256\n minLength: 7\n rememberPreviousPasswords:\n count: 1\n enabled: false\n requiredMixedCase: false\n requireNonAlpha: false\n requireNumber: false\n validateOnLogin: false\n themeId: ${fusionauth_theme.example_theme.id}\n userDeletePolicy:\n unverifiedEnabled: false\n unverifiedNumberOfDaysToRetain: 30\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "accessControlConfiguration": { "$ref": "#/types/fusionauth:index/FusionAuthTenantAccessControlConfiguration:FusionAuthTenantAccessControlConfiguration" @@ -9737,7 +7547,7 @@ } }, "fusionauth:index/fusionAuthTheme:FusionAuthTheme": { - "description": "## # Theme Resource\n\nThis Resource is used to create a role for an Application.\n\n[Themes API]https://fusionauth.io/docs/v1/tech/apis/themes)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst mytheme = new fusionauth.FusionAuthTheme(\"mytheme\", {\n accountEdit: \"[#ftl/]\",\n accountIndex: \"[#ftl/]\",\n accountTwoFactorDisable: \"[#ftl/]\",\n accountTwoFactorEnable: \"[#ftl/]\",\n accountTwoFactorIndex: \"[#ftl/]\",\n accountWebauthnAdd: \"[#ftl/]\",\n accountWebauthnDelete: \"[#ftl/]\",\n accountWebauthnIndex: \"[#ftl/]\",\n defaultMessages: \"[#ftl/]\",\n emailComplete: \"[#ftl/]\",\n emailSend: \"[#ftl/]\",\n emailSent: \"[#ftl/]\",\n emailVerificationRequired: \"[#ftl/]\",\n emailVerify: \"[#ftl/]\",\n helpers: \"[#ftl/]\",\n index: \"[#ftl/]\",\n oauth2Authorize: \"[#ftl/]\",\n oauth2AuthorizedNotRegistered: \"[#ftl/]\",\n oauth2ChildRegistrationNotAllowed: \"[#ftl/]\",\n oauth2ChildRegistrationNotAllowedComplete: \"[#ftl/]\",\n oauth2CompleteRegistration: \"[#ftl/]\",\n oauth2Device: \"[#ftl/]\",\n oauth2DeviceComplete: \"[#ftl/]\",\n oauth2Error: \"[#ftl/]\",\n oauth2Logout: \"[#ftl/]\",\n oauth2Passwordless: \"[#ftl/]\",\n oauth2Register: \"[#ftl/]\",\n oauth2StartIdpLink: \"[#ftl/]\",\n oauth2TwoFactor: \"[#ftl/]\",\n oauth2TwoFactorEnable: \"[#ftl/]\",\n oauth2TwoFactorEnableComplete: \"[#ftl/]\",\n oauth2TwoFactorMethods: \"[#ftl/]\",\n oauth2Wait: \"[#ftl/]\",\n oauth2Webauthn: \"[#ftl/]\",\n oauth2WebauthnReauth: \"[#ftl/]\",\n oauth2WebauthnReauthEnable: \"[#ftl/]\",\n passwordChange: \"[#ftl/]\",\n passwordComplete: \"[#ftl/]\",\n passwordForgot: \"[#ftl/]\",\n passwordSent: \"[#ftl/]\",\n registrationComplete: \"[#ftl/]\",\n registrationSend: \"[#ftl/]\",\n registrationSent: \"[#ftl/]\",\n registrationVerificationRequired: \"[#ftl/]\",\n registrationVerify: \"[#ftl/]\",\n samlv2Logout: \"[#ftl/]\",\n stylesheet: \"/* stylish */\",\n unauthorized: \"[#ftl/]\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nmytheme = fusionauth.FusionAuthTheme(\"mytheme\",\n account_edit=\"[#ftl/]\",\n account_index=\"[#ftl/]\",\n account_two_factor_disable=\"[#ftl/]\",\n account_two_factor_enable=\"[#ftl/]\",\n account_two_factor_index=\"[#ftl/]\",\n account_webauthn_add=\"[#ftl/]\",\n account_webauthn_delete=\"[#ftl/]\",\n account_webauthn_index=\"[#ftl/]\",\n default_messages=\"[#ftl/]\",\n email_complete=\"[#ftl/]\",\n email_send=\"[#ftl/]\",\n email_sent=\"[#ftl/]\",\n email_verification_required=\"[#ftl/]\",\n email_verify=\"[#ftl/]\",\n helpers=\"[#ftl/]\",\n index=\"[#ftl/]\",\n oauth2_authorize=\"[#ftl/]\",\n oauth2_authorized_not_registered=\"[#ftl/]\",\n oauth2_child_registration_not_allowed=\"[#ftl/]\",\n oauth2_child_registration_not_allowed_complete=\"[#ftl/]\",\n oauth2_complete_registration=\"[#ftl/]\",\n oauth2_device=\"[#ftl/]\",\n oauth2_device_complete=\"[#ftl/]\",\n oauth2_error=\"[#ftl/]\",\n oauth2_logout=\"[#ftl/]\",\n oauth2_passwordless=\"[#ftl/]\",\n oauth2_register=\"[#ftl/]\",\n oauth2_start_idp_link=\"[#ftl/]\",\n oauth2_two_factor=\"[#ftl/]\",\n oauth2_two_factor_enable=\"[#ftl/]\",\n oauth2_two_factor_enable_complete=\"[#ftl/]\",\n oauth2_two_factor_methods=\"[#ftl/]\",\n oauth2_wait=\"[#ftl/]\",\n oauth2_webauthn=\"[#ftl/]\",\n oauth2_webauthn_reauth=\"[#ftl/]\",\n oauth2_webauthn_reauth_enable=\"[#ftl/]\",\n password_change=\"[#ftl/]\",\n password_complete=\"[#ftl/]\",\n password_forgot=\"[#ftl/]\",\n password_sent=\"[#ftl/]\",\n registration_complete=\"[#ftl/]\",\n registration_send=\"[#ftl/]\",\n registration_sent=\"[#ftl/]\",\n registration_verification_required=\"[#ftl/]\",\n registration_verify=\"[#ftl/]\",\n samlv2_logout=\"[#ftl/]\",\n stylesheet=\"/* stylish */\",\n unauthorized=\"[#ftl/]\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytheme = new Fusionauth.FusionAuthTheme(\"mytheme\", new()\n {\n AccountEdit = \"[#ftl/]\",\n AccountIndex = \"[#ftl/]\",\n AccountTwoFactorDisable = \"[#ftl/]\",\n AccountTwoFactorEnable = \"[#ftl/]\",\n AccountTwoFactorIndex = \"[#ftl/]\",\n AccountWebauthnAdd = \"[#ftl/]\",\n AccountWebauthnDelete = \"[#ftl/]\",\n AccountWebauthnIndex = \"[#ftl/]\",\n DefaultMessages = \"[#ftl/]\",\n EmailComplete = \"[#ftl/]\",\n EmailSend = \"[#ftl/]\",\n EmailSent = \"[#ftl/]\",\n EmailVerificationRequired = \"[#ftl/]\",\n EmailVerify = \"[#ftl/]\",\n Helpers = \"[#ftl/]\",\n Index = \"[#ftl/]\",\n Oauth2Authorize = \"[#ftl/]\",\n Oauth2AuthorizedNotRegistered = \"[#ftl/]\",\n Oauth2ChildRegistrationNotAllowed = \"[#ftl/]\",\n Oauth2ChildRegistrationNotAllowedComplete = \"[#ftl/]\",\n Oauth2CompleteRegistration = \"[#ftl/]\",\n Oauth2Device = \"[#ftl/]\",\n Oauth2DeviceComplete = \"[#ftl/]\",\n Oauth2Error = \"[#ftl/]\",\n Oauth2Logout = \"[#ftl/]\",\n Oauth2Passwordless = \"[#ftl/]\",\n Oauth2Register = \"[#ftl/]\",\n Oauth2StartIdpLink = \"[#ftl/]\",\n Oauth2TwoFactor = \"[#ftl/]\",\n Oauth2TwoFactorEnable = \"[#ftl/]\",\n Oauth2TwoFactorEnableComplete = \"[#ftl/]\",\n Oauth2TwoFactorMethods = \"[#ftl/]\",\n Oauth2Wait = \"[#ftl/]\",\n Oauth2Webauthn = \"[#ftl/]\",\n Oauth2WebauthnReauth = \"[#ftl/]\",\n Oauth2WebauthnReauthEnable = \"[#ftl/]\",\n PasswordChange = \"[#ftl/]\",\n PasswordComplete = \"[#ftl/]\",\n PasswordForgot = \"[#ftl/]\",\n PasswordSent = \"[#ftl/]\",\n RegistrationComplete = \"[#ftl/]\",\n RegistrationSend = \"[#ftl/]\",\n RegistrationSent = \"[#ftl/]\",\n RegistrationVerificationRequired = \"[#ftl/]\",\n RegistrationVerify = \"[#ftl/]\",\n Samlv2Logout = \"[#ftl/]\",\n Stylesheet = \"/* stylish */\",\n Unauthorized = \"[#ftl/]\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthTheme(ctx, \"mytheme\", \u0026fusionauth.FusionAuthThemeArgs{\n\t\t\tAccountEdit: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountTwoFactorDisable: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountTwoFactorEnable: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountTwoFactorIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountWebauthnAdd: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountWebauthnDelete: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountWebauthnIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tDefaultMessages: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailSend: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailSent: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailVerificationRequired: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailVerify: pulumi.String(\"[#ftl/]\"),\n\t\t\tHelpers: pulumi.String(\"[#ftl/]\"),\n\t\t\tIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Authorize: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2AuthorizedNotRegistered: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2ChildRegistrationNotAllowed: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2ChildRegistrationNotAllowedComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2CompleteRegistration: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Device: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2DeviceComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Error: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Logout: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Passwordless: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Register: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2StartIdpLink: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactor: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactorEnable: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactorEnableComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactorMethods: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Wait: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Webauthn: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2WebauthnReauth: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2WebauthnReauthEnable: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordChange: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordForgot: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordSent: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationSend: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationSent: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationVerificationRequired: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationVerify: pulumi.String(\"[#ftl/]\"),\n\t\t\tSamlv2Logout: pulumi.String(\"[#ftl/]\"),\n\t\t\tStylesheet: pulumi.String(\"/* stylish */\"),\n\t\t\tUnauthorized: pulumi.String(\"[#ftl/]\"),\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.fusionauth.FusionAuthTheme;\nimport com.pulumi.fusionauth.FusionAuthThemeArgs;\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 mytheme = new FusionAuthTheme(\"mytheme\", FusionAuthThemeArgs.builder() \n .accountEdit(\"[#ftl/]\")\n .accountIndex(\"[#ftl/]\")\n .accountTwoFactorDisable(\"[#ftl/]\")\n .accountTwoFactorEnable(\"[#ftl/]\")\n .accountTwoFactorIndex(\"[#ftl/]\")\n .accountWebauthnAdd(\"[#ftl/]\")\n .accountWebauthnDelete(\"[#ftl/]\")\n .accountWebauthnIndex(\"[#ftl/]\")\n .defaultMessages(\"[#ftl/]\")\n .emailComplete(\"[#ftl/]\")\n .emailSend(\"[#ftl/]\")\n .emailSent(\"[#ftl/]\")\n .emailVerificationRequired(\"[#ftl/]\")\n .emailVerify(\"[#ftl/]\")\n .helpers(\"[#ftl/]\")\n .index(\"[#ftl/]\")\n .oauth2Authorize(\"[#ftl/]\")\n .oauth2AuthorizedNotRegistered(\"[#ftl/]\")\n .oauth2ChildRegistrationNotAllowed(\"[#ftl/]\")\n .oauth2ChildRegistrationNotAllowedComplete(\"[#ftl/]\")\n .oauth2CompleteRegistration(\"[#ftl/]\")\n .oauth2Device(\"[#ftl/]\")\n .oauth2DeviceComplete(\"[#ftl/]\")\n .oauth2Error(\"[#ftl/]\")\n .oauth2Logout(\"[#ftl/]\")\n .oauth2Passwordless(\"[#ftl/]\")\n .oauth2Register(\"[#ftl/]\")\n .oauth2StartIdpLink(\"[#ftl/]\")\n .oauth2TwoFactor(\"[#ftl/]\")\n .oauth2TwoFactorEnable(\"[#ftl/]\")\n .oauth2TwoFactorEnableComplete(\"[#ftl/]\")\n .oauth2TwoFactorMethods(\"[#ftl/]\")\n .oauth2Wait(\"[#ftl/]\")\n .oauth2Webauthn(\"[#ftl/]\")\n .oauth2WebauthnReauth(\"[#ftl/]\")\n .oauth2WebauthnReauthEnable(\"[#ftl/]\")\n .passwordChange(\"[#ftl/]\")\n .passwordComplete(\"[#ftl/]\")\n .passwordForgot(\"[#ftl/]\")\n .passwordSent(\"[#ftl/]\")\n .registrationComplete(\"[#ftl/]\")\n .registrationSend(\"[#ftl/]\")\n .registrationSent(\"[#ftl/]\")\n .registrationVerificationRequired(\"[#ftl/]\")\n .registrationVerify(\"[#ftl/]\")\n .samlv2Logout(\"[#ftl/]\")\n .stylesheet(\"/* stylish */\")\n .unauthorized(\"[#ftl/]\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytheme:\n type: fusionauth:FusionAuthTheme\n properties:\n accountEdit: '[#ftl/]'\n accountIndex: '[#ftl/]'\n accountTwoFactorDisable: '[#ftl/]'\n accountTwoFactorEnable: '[#ftl/]'\n accountTwoFactorIndex: '[#ftl/]'\n accountWebauthnAdd: '[#ftl/]'\n accountWebauthnDelete: '[#ftl/]'\n accountWebauthnIndex: '[#ftl/]'\n defaultMessages: '[#ftl/]'\n emailComplete: '[#ftl/]'\n # Deprecated Properties\n emailSend: '[#ftl/]'\n emailSent: '[#ftl/]'\n emailVerificationRequired: '[#ftl/]'\n emailVerify: '[#ftl/]'\n helpers: '[#ftl/]'\n index: '[#ftl/]'\n oauth2Authorize: '[#ftl/]'\n oauth2AuthorizedNotRegistered: '[#ftl/]'\n oauth2ChildRegistrationNotAllowed: '[#ftl/]'\n oauth2ChildRegistrationNotAllowedComplete: '[#ftl/]'\n oauth2CompleteRegistration: '[#ftl/]'\n oauth2Device: '[#ftl/]'\n oauth2DeviceComplete: '[#ftl/]'\n oauth2Error: '[#ftl/]'\n oauth2Logout: '[#ftl/]'\n oauth2Passwordless: '[#ftl/]'\n oauth2Register: '[#ftl/]'\n oauth2StartIdpLink: '[#ftl/]'\n oauth2TwoFactor: '[#ftl/]'\n oauth2TwoFactorEnable: '[#ftl/]'\n oauth2TwoFactorEnableComplete: '[#ftl/]'\n oauth2TwoFactorMethods: '[#ftl/]'\n oauth2Wait: '[#ftl/]'\n oauth2Webauthn: '[#ftl/]'\n oauth2WebauthnReauth: '[#ftl/]'\n oauth2WebauthnReauthEnable: '[#ftl/]'\n passwordChange: '[#ftl/]'\n passwordComplete: '[#ftl/]'\n passwordForgot: '[#ftl/]'\n passwordSent: '[#ftl/]'\n registrationComplete: '[#ftl/]'\n registrationSend: '[#ftl/]'\n registrationSent: '[#ftl/]'\n registrationVerificationRequired: '[#ftl/]'\n registrationVerify: '[#ftl/]'\n samlv2Logout: '[#ftl/]'\n stylesheet: /* stylish */\n unauthorized: '[#ftl/]'\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Theme Resource\n\nThis Resource is used to create a role for an Application.\n\n[Themes API]https://fusionauth.io/docs/v1/tech/apis/themes)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst mytheme = new fusionauth.FusionAuthTheme(\"mytheme\", {\n accountEdit: \"[#ftl/]\",\n accountIndex: \"[#ftl/]\",\n accountTwoFactorDisable: \"[#ftl/]\",\n accountTwoFactorEnable: \"[#ftl/]\",\n accountTwoFactorIndex: \"[#ftl/]\",\n accountWebauthnAdd: \"[#ftl/]\",\n accountWebauthnDelete: \"[#ftl/]\",\n accountWebauthnIndex: \"[#ftl/]\",\n defaultMessages: \"[#ftl/]\",\n emailComplete: \"[#ftl/]\",\n emailSend: \"[#ftl/]\",\n emailSent: \"[#ftl/]\",\n emailVerificationRequired: \"[#ftl/]\",\n emailVerify: \"[#ftl/]\",\n helpers: \"[#ftl/]\",\n index: \"[#ftl/]\",\n oauth2Authorize: \"[#ftl/]\",\n oauth2AuthorizedNotRegistered: \"[#ftl/]\",\n oauth2ChildRegistrationNotAllowed: \"[#ftl/]\",\n oauth2ChildRegistrationNotAllowedComplete: \"[#ftl/]\",\n oauth2CompleteRegistration: \"[#ftl/]\",\n oauth2Device: \"[#ftl/]\",\n oauth2DeviceComplete: \"[#ftl/]\",\n oauth2Error: \"[#ftl/]\",\n oauth2Logout: \"[#ftl/]\",\n oauth2Passwordless: \"[#ftl/]\",\n oauth2Register: \"[#ftl/]\",\n oauth2StartIdpLink: \"[#ftl/]\",\n oauth2TwoFactor: \"[#ftl/]\",\n oauth2TwoFactorEnable: \"[#ftl/]\",\n oauth2TwoFactorEnableComplete: \"[#ftl/]\",\n oauth2TwoFactorMethods: \"[#ftl/]\",\n oauth2Wait: \"[#ftl/]\",\n oauth2Webauthn: \"[#ftl/]\",\n oauth2WebauthnReauth: \"[#ftl/]\",\n oauth2WebauthnReauthEnable: \"[#ftl/]\",\n passwordChange: \"[#ftl/]\",\n passwordComplete: \"[#ftl/]\",\n passwordForgot: \"[#ftl/]\",\n passwordSent: \"[#ftl/]\",\n registrationComplete: \"[#ftl/]\",\n registrationSend: \"[#ftl/]\",\n registrationSent: \"[#ftl/]\",\n registrationVerificationRequired: \"[#ftl/]\",\n registrationVerify: \"[#ftl/]\",\n samlv2Logout: \"[#ftl/]\",\n stylesheet: \"/* stylish */\",\n unauthorized: \"[#ftl/]\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nmytheme = fusionauth.FusionAuthTheme(\"mytheme\",\n account_edit=\"[#ftl/]\",\n account_index=\"[#ftl/]\",\n account_two_factor_disable=\"[#ftl/]\",\n account_two_factor_enable=\"[#ftl/]\",\n account_two_factor_index=\"[#ftl/]\",\n account_webauthn_add=\"[#ftl/]\",\n account_webauthn_delete=\"[#ftl/]\",\n account_webauthn_index=\"[#ftl/]\",\n default_messages=\"[#ftl/]\",\n email_complete=\"[#ftl/]\",\n email_send=\"[#ftl/]\",\n email_sent=\"[#ftl/]\",\n email_verification_required=\"[#ftl/]\",\n email_verify=\"[#ftl/]\",\n helpers=\"[#ftl/]\",\n index=\"[#ftl/]\",\n oauth2_authorize=\"[#ftl/]\",\n oauth2_authorized_not_registered=\"[#ftl/]\",\n oauth2_child_registration_not_allowed=\"[#ftl/]\",\n oauth2_child_registration_not_allowed_complete=\"[#ftl/]\",\n oauth2_complete_registration=\"[#ftl/]\",\n oauth2_device=\"[#ftl/]\",\n oauth2_device_complete=\"[#ftl/]\",\n oauth2_error=\"[#ftl/]\",\n oauth2_logout=\"[#ftl/]\",\n oauth2_passwordless=\"[#ftl/]\",\n oauth2_register=\"[#ftl/]\",\n oauth2_start_idp_link=\"[#ftl/]\",\n oauth2_two_factor=\"[#ftl/]\",\n oauth2_two_factor_enable=\"[#ftl/]\",\n oauth2_two_factor_enable_complete=\"[#ftl/]\",\n oauth2_two_factor_methods=\"[#ftl/]\",\n oauth2_wait=\"[#ftl/]\",\n oauth2_webauthn=\"[#ftl/]\",\n oauth2_webauthn_reauth=\"[#ftl/]\",\n oauth2_webauthn_reauth_enable=\"[#ftl/]\",\n password_change=\"[#ftl/]\",\n password_complete=\"[#ftl/]\",\n password_forgot=\"[#ftl/]\",\n password_sent=\"[#ftl/]\",\n registration_complete=\"[#ftl/]\",\n registration_send=\"[#ftl/]\",\n registration_sent=\"[#ftl/]\",\n registration_verification_required=\"[#ftl/]\",\n registration_verify=\"[#ftl/]\",\n samlv2_logout=\"[#ftl/]\",\n stylesheet=\"/* stylish */\",\n unauthorized=\"[#ftl/]\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mytheme = new Fusionauth.FusionAuthTheme(\"mytheme\", new()\n {\n AccountEdit = \"[#ftl/]\",\n AccountIndex = \"[#ftl/]\",\n AccountTwoFactorDisable = \"[#ftl/]\",\n AccountTwoFactorEnable = \"[#ftl/]\",\n AccountTwoFactorIndex = \"[#ftl/]\",\n AccountWebauthnAdd = \"[#ftl/]\",\n AccountWebauthnDelete = \"[#ftl/]\",\n AccountWebauthnIndex = \"[#ftl/]\",\n DefaultMessages = \"[#ftl/]\",\n EmailComplete = \"[#ftl/]\",\n EmailSend = \"[#ftl/]\",\n EmailSent = \"[#ftl/]\",\n EmailVerificationRequired = \"[#ftl/]\",\n EmailVerify = \"[#ftl/]\",\n Helpers = \"[#ftl/]\",\n Index = \"[#ftl/]\",\n Oauth2Authorize = \"[#ftl/]\",\n Oauth2AuthorizedNotRegistered = \"[#ftl/]\",\n Oauth2ChildRegistrationNotAllowed = \"[#ftl/]\",\n Oauth2ChildRegistrationNotAllowedComplete = \"[#ftl/]\",\n Oauth2CompleteRegistration = \"[#ftl/]\",\n Oauth2Device = \"[#ftl/]\",\n Oauth2DeviceComplete = \"[#ftl/]\",\n Oauth2Error = \"[#ftl/]\",\n Oauth2Logout = \"[#ftl/]\",\n Oauth2Passwordless = \"[#ftl/]\",\n Oauth2Register = \"[#ftl/]\",\n Oauth2StartIdpLink = \"[#ftl/]\",\n Oauth2TwoFactor = \"[#ftl/]\",\n Oauth2TwoFactorEnable = \"[#ftl/]\",\n Oauth2TwoFactorEnableComplete = \"[#ftl/]\",\n Oauth2TwoFactorMethods = \"[#ftl/]\",\n Oauth2Wait = \"[#ftl/]\",\n Oauth2Webauthn = \"[#ftl/]\",\n Oauth2WebauthnReauth = \"[#ftl/]\",\n Oauth2WebauthnReauthEnable = \"[#ftl/]\",\n PasswordChange = \"[#ftl/]\",\n PasswordComplete = \"[#ftl/]\",\n PasswordForgot = \"[#ftl/]\",\n PasswordSent = \"[#ftl/]\",\n RegistrationComplete = \"[#ftl/]\",\n RegistrationSend = \"[#ftl/]\",\n RegistrationSent = \"[#ftl/]\",\n RegistrationVerificationRequired = \"[#ftl/]\",\n RegistrationVerify = \"[#ftl/]\",\n Samlv2Logout = \"[#ftl/]\",\n Stylesheet = \"/* stylish */\",\n Unauthorized = \"[#ftl/]\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthTheme(ctx, \"mytheme\", \u0026fusionauth.FusionAuthThemeArgs{\n\t\t\tAccountEdit: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountTwoFactorDisable: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountTwoFactorEnable: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountTwoFactorIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountWebauthnAdd: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountWebauthnDelete: pulumi.String(\"[#ftl/]\"),\n\t\t\tAccountWebauthnIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tDefaultMessages: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailSend: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailSent: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailVerificationRequired: pulumi.String(\"[#ftl/]\"),\n\t\t\tEmailVerify: pulumi.String(\"[#ftl/]\"),\n\t\t\tHelpers: pulumi.String(\"[#ftl/]\"),\n\t\t\tIndex: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Authorize: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2AuthorizedNotRegistered: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2ChildRegistrationNotAllowed: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2ChildRegistrationNotAllowedComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2CompleteRegistration: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Device: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2DeviceComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Error: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Logout: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Passwordless: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Register: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2StartIdpLink: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactor: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactorEnable: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactorEnableComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2TwoFactorMethods: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Wait: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2Webauthn: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2WebauthnReauth: pulumi.String(\"[#ftl/]\"),\n\t\t\tOauth2WebauthnReauthEnable: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordChange: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordForgot: pulumi.String(\"[#ftl/]\"),\n\t\t\tPasswordSent: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationComplete: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationSend: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationSent: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationVerificationRequired: pulumi.String(\"[#ftl/]\"),\n\t\t\tRegistrationVerify: pulumi.String(\"[#ftl/]\"),\n\t\t\tSamlv2Logout: pulumi.String(\"[#ftl/]\"),\n\t\t\tStylesheet: pulumi.String(\"/* stylish */\"),\n\t\t\tUnauthorized: pulumi.String(\"[#ftl/]\"),\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.fusionauth.FusionAuthTheme;\nimport com.pulumi.fusionauth.FusionAuthThemeArgs;\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 mytheme = new FusionAuthTheme(\"mytheme\", FusionAuthThemeArgs.builder() \n .accountEdit(\"[#ftl/]\")\n .accountIndex(\"[#ftl/]\")\n .accountTwoFactorDisable(\"[#ftl/]\")\n .accountTwoFactorEnable(\"[#ftl/]\")\n .accountTwoFactorIndex(\"[#ftl/]\")\n .accountWebauthnAdd(\"[#ftl/]\")\n .accountWebauthnDelete(\"[#ftl/]\")\n .accountWebauthnIndex(\"[#ftl/]\")\n .defaultMessages(\"[#ftl/]\")\n .emailComplete(\"[#ftl/]\")\n .emailSend(\"[#ftl/]\")\n .emailSent(\"[#ftl/]\")\n .emailVerificationRequired(\"[#ftl/]\")\n .emailVerify(\"[#ftl/]\")\n .helpers(\"[#ftl/]\")\n .index(\"[#ftl/]\")\n .oauth2Authorize(\"[#ftl/]\")\n .oauth2AuthorizedNotRegistered(\"[#ftl/]\")\n .oauth2ChildRegistrationNotAllowed(\"[#ftl/]\")\n .oauth2ChildRegistrationNotAllowedComplete(\"[#ftl/]\")\n .oauth2CompleteRegistration(\"[#ftl/]\")\n .oauth2Device(\"[#ftl/]\")\n .oauth2DeviceComplete(\"[#ftl/]\")\n .oauth2Error(\"[#ftl/]\")\n .oauth2Logout(\"[#ftl/]\")\n .oauth2Passwordless(\"[#ftl/]\")\n .oauth2Register(\"[#ftl/]\")\n .oauth2StartIdpLink(\"[#ftl/]\")\n .oauth2TwoFactor(\"[#ftl/]\")\n .oauth2TwoFactorEnable(\"[#ftl/]\")\n .oauth2TwoFactorEnableComplete(\"[#ftl/]\")\n .oauth2TwoFactorMethods(\"[#ftl/]\")\n .oauth2Wait(\"[#ftl/]\")\n .oauth2Webauthn(\"[#ftl/]\")\n .oauth2WebauthnReauth(\"[#ftl/]\")\n .oauth2WebauthnReauthEnable(\"[#ftl/]\")\n .passwordChange(\"[#ftl/]\")\n .passwordComplete(\"[#ftl/]\")\n .passwordForgot(\"[#ftl/]\")\n .passwordSent(\"[#ftl/]\")\n .registrationComplete(\"[#ftl/]\")\n .registrationSend(\"[#ftl/]\")\n .registrationSent(\"[#ftl/]\")\n .registrationVerificationRequired(\"[#ftl/]\")\n .registrationVerify(\"[#ftl/]\")\n .samlv2Logout(\"[#ftl/]\")\n .stylesheet(\"/* stylish */\")\n .unauthorized(\"[#ftl/]\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mytheme:\n type: fusionauth:FusionAuthTheme\n properties:\n accountEdit: '[#ftl/]'\n accountIndex: '[#ftl/]'\n accountTwoFactorDisable: '[#ftl/]'\n accountTwoFactorEnable: '[#ftl/]'\n accountTwoFactorIndex: '[#ftl/]'\n accountWebauthnAdd: '[#ftl/]'\n accountWebauthnDelete: '[#ftl/]'\n accountWebauthnIndex: '[#ftl/]'\n defaultMessages: '[#ftl/]'\n emailComplete: '[#ftl/]'\n # Deprecated Properties\n emailSend: '[#ftl/]'\n emailSent: '[#ftl/]'\n emailVerificationRequired: '[#ftl/]'\n emailVerify: '[#ftl/]'\n helpers: '[#ftl/]'\n index: '[#ftl/]'\n oauth2Authorize: '[#ftl/]'\n oauth2AuthorizedNotRegistered: '[#ftl/]'\n oauth2ChildRegistrationNotAllowed: '[#ftl/]'\n oauth2ChildRegistrationNotAllowedComplete: '[#ftl/]'\n oauth2CompleteRegistration: '[#ftl/]'\n oauth2Device: '[#ftl/]'\n oauth2DeviceComplete: '[#ftl/]'\n oauth2Error: '[#ftl/]'\n oauth2Logout: '[#ftl/]'\n oauth2Passwordless: '[#ftl/]'\n oauth2Register: '[#ftl/]'\n oauth2StartIdpLink: '[#ftl/]'\n oauth2TwoFactor: '[#ftl/]'\n oauth2TwoFactorEnable: '[#ftl/]'\n oauth2TwoFactorEnableComplete: '[#ftl/]'\n oauth2TwoFactorMethods: '[#ftl/]'\n oauth2Wait: '[#ftl/]'\n oauth2Webauthn: '[#ftl/]'\n oauth2WebauthnReauth: '[#ftl/]'\n oauth2WebauthnReauthEnable: '[#ftl/]'\n passwordChange: '[#ftl/]'\n passwordComplete: '[#ftl/]'\n passwordForgot: '[#ftl/]'\n passwordSent: '[#ftl/]'\n registrationComplete: '[#ftl/]'\n registrationSend: '[#ftl/]'\n registrationSent: '[#ftl/]'\n registrationVerificationRequired: '[#ftl/]'\n registrationVerify: '[#ftl/]'\n samlv2Logout: '[#ftl/]'\n stylesheet: /* stylish */\n unauthorized: '[#ftl/]'\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "accountEdit": { "type": "string", @@ -10428,7 +8238,7 @@ } }, "fusionauth:index/fusionAuthUser:FusionAuthUser": { - "description": "## # User Resource\n\n\n[Users API](https://fusionauth.io/docs/v1/tech/apis/users)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthUser(\"example\", {\n userId: \"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\",\n birthDate: \"1976-05-30\",\n data: JSON.stringify({\n displayName: \"Johnny Boy\",\n favoriteColors: [\n \"Red\",\n \"Blue\",\n ],\n }),\n email: \"example@fusionauth.io\",\n encryptionScheme: \"salted-sha256\",\n expiry: 1571786483322,\n firstName: \"John\",\n fullName: \"John Doe\",\n imageUrl: \"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\",\n lastName: \"Doe\",\n middleName: \"William\",\n mobilePhone: \"303-555-1234\",\n passwordChangeRequired: false,\n preferredLanguages: [\n \"en\",\n \"fr\",\n ],\n timezone: \"America/Denver\",\n usernameStatus: \"ACTIVE\",\n username: \"johnny123\",\n});\n```\n```python\nimport pulumi\nimport json\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthUser(\"example\",\n user_id=\"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\",\n birth_date=\"1976-05-30\",\n data=json.dumps({\n \"displayName\": \"Johnny Boy\",\n \"favoriteColors\": [\n \"Red\",\n \"Blue\",\n ],\n }),\n email=\"example@fusionauth.io\",\n encryption_scheme=\"salted-sha256\",\n expiry=1571786483322,\n first_name=\"John\",\n full_name=\"John Doe\",\n image_url=\"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\",\n last_name=\"Doe\",\n middle_name=\"William\",\n mobile_phone=\"303-555-1234\",\n password_change_required=False,\n preferred_languages=[\n \"en\",\n \"fr\",\n ],\n timezone=\"America/Denver\",\n username_status=\"ACTIVE\",\n username=\"johnny123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthUser(\"example\", new()\n {\n UserId = \"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\",\n BirthDate = \"1976-05-30\",\n Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"displayName\"] = \"Johnny Boy\",\n [\"favoriteColors\"] = new[]\n {\n \"Red\",\n \"Blue\",\n },\n }),\n Email = \"example@fusionauth.io\",\n EncryptionScheme = \"salted-sha256\",\n Expiry = 1571786483322,\n FirstName = \"John\",\n FullName = \"John Doe\",\n ImageUrl = \"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\",\n LastName = \"Doe\",\n MiddleName = \"William\",\n MobilePhone = \"303-555-1234\",\n PasswordChangeRequired = false,\n PreferredLanguages = new[]\n {\n \"en\",\n \"fr\",\n },\n Timezone = \"America/Denver\",\n UsernameStatus = \"ACTIVE\",\n Username = \"johnny123\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"displayName\": \"Johnny Boy\",\n\t\t\t\"favoriteColors\": []string{\n\t\t\t\t\"Red\",\n\t\t\t\t\"Blue\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fusionauth.NewFusionAuthUser(ctx, \"example\", \u0026fusionauth.FusionAuthUserArgs{\n\t\t\tUserId: pulumi.String(\"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\"),\n\t\t\tBirthDate: pulumi.String(\"1976-05-30\"),\n\t\t\tData: pulumi.String(json0),\n\t\t\tEmail: pulumi.String(\"example@fusionauth.io\"),\n\t\t\tEncryptionScheme: pulumi.String(\"salted-sha256\"),\n\t\t\tExpiry: pulumi.Int(1571786483322),\n\t\t\tFirstName: pulumi.String(\"John\"),\n\t\t\tFullName: pulumi.String(\"John Doe\"),\n\t\t\tImageUrl: pulumi.String(\"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\"),\n\t\t\tLastName: pulumi.String(\"Doe\"),\n\t\t\tMiddleName: pulumi.String(\"William\"),\n\t\t\tMobilePhone: pulumi.String(\"303-555-1234\"),\n\t\t\tPasswordChangeRequired: pulumi.Bool(false),\n\t\t\tPreferredLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en\"),\n\t\t\t\tpulumi.String(\"fr\"),\n\t\t\t},\n\t\t\tTimezone: pulumi.String(\"America/Denver\"),\n\t\t\tUsernameStatus: pulumi.String(\"ACTIVE\"),\n\t\t\tUsername: pulumi.String(\"johnny123\"),\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.fusionauth.FusionAuthUser;\nimport com.pulumi.fusionauth.FusionAuthUserArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 example = new FusionAuthUser(\"example\", FusionAuthUserArgs.builder() \n .userId(\"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\")\n .birthDate(\"1976-05-30\")\n .data(serializeJson(\n jsonObject(\n jsonProperty(\"displayName\", \"Johnny Boy\"),\n jsonProperty(\"favoriteColors\", jsonArray(\n \"Red\", \n \"Blue\"\n ))\n )))\n .email(\"example@fusionauth.io\")\n .encryptionScheme(\"salted-sha256\")\n .expiry(1571786483322)\n .firstName(\"John\")\n .fullName(\"John Doe\")\n .imageUrl(\"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\")\n .lastName(\"Doe\")\n .middleName(\"William\")\n .mobilePhone(\"303-555-1234\")\n .passwordChangeRequired(false)\n .preferredLanguages( \n \"en\",\n \"fr\")\n .timezone(\"America/Denver\")\n .usernameStatus(\"ACTIVE\")\n .username(\"johnny123\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthUser\n properties:\n userId: 4c4511df-0d0d-4029-8c2b-f6c01b9e138d\n birthDate: 1976-05-30\n data:\n fn::toJSON:\n displayName: Johnny Boy\n favoriteColors:\n - Red\n - Blue\n email: example@fusionauth.io\n encryptionScheme: salted-sha256\n expiry: 1.571786483322e+12\n firstName: John\n fullName: John Doe\n imageUrl: http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\n lastName: Doe\n middleName: William\n mobilePhone: 303-555-1234\n passwordChangeRequired: false\n preferredLanguages:\n - en\n - fr\n timezone: America/Denver\n usernameStatus: ACTIVE\n username: johnny123\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # User Resource\n\n\n[Users API](https://fusionauth.io/docs/v1/tech/apis/users)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthUser(\"example\", {\n userId: \"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\",\n birthDate: \"1976-05-30\",\n data: JSON.stringify({\n displayName: \"Johnny Boy\",\n favoriteColors: [\n \"Red\",\n \"Blue\",\n ],\n }),\n email: \"example@fusionauth.io\",\n encryptionScheme: \"salted-sha256\",\n expiry: 1571786483322,\n firstName: \"John\",\n fullName: \"John Doe\",\n imageUrl: \"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\",\n lastName: \"Doe\",\n middleName: \"William\",\n mobilePhone: \"303-555-1234\",\n passwordChangeRequired: false,\n preferredLanguages: [\n \"en\",\n \"fr\",\n ],\n timezone: \"America/Denver\",\n usernameStatus: \"ACTIVE\",\n username: \"johnny123\",\n});\n```\n```python\nimport pulumi\nimport json\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthUser(\"example\",\n user_id=\"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\",\n birth_date=\"1976-05-30\",\n data=json.dumps({\n \"displayName\": \"Johnny Boy\",\n \"favoriteColors\": [\n \"Red\",\n \"Blue\",\n ],\n }),\n email=\"example@fusionauth.io\",\n encryption_scheme=\"salted-sha256\",\n expiry=1571786483322,\n first_name=\"John\",\n full_name=\"John Doe\",\n image_url=\"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\",\n last_name=\"Doe\",\n middle_name=\"William\",\n mobile_phone=\"303-555-1234\",\n password_change_required=False,\n preferred_languages=[\n \"en\",\n \"fr\",\n ],\n timezone=\"America/Denver\",\n username_status=\"ACTIVE\",\n username=\"johnny123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthUser(\"example\", new()\n {\n UserId = \"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\",\n BirthDate = \"1976-05-30\",\n Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"displayName\"] = \"Johnny Boy\",\n [\"favoriteColors\"] = new[]\n {\n \"Red\",\n \"Blue\",\n },\n }),\n Email = \"example@fusionauth.io\",\n EncryptionScheme = \"salted-sha256\",\n Expiry = 1571786483322,\n FirstName = \"John\",\n FullName = \"John Doe\",\n ImageUrl = \"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\",\n LastName = \"Doe\",\n MiddleName = \"William\",\n MobilePhone = \"303-555-1234\",\n PasswordChangeRequired = false,\n PreferredLanguages = new[]\n {\n \"en\",\n \"fr\",\n },\n Timezone = \"America/Denver\",\n UsernameStatus = \"ACTIVE\",\n Username = \"johnny123\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"displayName\": \"Johnny Boy\",\n\t\t\t\"favoriteColors\": []string{\n\t\t\t\t\"Red\",\n\t\t\t\t\"Blue\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fusionauth.NewFusionAuthUser(ctx, \"example\", \u0026fusionauth.FusionAuthUserArgs{\n\t\t\tUserId: pulumi.String(\"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\"),\n\t\t\tBirthDate: pulumi.String(\"1976-05-30\"),\n\t\t\tData: pulumi.String(json0),\n\t\t\tEmail: pulumi.String(\"example@fusionauth.io\"),\n\t\t\tEncryptionScheme: pulumi.String(\"salted-sha256\"),\n\t\t\tExpiry: pulumi.Int(1571786483322),\n\t\t\tFirstName: pulumi.String(\"John\"),\n\t\t\tFullName: pulumi.String(\"John Doe\"),\n\t\t\tImageUrl: pulumi.String(\"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\"),\n\t\t\tLastName: pulumi.String(\"Doe\"),\n\t\t\tMiddleName: pulumi.String(\"William\"),\n\t\t\tMobilePhone: pulumi.String(\"303-555-1234\"),\n\t\t\tPasswordChangeRequired: pulumi.Bool(false),\n\t\t\tPreferredLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en\"),\n\t\t\t\tpulumi.String(\"fr\"),\n\t\t\t},\n\t\t\tTimezone: pulumi.String(\"America/Denver\"),\n\t\t\tUsernameStatus: pulumi.String(\"ACTIVE\"),\n\t\t\tUsername: pulumi.String(\"johnny123\"),\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.fusionauth.FusionAuthUser;\nimport com.pulumi.fusionauth.FusionAuthUserArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 example = new FusionAuthUser(\"example\", FusionAuthUserArgs.builder() \n .userId(\"4c4511df-0d0d-4029-8c2b-f6c01b9e138d\")\n .birthDate(\"1976-05-30\")\n .data(serializeJson(\n jsonObject(\n jsonProperty(\"displayName\", \"Johnny Boy\"),\n jsonProperty(\"favoriteColors\", jsonArray(\n \"Red\", \n \"Blue\"\n ))\n )))\n .email(\"example@fusionauth.io\")\n .encryptionScheme(\"salted-sha256\")\n .expiry(1571786483322)\n .firstName(\"John\")\n .fullName(\"John Doe\")\n .imageUrl(\"http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\")\n .lastName(\"Doe\")\n .middleName(\"William\")\n .mobilePhone(\"303-555-1234\")\n .passwordChangeRequired(false)\n .preferredLanguages( \n \"en\",\n \"fr\")\n .timezone(\"America/Denver\")\n .usernameStatus(\"ACTIVE\")\n .username(\"johnny123\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthUser\n properties:\n userId: 4c4511df-0d0d-4029-8c2b-f6c01b9e138d\n birthDate: 1976-05-30\n data:\n fn::toJSON:\n displayName: Johnny Boy\n favoriteColors:\n - Red\n - Blue\n email: example@fusionauth.io\n encryptionScheme: salted-sha256\n expiry: 1.571786483322e+12\n firstName: John\n fullName: John Doe\n imageUrl: http://65.media.tumblr.com/tumblr_l7dbl0MHbU1qz50x3o1_500.png\n lastName: Doe\n middleName: William\n mobilePhone: 303-555-1234\n passwordChangeRequired: false\n preferredLanguages:\n - en\n - fr\n timezone: America/Denver\n usernameStatus: ACTIVE\n username: johnny123\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "applicationId": { "type": "string", @@ -10794,7 +8604,7 @@ } }, "fusionauth:index/fusionAuthUserAction:FusionAuthUserAction": { - "description": "## # User Action Resource\n\n\n[User Actions API](https://fusionauth.io/docs/v1/tech/apis/user-actions/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthUserAction(\"example\", {\n preventLogin: true,\n temporal: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthUserAction(\"example\",\n prevent_login=True,\n temporal=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthUserAction(\"example\", new()\n {\n PreventLogin = true,\n Temporal = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthUserAction(ctx, \"example\", \u0026fusionauth.FusionAuthUserActionArgs{\n\t\t\tPreventLogin: pulumi.Bool(true),\n\t\t\tTemporal: 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.fusionauth.FusionAuthUserAction;\nimport com.pulumi.fusionauth.FusionAuthUserActionArgs;\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 example = new FusionAuthUserAction(\"example\", FusionAuthUserActionArgs.builder() \n .preventLogin(true)\n .temporal(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthUserAction\n properties:\n preventLogin: true\n temporal: true\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # User Action Resource\n\n\n[User Actions API](https://fusionauth.io/docs/v1/tech/apis/user-actions/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthUserAction(\"example\", {\n preventLogin: true,\n temporal: true,\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthUserAction(\"example\",\n prevent_login=True,\n temporal=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthUserAction(\"example\", new()\n {\n PreventLogin = true,\n Temporal = 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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthUserAction(ctx, \"example\", \u0026fusionauth.FusionAuthUserActionArgs{\n\t\t\tPreventLogin: pulumi.Bool(true),\n\t\t\tTemporal: 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.fusionauth.FusionAuthUserAction;\nimport com.pulumi.fusionauth.FusionAuthUserActionArgs;\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 example = new FusionAuthUserAction(\"example\", FusionAuthUserActionArgs.builder() \n .preventLogin(true)\n .temporal(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthUserAction\n properties:\n preventLogin: true\n temporal: true\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "cancelEmailTemplateId": { "type": "string", @@ -10997,7 +8807,7 @@ } }, "fusionauth:index/fusionAuthWebhook:FusionAuthWebhook": { - "description": "## # Webhook Resource\n\nA FusionAuth Webhook is intended to consume JSON events emitted by FusionAuth. Creating a Webhook allows you to tell FusionAuth where you would like to receive these JSON events.\n\n[Webhooks API](https://fusionauth.io/docs/v1/tech/apis/webhooks)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthWebhook(\"example\", {\n tenantIds: [\n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant.example.id,\n ],\n connectTimeout: 1000,\n description: \"The standard game Webhook\",\n eventsEnabled: {\n userCreate: true,\n userDelete: false,\n },\n global: false,\n headers: {\n foo: \"bar\",\n bar: \"baz\",\n },\n httpAuthenticationPassword: \"password\",\n httpAuthenticationUsername: \"username\",\n readTimeout: 2000,\n sslCertificate: \" -----BEGIN CERTIFICATE-----\\\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\\\n-----END CERTIFICATE-----\\n\",\n url: \"http://mygameserver.local:7001/fusionauth-webhook\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthWebhook(\"example\",\n tenant_ids=[\n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant[\"example\"][\"id\"],\n ],\n connect_timeout=1000,\n description=\"The standard game Webhook\",\n events_enabled=fusionauth.FusionAuthWebhookEventsEnabledArgs(\n user_create=True,\n user_delete=False,\n ),\n global_=False,\n headers={\n \"foo\": \"bar\",\n \"bar\": \"baz\",\n },\n http_authentication_password=\"password\",\n http_authentication_username=\"username\",\n read_timeout=2000,\n ssl_certificate=\" -----BEGIN CERTIFICATE-----\\\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\\\n-----END CERTIFICATE-----\\n\",\n url=\"http://mygameserver.local:7001/fusionauth-webhook\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthWebhook(\"example\", new()\n {\n TenantIds = new[]\n {\n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant.Example.Id,\n },\n ConnectTimeout = 1000,\n Description = \"The standard game Webhook\",\n EventsEnabled = new Fusionauth.Inputs.FusionAuthWebhookEventsEnabledArgs\n {\n UserCreate = true,\n UserDelete = false,\n },\n Global = false,\n Headers = \n {\n { \"foo\", \"bar\" },\n { \"bar\", \"baz\" },\n },\n HttpAuthenticationPassword = \"password\",\n HttpAuthenticationUsername = \"username\",\n ReadTimeout = 2000,\n SslCertificate = @\" -----BEGIN CERTIFICATE-----\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\n-----END CERTIFICATE-----\n\",\n Url = \"http://mygameserver.local:7001/fusionauth-webhook\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthWebhook(ctx, \"example\", \u0026fusionauth.FusionAuthWebhookArgs{\n\t\t\tTenantIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000000-0000-0000-0000-000000000003\"),\n\t\t\t\tfusionauth_tenant.Example.Id,\n\t\t\t},\n\t\t\tConnectTimeout: pulumi.Int(1000),\n\t\t\tDescription: pulumi.String(\"The standard game Webhook\"),\n\t\t\tEventsEnabled: \u0026fusionauth.FusionAuthWebhookEventsEnabledArgs{\n\t\t\t\tUserCreate: pulumi.Bool(true),\n\t\t\t\tUserDelete: pulumi.Bool(false),\n\t\t\t},\n\t\t\tGlobal: pulumi.Bool(false),\n\t\t\tHeaders: pulumi.AnyMap{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t\t\"bar\": pulumi.Any(\"baz\"),\n\t\t\t},\n\t\t\tHttpAuthenticationPassword: pulumi.String(\"password\"),\n\t\t\tHttpAuthenticationUsername: pulumi.String(\"username\"),\n\t\t\tReadTimeout: pulumi.Int(2000),\n\t\t\tSslCertificate: pulumi.String(\" -----BEGIN CERTIFICATE-----\\\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\\\n-----END CERTIFICATE-----\\n\"),\n\t\t\tUrl: pulumi.String(\"http://mygameserver.local:7001/fusionauth-webhook\"),\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.fusionauth.FusionAuthWebhook;\nimport com.pulumi.fusionauth.FusionAuthWebhookArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthWebhookEventsEnabledArgs;\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 example = new FusionAuthWebhook(\"example\", FusionAuthWebhookArgs.builder() \n .tenantIds( \n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant.example().id())\n .connectTimeout(1000)\n .description(\"The standard game Webhook\")\n .eventsEnabled(FusionAuthWebhookEventsEnabledArgs.builder()\n .userCreate(true)\n .userDelete(false)\n .build())\n .global(false)\n .headers(Map.ofEntries(\n Map.entry(\"foo\", \"bar\"),\n Map.entry(\"bar\", \"baz\")\n ))\n .httpAuthenticationPassword(\"password\")\n .httpAuthenticationUsername(\"username\")\n .readTimeout(2000)\n .sslCertificate(\"\"\"\n -----BEGIN CERTIFICATE-----\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\n-----END CERTIFICATE-----\n \"\"\")\n .url(\"http://mygameserver.local:7001/fusionauth-webhook\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthWebhook\n properties:\n tenantIds:\n - 00000000-0000-0000-0000-000000000003\n - ${fusionauth_tenant.example.id}\n connectTimeout: 1000\n description: The standard game Webhook\n eventsEnabled:\n userCreate: true\n userDelete: false\n global: false\n headers:\n foo: bar\n bar: baz\n httpAuthenticationPassword: password\n httpAuthenticationUsername: username\n readTimeout: 2000\n sslCertificate: |2\n -----BEGIN CERTIFICATE-----\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\n-----END CERTIFICATE-----\n url: http://mygameserver.local:7001/fusionauth-webhook\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Webhook Resource\n\nA FusionAuth Webhook is intended to consume JSON events emitted by FusionAuth. Creating a Webhook allows you to tell FusionAuth where you would like to receive these JSON events.\n\n[Webhooks API](https://fusionauth.io/docs/v1/tech/apis/webhooks)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"pulumi-fusionauth\";\n\nconst example = new fusionauth.FusionAuthWebhook(\"example\", {\n tenantIds: [\n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant.example.id,\n ],\n connectTimeout: 1000,\n description: \"The standard game Webhook\",\n eventsEnabled: {\n userCreate: true,\n userDelete: false,\n },\n global: false,\n headers: {\n foo: \"bar\",\n bar: \"baz\",\n },\n httpAuthenticationPassword: \"password\",\n httpAuthenticationUsername: \"username\",\n readTimeout: 2000,\n sslCertificate: \" -----BEGIN CERTIFICATE-----\\\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\\\n-----END CERTIFICATE-----\\n\",\n url: \"http://mygameserver.local:7001/fusionauth-webhook\",\n});\n```\n```python\nimport pulumi\nimport theogravity_pulumi-fusionauth as fusionauth\n\nexample = fusionauth.FusionAuthWebhook(\"example\",\n tenant_ids=[\n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant[\"example\"][\"id\"],\n ],\n connect_timeout=1000,\n description=\"The standard game Webhook\",\n events_enabled=fusionauth.FusionAuthWebhookEventsEnabledArgs(\n user_create=True,\n user_delete=False,\n ),\n global_=False,\n headers={\n \"foo\": \"bar\",\n \"bar\": \"baz\",\n },\n http_authentication_password=\"password\",\n http_authentication_username=\"username\",\n read_timeout=2000,\n ssl_certificate=\" -----BEGIN CERTIFICATE-----\\\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\\\n-----END CERTIFICATE-----\\n\",\n url=\"http://mygameserver.local:7001/fusionauth-webhook\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = theogravity.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Fusionauth.FusionAuthWebhook(\"example\", new()\n {\n TenantIds = new[]\n {\n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant.Example.Id,\n },\n ConnectTimeout = 1000,\n Description = \"The standard game Webhook\",\n EventsEnabled = new Fusionauth.Inputs.FusionAuthWebhookEventsEnabledArgs\n {\n UserCreate = true,\n UserDelete = false,\n },\n Global = false,\n Headers = \n {\n { \"foo\", \"bar\" },\n { \"bar\", \"baz\" },\n },\n HttpAuthenticationPassword = \"password\",\n HttpAuthenticationUsername = \"username\",\n ReadTimeout = 2000,\n SslCertificate = @\" -----BEGIN CERTIFICATE-----\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\n-----END CERTIFICATE-----\n\",\n Url = \"http://mygameserver.local:7001/fusionauth-webhook\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.NewFusionAuthWebhook(ctx, \"example\", \u0026fusionauth.FusionAuthWebhookArgs{\n\t\t\tTenantIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000000-0000-0000-0000-000000000003\"),\n\t\t\t\tfusionauth_tenant.Example.Id,\n\t\t\t},\n\t\t\tConnectTimeout: pulumi.Int(1000),\n\t\t\tDescription: pulumi.String(\"The standard game Webhook\"),\n\t\t\tEventsEnabled: \u0026fusionauth.FusionAuthWebhookEventsEnabledArgs{\n\t\t\t\tUserCreate: pulumi.Bool(true),\n\t\t\t\tUserDelete: pulumi.Bool(false),\n\t\t\t},\n\t\t\tGlobal: pulumi.Bool(false),\n\t\t\tHeaders: pulumi.AnyMap{\n\t\t\t\t\"foo\": pulumi.Any(\"bar\"),\n\t\t\t\t\"bar\": pulumi.Any(\"baz\"),\n\t\t\t},\n\t\t\tHttpAuthenticationPassword: pulumi.String(\"password\"),\n\t\t\tHttpAuthenticationUsername: pulumi.String(\"username\"),\n\t\t\tReadTimeout: pulumi.Int(2000),\n\t\t\tSslCertificate: pulumi.String(\" -----BEGIN CERTIFICATE-----\\\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\\\n-----END CERTIFICATE-----\\n\"),\n\t\t\tUrl: pulumi.String(\"http://mygameserver.local:7001/fusionauth-webhook\"),\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.fusionauth.FusionAuthWebhook;\nimport com.pulumi.fusionauth.FusionAuthWebhookArgs;\nimport com.pulumi.fusionauth.inputs.FusionAuthWebhookEventsEnabledArgs;\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 example = new FusionAuthWebhook(\"example\", FusionAuthWebhookArgs.builder() \n .tenantIds( \n \"00000000-0000-0000-0000-000000000003\",\n fusionauth_tenant.example().id())\n .connectTimeout(1000)\n .description(\"The standard game Webhook\")\n .eventsEnabled(FusionAuthWebhookEventsEnabledArgs.builder()\n .userCreate(true)\n .userDelete(false)\n .build())\n .global(false)\n .headers(Map.ofEntries(\n Map.entry(\"foo\", \"bar\"),\n Map.entry(\"bar\", \"baz\")\n ))\n .httpAuthenticationPassword(\"password\")\n .httpAuthenticationUsername(\"username\")\n .readTimeout(2000)\n .sslCertificate(\"\"\"\n -----BEGIN CERTIFICATE-----\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\n-----END CERTIFICATE-----\n \"\"\")\n .url(\"http://mygameserver.local:7001/fusionauth-webhook\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: fusionauth:FusionAuthWebhook\n properties:\n tenantIds:\n - 00000000-0000-0000-0000-000000000003\n - ${fusionauth_tenant.example.id}\n connectTimeout: 1000\n description: The standard game Webhook\n eventsEnabled:\n userCreate: true\n userDelete: false\n global: false\n headers:\n foo: bar\n bar: baz\n httpAuthenticationPassword: password\n httpAuthenticationUsername: username\n readTimeout: 2000\n sslCertificate: |2\n -----BEGIN CERTIFICATE-----\\nMIIDUjCCArugAwIBAgIJANZCTNN98L9ZMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV\\nBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZz\\nZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkB\\nFhFzamZkZkBsc2tkamZjLmNvbTAeFw0xNDA0MDkyMTA2MDdaFw0xNDA1MDkyMTA2\\nMDdaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVy\\nMQ8wDQYDVQQKEwZzZXRoLXMxCjAIBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAw\\nHgYJKoZIhvcNAQkBFhFzamZkZkBsc2tkamZjLmNvbTCBnzANBgkqhkiG9w0BAQEF\\nAAOBjQAwgYkCgYEAxnQBqyuYvjUE4aFQ6vVZU5RqHmy3KiTg2NcxELIlZztUTK3a\\nVFbJoBB4ixHXCCYslujthILyBjgT3F+IhSpPAcrlu8O5LVPaPCysh/SNrGNwH4lq\\neiW9Z5WAhRO/nG7NZNa0USPHAei6b9Sv9PxuKCY+GJfAIwlO4/bltIH06/kCAwEA\\nAaOB3zCB3DAdBgNVHQ4EFgQUU4SqJEFm1zW+CcLxmLlARrqtMN0wgawGA1UdIwSB\\npDCBoYAUU4SqJEFm1zW+CcLxmLlARrqtMN2hfqR8MHoxCzAJBgNVBAYTAlVTMQsw\\nCQYDVQQIEwJDTzEPMA0GA1UEBxMGZGVudmVyMQ8wDQYDVQQKEwZzZXRoLXMxCjAI\\nBgNVBAsTAXMxDjAMBgNVBAMTBWludmVyMSAwHgYJKoZIhvcNAQkBFhFzamZkZkBs\\nc2tkamZjLmNvbYIJANZCTNN98L9ZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\\nBQADgYEAY/cJsi3w6R4hF4PzAXLhGOg1tzTDYvol3w024WoehJur+qM0AY6UqtoJ\\nneCq9af32IKbbOKkoaok+t1+/tylQVF/0FXMTKepxaMbG22vr4TmN3idPUYYbPfW\\n5GkF7Hh96BjerrtiUPGuBZL50HoLZ5aR5oZUMAu7TXhOFp+vZp8=\\n-----END CERTIFICATE-----\n url: http://mygameserver.local:7001/fusionauth-webhook\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "connectTimeout": { "type": "integer", @@ -11178,7 +8988,7 @@ }, "functions": { "fusionauth:index/getApplication:getApplication": { - "description": "## # Application Resource\n\n[Applications API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst fusionAuth = fusionauth.getApplication({\n name: \"FusionAuth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nfusion_auth = fusionauth.get_application(name=\"FusionAuth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fusionAuth = Fusionauth.GetApplication.Invoke(new()\n {\n Name = \"FusionAuth\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetApplication(ctx, \u0026fusionauth.GetApplicationArgs{\n\t\t\tName: \"FusionAuth\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetApplicationArgs;\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 fusionAuth = FusionauthFunctions.getApplication(GetApplicationArgs.builder()\n .name(\"FusionAuth\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n fusionAuth:\n fn::invoke:\n Function: fusionauth:getApplication\n Arguments:\n name: FusionAuth\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Application Resource\n\n[Applications API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst fusionAuth = fusionauth.getApplication({\n name: \"FusionAuth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nfusion_auth = fusionauth.get_application(name=\"FusionAuth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fusionAuth = Fusionauth.GetApplication.Invoke(new()\n {\n Name = \"FusionAuth\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetApplication(ctx, \u0026fusionauth.GetApplicationArgs{\n\t\t\tName: \"FusionAuth\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetApplicationArgs;\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 fusionAuth = FusionauthFunctions.getApplication(GetApplicationArgs.builder()\n .name(\"FusionAuth\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n fusionAuth:\n fn::invoke:\n Function: fusionauth:getApplication\n Arguments:\n name: FusionAuth\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getApplication.\n", "properties": { @@ -11212,7 +9022,7 @@ } }, "fusionauth:index/getApplicationRole:getApplicationRole": { - "description": "## # Application Role Resource\n\nThis Resource is used to create a role for an Application.\n\n[Application Roles API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst admin = fusionauth.getApplicationRole({\n applicationId: data.fusionauth_application.FusionAuth.id,\n name: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nadmin = fusionauth.get_application_role(application_id=data[\"fusionauth_application\"][\"FusionAuth\"][\"id\"],\n name=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var admin = Fusionauth.GetApplicationRole.Invoke(new()\n {\n ApplicationId = data.Fusionauth_application.FusionAuth.Id,\n Name = \"admin\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetApplicationRole(ctx, \u0026fusionauth.GetApplicationRoleArgs{\n\t\t\tApplicationId: data.Fusionauth_application.FusionAuth.Id,\n\t\t\tName: \"admin\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetApplicationRoleArgs;\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 admin = FusionauthFunctions.getApplicationRole(GetApplicationRoleArgs.builder()\n .applicationId(data.fusionauth_application().FusionAuth().id())\n .name(\"admin\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n admin:\n fn::invoke:\n Function: fusionauth:getApplicationRole\n Arguments:\n applicationId: ${data.fusionauth_application.FusionAuth.id}\n name: admin\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Application Role Resource\n\nThis Resource is used to create a role for an Application.\n\n[Application Roles API](https://fusionauth.io/docs/v1/tech/apis/applications)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst admin = fusionauth.getApplicationRole({\n applicationId: data.fusionauth_application.FusionAuth.id,\n name: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nadmin = fusionauth.get_application_role(application_id=data[\"fusionauth_application\"][\"FusionAuth\"][\"id\"],\n name=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var admin = Fusionauth.GetApplicationRole.Invoke(new()\n {\n ApplicationId = data.Fusionauth_application.FusionAuth.Id,\n Name = \"admin\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetApplicationRole(ctx, \u0026fusionauth.GetApplicationRoleArgs{\n\t\t\tApplicationId: data.Fusionauth_application.FusionAuth.Id,\n\t\t\tName: \"admin\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetApplicationRoleArgs;\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 admin = FusionauthFunctions.getApplicationRole(GetApplicationRoleArgs.builder()\n .applicationId(data.fusionauth_application().FusionAuth().id())\n .name(\"admin\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n admin:\n fn::invoke:\n Function: fusionauth:getApplicationRole\n Arguments:\n applicationId: ${data.fusionauth_application.FusionAuth.id}\n name: admin\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getApplicationRole.\n", "properties": { @@ -11256,7 +9066,7 @@ } }, "fusionauth:index/getEMail:getEMail": { - "description": "## # Email Resource\n\nThis data source is used to fetch information about a specific Email Template.\n\n[Emails API](https://fusionauth.io/docs/v1/tech/apis/emails)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst defaultBreachedPassword = fusionauth.getEMail({\n name: \"[FusionAuth Default] Breached Password Notification\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault_breached_password = fusionauth.get_e_mail(name=\"[FusionAuth Default] Breached Password Notification\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultBreachedPassword = Fusionauth.GetEMail.Invoke(new()\n {\n Name = \"[FusionAuth Default] Breached Password Notification\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetEMail(ctx, \u0026fusionauth.GetEMailArgs{\n\t\t\tName: \"[FusionAuth Default] Breached Password Notification\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetEMailArgs;\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 defaultBreachedPassword = FusionauthFunctions.getEMail(GetEMailArgs.builder()\n .name(\"[FusionAuth Default] Breached Password Notification\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n defaultBreachedPassword:\n fn::invoke:\n Function: fusionauth:getEMail\n Arguments:\n name: '[FusionAuth Default] Breached Password Notification'\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Email Resource\n\nThis data source is used to fetch information about a specific Email Template.\n\n[Emails API](https://fusionauth.io/docs/v1/tech/apis/emails)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst defaultBreachedPassword = fusionauth.getEMail({\n name: \"[FusionAuth Default] Breached Password Notification\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault_breached_password = fusionauth.get_e_mail(name=\"[FusionAuth Default] Breached Password Notification\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultBreachedPassword = Fusionauth.GetEMail.Invoke(new()\n {\n Name = \"[FusionAuth Default] Breached Password Notification\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetEMail(ctx, \u0026fusionauth.GetEMailArgs{\n\t\t\tName: \"[FusionAuth Default] Breached Password Notification\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetEMailArgs;\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 defaultBreachedPassword = FusionauthFunctions.getEMail(GetEMailArgs.builder()\n .name(\"[FusionAuth Default] Breached Password Notification\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n defaultBreachedPassword:\n fn::invoke:\n Function: fusionauth:getEMail\n Arguments:\n name: '[FusionAuth Default] Breached Password Notification'\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getEMail.\n", "properties": { @@ -11349,7 +9159,7 @@ } }, "fusionauth:index/getForm:getForm": { - "description": "## # Form Resource\n\nA FusionAuth Form is a customizable object that contains one-to-many ordered steps. Each step is comprised of one or more Form Fields.\n\n[Forms API](https://fusionauth.io/docs/v1/tech/apis/forms)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getForm({\n name: \"Default User Self Service provided by FusionAuth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_form(name=\"Default User Self Service provided by FusionAuth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetForm.Invoke(new()\n {\n Name = \"Default User Self Service provided by FusionAuth\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetForm(ctx, \u0026fusionauth.GetFormArgs{\n\t\t\tName: pulumi.StringRef(\"Default User Self Service provided by FusionAuth\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetFormArgs;\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 = FusionauthFunctions.getForm(GetFormArgs.builder()\n .name(\"Default User Self Service provided by FusionAuth\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getForm\n Arguments:\n name: Default User Self Service provided by FusionAuth\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Form Resource\n\nA FusionAuth Form is a customizable object that contains one-to-many ordered steps. Each step is comprised of one or more Form Fields.\n\n[Forms API](https://fusionauth.io/docs/v1/tech/apis/forms)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getForm({\n name: \"Default User Self Service provided by FusionAuth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_form(name=\"Default User Self Service provided by FusionAuth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetForm.Invoke(new()\n {\n Name = \"Default User Self Service provided by FusionAuth\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetForm(ctx, \u0026fusionauth.GetFormArgs{\n\t\t\tName: pulumi.StringRef(\"Default User Self Service provided by FusionAuth\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetFormArgs;\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 = FusionauthFunctions.getForm(GetFormArgs.builder()\n .name(\"Default User Self Service provided by FusionAuth\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getForm\n Arguments:\n name: Default User Self Service provided by FusionAuth\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getForm.\n", "properties": { @@ -11424,7 +9234,7 @@ } }, "fusionauth:index/getFormField:getFormField": { - "description": "## # Form Field Resource\n\nA FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms).\n\n[Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getFormField({\n name: \"Email\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_form_field(name=\"Email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetFormField.Invoke(new()\n {\n Name = \"Email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetFormField(ctx, \u0026fusionauth.GetFormFieldArgs{\n\t\t\tName: pulumi.StringRef(\"Email\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetFormFieldArgs;\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 = FusionauthFunctions.getFormField(GetFormFieldArgs.builder()\n .name(\"Email\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getFormField\n Arguments:\n name: Email\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Form Field Resource\n\nA FusionAuth Form Field is an object that can be customized to receive input within a FusionAuth [Form](https://fusionauth.io/docs/v1/tech/apis/forms).\n\n[Form Field API](https://fusionauth.io/docs/v1/tech/apis/form-fields)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getFormField({\n name: \"Email\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_form_field(name=\"Email\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetFormField.Invoke(new()\n {\n Name = \"Email\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetFormField(ctx, \u0026fusionauth.GetFormFieldArgs{\n\t\t\tName: pulumi.StringRef(\"Email\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetFormFieldArgs;\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 = FusionauthFunctions.getFormField(GetFormFieldArgs.builder()\n .name(\"Email\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getFormField\n Arguments:\n name: Email\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getFormField.\n", "properties": { @@ -11547,7 +9357,7 @@ } }, "fusionauth:index/getIdp:getIdp": { - "description": "## # Application Resource\n\n[Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst fusionAuth = fusionauth.getIdp({\n name: \"Apple\",\n type: \"Apple\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nfusion_auth = fusionauth.get_idp(name=\"Apple\",\n type=\"Apple\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fusionAuth = Fusionauth.GetIdp.Invoke(new()\n {\n Name = \"Apple\",\n Type = \"Apple\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetIdp(ctx, \u0026fusionauth.GetIdpArgs{\n\t\t\tName: \"Apple\",\n\t\t\tType: \"Apple\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetIdpArgs;\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 fusionAuth = FusionauthFunctions.getIdp(GetIdpArgs.builder()\n .name(\"Apple\")\n .type(\"Apple\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n fusionAuth:\n fn::invoke:\n Function: fusionauth:getIdp\n Arguments:\n name: Apple\n type: Apple\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Application Resource\n\n[Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst fusionAuth = fusionauth.getIdp({\n name: \"Apple\",\n type: \"Apple\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nfusion_auth = fusionauth.get_idp(name=\"Apple\",\n type=\"Apple\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fusionAuth = Fusionauth.GetIdp.Invoke(new()\n {\n Name = \"Apple\",\n Type = \"Apple\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetIdp(ctx, \u0026fusionauth.GetIdpArgs{\n\t\t\tName: \"Apple\",\n\t\t\tType: \"Apple\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetIdpArgs;\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 fusionAuth = FusionauthFunctions.getIdp(GetIdpArgs.builder()\n .name(\"Apple\")\n .type(\"Apple\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n fusionAuth:\n fn::invoke:\n Function: fusionauth:getIdp\n Arguments:\n name: Apple\n type: Apple\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getIdp.\n", "properties": { @@ -11591,7 +9401,7 @@ } }, "fusionauth:index/getLambda:getLambda": { - "description": "## # Lambda Resource\n\nLambdas are user defined JavaScript functions that may be executed at runtime to perform various functions. Lambdas may be used to customize the claims returned in a JWT, reconcile a SAML v2 response or an OpenID Connect response when using these external identity providers.\n\n[Lambdas API](https://fusionauth.io/docs/v1/tech/apis/lambdas)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst defaultGoogleReconcile = fusionauth.getLambda({\n name: \"Default Google Reconcile provided by FusionAuth\",\n type: \"GoogleReconcile\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault_google_reconcile = fusionauth.get_lambda(name=\"Default Google Reconcile provided by FusionAuth\",\n type=\"GoogleReconcile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultGoogleReconcile = Fusionauth.GetLambda.Invoke(new()\n {\n Name = \"Default Google Reconcile provided by FusionAuth\",\n Type = \"GoogleReconcile\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetLambda(ctx, \u0026fusionauth.GetLambdaArgs{\n\t\t\tName: pulumi.StringRef(\"Default Google Reconcile provided by FusionAuth\"),\n\t\t\tType: \"GoogleReconcile\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetLambdaArgs;\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 defaultGoogleReconcile = FusionauthFunctions.getLambda(GetLambdaArgs.builder()\n .name(\"Default Google Reconcile provided by FusionAuth\")\n .type(\"GoogleReconcile\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n defaultGoogleReconcile:\n fn::invoke:\n Function: fusionauth:getLambda\n Arguments:\n name: Default Google Reconcile provided by FusionAuth\n type: GoogleReconcile\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Lambda Resource\n\nLambdas are user defined JavaScript functions that may be executed at runtime to perform various functions. Lambdas may be used to customize the claims returned in a JWT, reconcile a SAML v2 response or an OpenID Connect response when using these external identity providers.\n\n[Lambdas API](https://fusionauth.io/docs/v1/tech/apis/lambdas)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst defaultGoogleReconcile = fusionauth.getLambda({\n name: \"Default Google Reconcile provided by FusionAuth\",\n type: \"GoogleReconcile\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault_google_reconcile = fusionauth.get_lambda(name=\"Default Google Reconcile provided by FusionAuth\",\n type=\"GoogleReconcile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultGoogleReconcile = Fusionauth.GetLambda.Invoke(new()\n {\n Name = \"Default Google Reconcile provided by FusionAuth\",\n Type = \"GoogleReconcile\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetLambda(ctx, \u0026fusionauth.GetLambdaArgs{\n\t\t\tName: pulumi.StringRef(\"Default Google Reconcile provided by FusionAuth\"),\n\t\t\tType: \"GoogleReconcile\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetLambdaArgs;\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 defaultGoogleReconcile = FusionauthFunctions.getLambda(GetLambdaArgs.builder()\n .name(\"Default Google Reconcile provided by FusionAuth\")\n .type(\"GoogleReconcile\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n defaultGoogleReconcile:\n fn::invoke:\n Function: fusionauth:getLambda\n Arguments:\n name: Default Google Reconcile provided by FusionAuth\n type: GoogleReconcile\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getLambda.\n", "properties": { @@ -11647,7 +9457,7 @@ } }, "fusionauth:index/getTenant:getTenant": { - "description": "## # Tenant Resource\n\nA FusionAuth Tenant is a named object that represents a discrete namespace for Users, Applications and Groups. A user is unique by email address or username within a tenant.\n\nTenants may be useful to support a multi-tenant application where you wish to use a single instance of FusionAuth but require the ability to have duplicate users across the tenants in your own application. In this scenario a user may exist multiple times with the same email address and different passwords across tenants.\n\nTenants may also be useful in a test or staging environment to allow multiple users to call APIs and create and modify users without possibility of collision.\n\n[Tenants API](https://fusionauth.io/docs/v1/tech/apis/tenants)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getTenant({\n name: \"Default\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_tenant(name=\"Default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetTenant.Invoke(new()\n {\n Name = \"Default\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetTenant(ctx, \u0026fusionauth.GetTenantArgs{\n\t\t\tName: \"Default\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetTenantArgs;\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 = FusionauthFunctions.getTenant(GetTenantArgs.builder()\n .name(\"Default\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getTenant\n Arguments:\n name: Default\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # Tenant Resource\n\nA FusionAuth Tenant is a named object that represents a discrete namespace for Users, Applications and Groups. A user is unique by email address or username within a tenant.\n\nTenants may be useful to support a multi-tenant application where you wish to use a single instance of FusionAuth but require the ability to have duplicate users across the tenants in your own application. In this scenario a user may exist multiple times with the same email address and different passwords across tenants.\n\nTenants may also be useful in a test or staging environment to allow multiple users to call APIs and create and modify users without possibility of collision.\n\n[Tenants API](https://fusionauth.io/docs/v1/tech/apis/tenants)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst default = fusionauth.getTenant({\n name: \"Default\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\ndefault = fusionauth.get_tenant(name=\"Default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Fusionauth.GetTenant.Invoke(new()\n {\n Name = \"Default\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetTenant(ctx, \u0026fusionauth.GetTenantArgs{\n\t\t\tName: \"Default\",\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetTenantArgs;\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 = FusionauthFunctions.getTenant(GetTenantArgs.builder()\n .name(\"Default\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n fn::invoke:\n Function: fusionauth:getTenant\n Arguments:\n name: Default\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getTenant.\n", "properties": { @@ -11681,7 +9491,7 @@ } }, "fusionauth:index/getUser:getUser": { - "description": "## # User Data Source\n\nThis data source can be used to fetch information about a specific user.\n\n[Users API](https://fusionauth.io/docs/v1/tech/apis/users)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst example = fusionauth.getUser({\n username: \"foo@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nexample = fusionauth.get_user(username=\"foo@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Fusionauth.GetUser.Invoke(new()\n {\n Username = \"foo@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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetUser(ctx, \u0026fusionauth.GetUserArgs{\n\t\t\tUsername: pulumi.StringRef(\"foo@example.com\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetUserArgs;\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 example = FusionauthFunctions.getUser(GetUserArgs.builder()\n .username(\"foo@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: fusionauth:getUser\n Arguments:\n username: foo@example.com\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "## # User Data Source\n\nThis data source can be used to fetch information about a specific user.\n\n[Users API](https://fusionauth.io/docs/v1/tech/apis/users)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fusionauth from \"@pulumi/fusionauth\";\n\nconst example = fusionauth.getUser({\n username: \"foo@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_fusionauth as fusionauth\n\nexample = fusionauth.get_user(username=\"foo@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Fusionauth = Pulumi.Fusionauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Fusionauth.GetUser.Invoke(new()\n {\n Username = \"foo@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/theogravity/pulumi-fusionauth/sdk/v2/go/fusionauth\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fusionauth.GetUser(ctx, \u0026fusionauth.GetUserArgs{\n\t\t\tUsername: pulumi.StringRef(\"foo@example.com\"),\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.fusionauth.FusionauthFunctions;\nimport com.pulumi.fusionauth.inputs.GetUserArgs;\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 example = FusionauthFunctions.getUser(GetUserArgs.builder()\n .username(\"foo@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: fusionauth:getUser\n Arguments:\n username: foo@example.com\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { "description": "A collection of arguments for invoking getUser.\n", "properties": { diff --git a/provider/go.mod b/provider/go.mod index 68d6a82..be55600 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -6,19 +6,19 @@ replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraf require ( github.com/gpsinsight/terraform-provider-fusionauth v0.1.90 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.42.1 - github.com/pulumi/pulumi/sdk/v3 v3.57.1 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.50.1 + github.com/pulumi/pulumi/sdk/v3 v3.71.0 ) require ( - cloud.google.com/go v0.107.0 // indirect - cloud.google.com/go/compute v1.15.1 // indirect + cloud.google.com/go v0.110.0 // indirect + cloud.google.com/go/compute v1.18.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.8.0 // indirect - cloud.google.com/go/kms v1.6.0 // indirect - cloud.google.com/go/logging v1.6.1 // indirect - cloud.google.com/go/longrunning v0.3.0 // indirect - cloud.google.com/go/storage v1.27.0 // indirect + cloud.google.com/go/iam v0.12.0 // indirect + cloud.google.com/go/kms v1.9.0 // indirect + cloud.google.com/go/logging v1.7.0 // indirect + cloud.google.com/go/longrunning v0.4.1 // indirect + cloud.google.com/go/storage v1.28.1 // indirect github.com/AlecAivazis/survey/v2 v2.0.5 // indirect github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 // indirect @@ -36,10 +36,11 @@ require ( github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect + github.com/BurntSushi/toml v1.2.1 // indirect github.com/FusionAuth/go-client v0.0.0-20230313183733-29fd62bc04f7 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/Masterminds/semver v1.5.0 // indirect - github.com/Masterminds/sprig v2.22.0+incompatible // indirect + github.com/Masterminds/semver/v3 v3.1.1 // indirect + github.com/Masterminds/sprig/v3 v3.2.2 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 // indirect github.com/acomagu/bufpipe v1.0.3 // indirect @@ -74,7 +75,7 @@ require ( github.com/blang/semver v3.5.1+incompatible // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/cheggaaa/pb v1.0.29 // indirect - github.com/cloudflare/circl v1.1.0 // indirect + github.com/cloudflare/circl v1.3.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect @@ -91,27 +92,27 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.1+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.4.2 // indirect - github.com/golang/glog v1.0.0 // indirect + github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.3.0 // indirect github.com/google/wire v0.5.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/googleapis/gax-go/v2 v2.7.0 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect - github.com/hashicorp/go-getter v1.7.0 // indirect + github.com/hashicorp/go-getter v1.7.1 // indirect github.com/hashicorp/go-hclog v1.2.2 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.4.6 // indirect + github.com/hashicorp/go-plugin v1.4.8 // indirect github.com/hashicorp/go-retryablehttp v0.7.1 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect @@ -123,13 +124,13 @@ require ( github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.16.1 // indirect + github.com/hashicorp/hcl/v2 v2.16.2 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/logutils v1.0.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.14.1 // indirect + github.com/hashicorp/terraform-plugin-go v0.14.3 // indirect github.com/hashicorp/terraform-plugin-log v0.7.0 // indirect github.com/hashicorp/terraform-plugin-sdk v1.9.1 // indirect - github.com/hashicorp/terraform-plugin-sdk/v2 v2.19.0 // indirect + github.com/hashicorp/terraform-plugin-sdk/v2 v2.24.1 // indirect github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 // indirect github.com/hashicorp/vault/api v1.8.2 // indirect github.com/hashicorp/vault/sdk v0.6.1 // indirect @@ -138,7 +139,7 @@ require ( github.com/iancoleman/strcase v0.2.0 // indirect github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect github.com/imdario/mergo v0.3.13 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -147,10 +148,10 @@ require ( github.com/klauspost/compress v1.15.11 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect - github.com/mitchellh/cli v1.1.2 // indirect + github.com/mitchellh/cli v1.1.4 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect @@ -174,12 +175,13 @@ require ( github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/posener/complete v1.2.3 // indirect - github.com/pulumi/pulumi-java/pkg v0.8.0 // indirect - github.com/pulumi/pulumi-yaml v1.0.4 // indirect - github.com/pulumi/pulumi/pkg/v3 v3.56.0 // indirect + github.com/pulumi/pulumi-java/pkg v0.9.4 // indirect + github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.4 // indirect + github.com/pulumi/pulumi-yaml v1.1.1 // indirect + github.com/pulumi/pulumi/pkg/v3 v3.71.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect @@ -188,12 +190,13 @@ require ( github.com/segmentio/asm v1.1.3 // indirect github.com/segmentio/encoding v0.3.5 // indirect github.com/sergi/go-diff v1.2.0 // indirect + github.com/shopspring/decimal v1.3.1 // indirect github.com/skeema/knownhosts v1.1.0 // indirect - github.com/spf13/afero v1.6.0 // indirect - github.com/spf13/cast v1.4.1 // indirect - github.com/spf13/cobra v1.6.1 // indirect + github.com/spf13/afero v1.9.5 // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.8.2 // indirect + github.com/stretchr/testify v1.8.3 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -206,26 +209,26 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zclconf/go-cty v1.12.1 // indirect + github.com/zclconf/go-cty v1.13.2 // indirect go.opencensus.io v0.24.0 // indirect 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.3.0 // indirect - golang.org/x/mod v0.6.0 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/oauth2 v0.4.0 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/mod v0.10.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/oauth2 v0.6.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect - golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect + golang.org/x/time v0.1.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.103.0 // indirect + google.golang.org/api v0.110.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect - google.golang.org/grpc v1.53.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/grpc v1.55.0 // indirect + google.golang.org/protobuf v1.30.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 1fd71a7..cc98983 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -5,6 +5,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -17,6 +18,7 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -35,8 +37,8 @@ cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+ cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.103.0/go.mod h1:vwLx1nqLrzLX/fpwSMOXmFIqBOyHsvHbnAdbGSJ+mKk= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -73,8 +75,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.15.1 h1:7UGq3QknM33pw5xATlpzeoomNxsacIVvTqTTvbfajmE= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -117,19 +119,19 @@ cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.8.0 h1:E2osAkZzxI/+8pZcxVLcDtAQx/u+hZXVryUaYQ5O0Kk= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/kms v1.6.0 h1:OWRZzrPmOZUzurjI2FBGtgY2mB1WaJkqhw6oIwSj0Yg= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.9.0 h1:b0votJQa/9DSsxgHwN33/tTLA7ZHVzfWhDCrfiXijSo= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -187,11 +189,13 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.24.0/go.mod h1:3xrJEFMXBsQLgxwThyjuD3aYlroL0TMRec1ypGUQ0KE= -cloud.google.com/go/storage v1.27.0 h1:YOO045NZI9RKfCj1c5A/ZtuuENUc8OAW+gHdGnDgyMQ= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A= @@ -277,6 +281,8 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c= github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/FusionAuth/go-client v0.0.0-20230313183733-29fd62bc04f7 h1:NQgZJFG6wHSr+R5ni/orajx1eB/O1GUPcxvgi7kZhJs= @@ -288,10 +294,11 @@ github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy86 github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Masterminds/sprig/v3 v3.2.0/go.mod h1:tWhwTbUTndesPNeF0C900vKoq283u6zp4APT9vaF3SI= +github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8= +github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= @@ -504,8 +511,9 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= +github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= +github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -741,8 +749,8 @@ github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVB github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+Qdqk= github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= @@ -899,8 +907,9 @@ github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -934,8 +943,9 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -989,6 +999,7 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210506205249-923b5ab0fc1a/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -1011,8 +1022,9 @@ github.com/google/wire v0.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8= github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.2.0 h1:y8Yozv7SZtlU//QXbezB6QkpuE6jMD2/gfzk4AftXjs= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1028,6 +1040,7 @@ github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3i github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gophercloud/gophercloud v0.24.0/go.mod h1:Q8fZtyi5zZxPS/j9aj3sSxtvj41AdQMDwyo1myduD5c= github.com/gophercloud/gophercloud v0.25.0/go.mod h1:Q8fZtyi5zZxPS/j9aj3sSxtvj41AdQMDwyo1myduD5c= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -1080,8 +1093,8 @@ github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/S github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= github.com/hashicorp/go-getter v1.4.0/go.mod h1:7qxyCd8rBfcShwsvxgIguu4KbS3l8bUCwg2Umn7RjeY= -github.com/hashicorp/go-getter v1.7.0 h1:bzrYP+qu/gMrL1au7/aDvkoOVGUJpeKBgbqRHACAFDY= -github.com/hashicorp/go-getter v1.7.0/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= +github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= @@ -1105,8 +1118,8 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= github.com/hashicorp/go-plugin v1.4.4/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= -github.com/hashicorp/go-plugin v1.4.6 h1:MDV3UrKQBM3du3G7MApDGvOsMYy3JQJ4exhSoKBAeVA= -github.com/hashicorp/go-plugin v1.4.6/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= +github.com/hashicorp/go-plugin v1.4.8 h1:CHGwpxYDOttQOY7HOWgETU9dyVjOXzniXDqJcYJE1zM= +github.com/hashicorp/go-plugin v1.4.8/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ= @@ -1154,8 +1167,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.13.0/go.mod h1:e4z5nxYlWNPdDSNYX+ph14EvWYMFm3eP0zIUqPc2jr0= -github.com/hashicorp/hcl/v2 v2.16.1 h1:BwuxEMD/tsYgbhIW7UuI3crjovf3MzuFWiVgiv57iHg= -github.com/hashicorp/hcl/v2 v2.16.1/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= +github.com/hashicorp/hcl/v2 v2.16.2 h1:mpkHZh/Tv+xet3sy3F9Ld4FyI2tUpWe9x3XtPx9f1a0= +github.com/hashicorp/hcl/v2 v2.16.2/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= @@ -1175,16 +1188,16 @@ github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8j github.com/hashicorp/terraform-json v0.14.0 h1:sh9iZ1Y8IFJLx+xQiKHGud6/TSUCM0N8e17dKDpqV7s= github.com/hashicorp/terraform-json v0.14.0/go.mod h1:5A9HIWPkk4e5aeeXIBbkcOvaZbIYnAIkEyqP2pNSckM= github.com/hashicorp/terraform-plugin-go v0.14.0/go.mod h1:2nNCBeRLaenyQEi78xrGrs9hMbulveqG/zDMQSvVJTE= -github.com/hashicorp/terraform-plugin-go v0.14.1 h1:cwZzPYla82XwAqpLhSzdVsOMU+6H29tczAwrB0z9Zek= -github.com/hashicorp/terraform-plugin-go v0.14.1/go.mod h1:Bc/K6K26BQ2FHqIELPbpKtt2CzzbQou+0UQF3/0NsCQ= +github.com/hashicorp/terraform-plugin-go v0.14.3 h1:nlnJ1GXKdMwsC8g1Nh05tK2wsC3+3BL/DBBxFEki+j0= +github.com/hashicorp/terraform-plugin-go v0.14.3/go.mod h1:7ees7DMZ263q8wQ6E4RdIdR6nHHJtrdt4ogX5lPkX1A= github.com/hashicorp/terraform-plugin-log v0.7.0 h1:SDxJUyT8TwN4l5b5/VkiTIaQgY6R+Y2BQ0sRZftGKQs= github.com/hashicorp/terraform-plugin-log v0.7.0/go.mod h1:p4R1jWBXRTvL4odmEkFfDdhUjHf9zcs/BCoNHAc7IK4= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-sdk v1.9.1 h1:AgHnd6yPCg7o57XWrv4L7tIMdF0KQpcZro1pDHF1Xbw= github.com/hashicorp/terraform-plugin-sdk v1.9.1/go.mod h1:C/AXwmDHqbc3h6URiHpIsVKrwV4PS0Sh0+VTaeEkShw= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c h1:D8aRO6+mTqHfLsK/BC3j5OAoogv1WLRWzY1AaTo3rBg= github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c/go.mod h1:Wn3Na71knbXc1G8Lh+yu/dQWWJeFQEpDeJMtWMtlmNI= +github.com/hashicorp/terraform-registry-address v0.1.0 h1:W6JkV9wbum+m516rCl5/NjKxCyTVaaUBbzYcMzBDO3U= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 h1:HKLsbzeOsfXmKNpr3GiT18XAblV0BjCbzL8KQAMZGa0= github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= @@ -1207,6 +1220,7 @@ github.com/hexops/valast v1.4.0 h1:sFzyxPDP0riFQUzSBXTCCrAbbIndHPWMndxuEjXdZlc= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= @@ -1226,8 +1240,8 @@ github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= github.com/ionos-cloud/sdk-go/v6 v6.1.0/go.mod h1:Ox3W0iiEz0GHnfY9e5LmAxwklsxguuNFEUSu0gVRTME= @@ -1386,8 +1400,9 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= @@ -1410,8 +1425,8 @@ github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WT github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/cli v1.1.2 h1:PvH+lL2B7IQ101xQL63Of8yFS2y+aDlsFcsqNc+u/Kw= -github.com/mitchellh/cli v1.1.2/go.mod h1:6iaV0fGdElS6dPBx0EApTxHrcWvmJphyh2n8YBLPPZ4= +github.com/mitchellh/cli v1.1.4 h1:qj8czE26AU4PbiaPXK5uVmMSM+V5BYsFBiM9HhGRLUA= +github.com/mitchellh/cli v1.1.4/go.mod h1:vTLESy5mRhKOs9KDp0/RATawxP1UqBmdrpVRMnpcvKQ= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -1489,7 +1504,6 @@ github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OS github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA= -github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce h1:RPclfga2SEJmgMmz2k+Mg7cowZ8yv4Trqw9UsJby758= github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce/go.mod h1:uFMI8w+ref4v2r9jz+c9i1IfIttS/OkmLfrk1jne5hs= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -1592,6 +1606,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -1657,16 +1672,19 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/prometheus v0.35.0/go.mod h1:7HaLx5kEPKJ0GDgbODG0fZgXbQ8K/XjZNJXQmbmgQlY= github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGOON44WyAp4Xqbbk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pulumi/pulumi-java/pkg v0.8.0 h1:b81/D/dk5/9OEH1k5BJxhqYiQc7Y4TPDbHVGBvJU1GE= -github.com/pulumi/pulumi-java/pkg v0.8.0/go.mod h1:x7/J1GCJ+hHFBEgnMr4QpsTfjXUNHccAHJ9gvFfmAFU= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.42.1 h1:W3RJShHlsvVmTRuftLdp1yLQpRqU0c66iQMpxVqXVOs= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.42.1/go.mod h1:ej3U842Dtjk6kIQv2b3dtHKqFyggbZqlDoPWzc2EZvM= -github.com/pulumi/pulumi-yaml v1.0.4 h1:p+989rW3AqkkxbzxtxccHKAN4xCJi3K2cRpvA2K84tw= -github.com/pulumi/pulumi-yaml v1.0.4/go.mod h1:Szj8ud4Vqyq3oO1n3kzIUfaP3AiCjYZM4FYjOVWwJn8= -github.com/pulumi/pulumi/pkg/v3 v3.56.0 h1:GAqRHERowIXCTUM2PX2t0G/UKze06WVhv52S8eO2lE8= -github.com/pulumi/pulumi/pkg/v3 v3.56.0/go.mod h1:l91pIemOEbGBX2tIoVb3r4YlIv3BoTBvyVpECFsVZ3c= -github.com/pulumi/pulumi/sdk/v3 v3.57.1 h1:XprfFY7GcMpFVspEP1s803N9ypgSjOIf895ViBxcIqE= -github.com/pulumi/pulumi/sdk/v3 v3.57.1/go.mod h1:Pb5H3OaRZg0n4TRIfY0pagR/NBIEvjp3lZe2Spr6Umc= +github.com/pulumi/pulumi-java/pkg v0.9.4 h1:gIQZmlUI1o9ye8CL2XFqtmAX6Lwr9uj/+HzjboiSmK4= +github.com/pulumi/pulumi-java/pkg v0.9.4/go.mod h1:c6rSw/+q4O0IImgJ9axxoC6QesbPYWBaG5gimbHouUQ= +github.com/pulumi/pulumi-terraform-bridge/testing v0.0.1 h1:SCg1gjfY9N4yn8U8peIUYATifjoDABkyR7H9lmefsfc= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.50.1 h1:3lfYzYjs/8ZtJuOm3xHhnGV9T5FQ+MObIOIcNEOQxEk= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.50.1/go.mod h1:ek2NJSTqeI5+V6wL2Cv8qy3f7S0Uc04UT/m6U582fSs= +github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.4 h1:rIzMmtcVpPX8ynaz6/nW5AHNY63DiNfCohqmxWvMpM4= +github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.4/go.mod h1:Kt8RIZWa/N8rW3+0g6NrqCBmF3o+HuIhFaZpssEkG6w= +github.com/pulumi/pulumi-yaml v1.1.1 h1:8pyBNIU8+ym0wYpjhsCqN+cutygfK1XbhY2YEeNfyXY= +github.com/pulumi/pulumi-yaml v1.1.1/go.mod h1:GhpdS6rFpwqvUtKdA+fQy8P28iNvncng39IXh5q68vE= +github.com/pulumi/pulumi/pkg/v3 v3.71.0 h1:SdmFCDKQGz6HxbHi+7CDTRQ9pQfWOJWmLL5Kh4ayQEk= +github.com/pulumi/pulumi/pkg/v3 v3.71.0/go.mod h1:U4IvxPAIezAbJwwyGl2faq09XC0BP3RxQbwZmBYy6fM= +github.com/pulumi/pulumi/sdk/v3 v3.71.0 h1:D/02vc3Xn/eKxwCDWuYmkxAO1Jm7waOeiuxercQQWLY= +github.com/pulumi/pulumi/sdk/v3 v3.71.0/go.mod h1:BUUBfQZsH0FPuznRfFHkR+b96VlXELnn+DgidFj4XSQ= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Dik4Qe/+xguB8JagPyXNlbOnRiXGmq/PSPQTGunYnTk= @@ -1675,8 +1693,9 @@ github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9 h1: github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9/go.mod h1:mYPs/uchNcBq7AclQv9QUtSf9iNcfp1Ag21jqTlDf2M= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1721,6 +1740,8 @@ github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/go-goon v0.0.0-20210110234559-7585751d9a17 h1:lRAUE0dIvigSSFAmaM2dfg7OH8T+a8zJ5smEh09a/GI= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -1746,18 +1767,19 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1793,8 +1815,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -1839,9 +1861,11 @@ github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaU github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= @@ -1878,8 +1902,8 @@ github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= -github.com/zclconf/go-cty v1.12.1 h1:PcupnljUm9EIvbgSHQnHhUr3fO6oFmkOrvs2BAFNXXY= -github.com/zclconf/go-cty v1.12.1/go.mod h1:s9IfD1LK5ccNMSWCVFCE2rJfHiZgi7JijgeWIMfhLvA= +github.com/zclconf/go-cty v1.13.2 h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0= +github.com/zclconf/go-cty v1.13.2/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8= github.com/zclconf/go-cty-yaml v1.0.1/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= @@ -2002,6 +2026,7 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -2026,8 +2051,9 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -2067,8 +2093,9 @@ golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2156,8 +2183,8 @@ golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= 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= @@ -2187,8 +2214,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2297,6 +2324,7 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2353,12 +2381,13 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220731174439-a90be440212d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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= @@ -2367,8 +2396,8 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= 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= @@ -2379,8 +2408,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2392,8 +2421,9 @@ golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ= golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2467,6 +2497,7 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -2478,8 +2509,8 @@ golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2546,8 +2577,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.103.0 h1:9yuVqlu2JCvcLg9p8S3fcFLZij8EPSyvODIY1rkMizQ= -google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2603,7 +2634,9 @@ google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -2679,8 +2712,8 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= @@ -2728,8 +2761,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -2746,8 +2779,9 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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/sdk/dotnet/FusionAuthApiKey.cs b/sdk/dotnet/FusionAuthApiKey.cs index c5a8c2e..e241ab8 100644 --- a/sdk/dotnet/FusionAuthApiKey.cs +++ b/sdk/dotnet/FusionAuthApiKey.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthApplication.cs b/sdk/dotnet/FusionAuthApplication.cs index 21237c9..f363aa5 100644 --- a/sdk/dotnet/FusionAuthApplication.cs +++ b/sdk/dotnet/FusionAuthApplication.cs @@ -19,6 +19,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthApplicationRole.cs b/sdk/dotnet/FusionAuthApplicationRole.cs index 5bb5d6a..4537946 100644 --- a/sdk/dotnet/FusionAuthApplicationRole.cs +++ b/sdk/dotnet/FusionAuthApplicationRole.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthEMail.cs b/sdk/dotnet/FusionAuthEMail.cs index ecb37d7..b2c6e9b 100644 --- a/sdk/dotnet/FusionAuthEMail.cs +++ b/sdk/dotnet/FusionAuthEMail.cs @@ -22,6 +22,7 @@ namespace theogravity.Fusionauth /// ```csharp /// using System.Collections.Generic; /// using System.IO; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthEntity.cs b/sdk/dotnet/FusionAuthEntity.cs index 238dad9..1c7f179 100644 --- a/sdk/dotnet/FusionAuthEntity.cs +++ b/sdk/dotnet/FusionAuthEntity.cs @@ -63,6 +63,9 @@ public partial class FusionAuthEntity : global::Pulumi.CustomResource /// /// The ID of the Entity Type. Types are consulted for permission checks. + /// + /// For more information see: + /// [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) /// [Output("entityTypeId")] public Output EntityTypeId { get; private set; } = null!; @@ -170,6 +173,9 @@ public Input? ClientSecret /// /// The ID of the Entity Type. Types are consulted for permission checks. + /// + /// For more information see: + /// [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) /// [Input("entityTypeId", required: true)] public Input EntityTypeId { get; set; } = null!; @@ -234,6 +240,9 @@ public Input? ClientSecret /// /// The ID of the Entity Type. Types are consulted for permission checks. + /// + /// For more information see: + /// [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) /// [Input("entityTypeId")] public Input? EntityTypeId { get; set; } diff --git a/sdk/dotnet/FusionAuthEntityType.cs b/sdk/dotnet/FusionAuthEntityType.cs index 7dbd12f..f81f278 100644 --- a/sdk/dotnet/FusionAuthEntityType.cs +++ b/sdk/dotnet/FusionAuthEntityType.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using System.Text.Json; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; diff --git a/sdk/dotnet/FusionAuthForm.cs b/sdk/dotnet/FusionAuthForm.cs index 9e68fbf..607c3c0 100644 --- a/sdk/dotnet/FusionAuthForm.cs +++ b/sdk/dotnet/FusionAuthForm.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthFormField.cs b/sdk/dotnet/FusionAuthFormField.cs index 556447a..df104fa 100644 --- a/sdk/dotnet/FusionAuthFormField.cs +++ b/sdk/dotnet/FusionAuthFormField.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthGenericConnector.cs b/sdk/dotnet/FusionAuthGenericConnector.cs index bb03751..9eab491 100644 --- a/sdk/dotnet/FusionAuthGenericConnector.cs +++ b/sdk/dotnet/FusionAuthGenericConnector.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthGroup.cs b/sdk/dotnet/FusionAuthGroup.cs index 1f5dbb0..7d7faec 100644 --- a/sdk/dotnet/FusionAuthGroup.cs +++ b/sdk/dotnet/FusionAuthGroup.cs @@ -23,6 +23,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpApple.cs b/sdk/dotnet/FusionAuthIdpApple.cs index 12cfd3f..7c1596d 100644 --- a/sdk/dotnet/FusionAuthIdpApple.cs +++ b/sdk/dotnet/FusionAuthIdpApple.cs @@ -23,6 +23,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpExternalJwt.cs b/sdk/dotnet/FusionAuthIdpExternalJwt.cs index c803f5f..d1c8cbc 100644 --- a/sdk/dotnet/FusionAuthIdpExternalJwt.cs +++ b/sdk/dotnet/FusionAuthIdpExternalJwt.cs @@ -23,6 +23,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpFacebook.cs b/sdk/dotnet/FusionAuthIdpFacebook.cs index 109c4f7..5f1f062 100644 --- a/sdk/dotnet/FusionAuthIdpFacebook.cs +++ b/sdk/dotnet/FusionAuthIdpFacebook.cs @@ -29,6 +29,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpGoogle.cs b/sdk/dotnet/FusionAuthIdpGoogle.cs index fb639c9..c81c891 100644 --- a/sdk/dotnet/FusionAuthIdpGoogle.cs +++ b/sdk/dotnet/FusionAuthIdpGoogle.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpLinkedIn.cs b/sdk/dotnet/FusionAuthIdpLinkedIn.cs index c082289..5d8c1dc 100644 --- a/sdk/dotnet/FusionAuthIdpLinkedIn.cs +++ b/sdk/dotnet/FusionAuthIdpLinkedIn.cs @@ -35,6 +35,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpOpenIdConnect.cs b/sdk/dotnet/FusionAuthIdpOpenIdConnect.cs index 2548215..c871ed7 100644 --- a/sdk/dotnet/FusionAuthIdpOpenIdConnect.cs +++ b/sdk/dotnet/FusionAuthIdpOpenIdConnect.cs @@ -27,6 +27,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpPsn.cs b/sdk/dotnet/FusionAuthIdpPsn.cs index 8653364..928cb00 100644 --- a/sdk/dotnet/FusionAuthIdpPsn.cs +++ b/sdk/dotnet/FusionAuthIdpPsn.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpSamlv2.cs b/sdk/dotnet/FusionAuthIdpSamlv2.cs index 7769297..202eea6 100644 --- a/sdk/dotnet/FusionAuthIdpSamlv2.cs +++ b/sdk/dotnet/FusionAuthIdpSamlv2.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpSteam.cs b/sdk/dotnet/FusionAuthIdpSteam.cs index 1730c98..41bda90 100644 --- a/sdk/dotnet/FusionAuthIdpSteam.cs +++ b/sdk/dotnet/FusionAuthIdpSteam.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpTwitch.cs b/sdk/dotnet/FusionAuthIdpTwitch.cs index 475c468..50354b6 100644 --- a/sdk/dotnet/FusionAuthIdpTwitch.cs +++ b/sdk/dotnet/FusionAuthIdpTwitch.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthIdpXBox.cs b/sdk/dotnet/FusionAuthIdpXBox.cs index 9d5f1b0..0eb24b9 100644 --- a/sdk/dotnet/FusionAuthIdpXBox.cs +++ b/sdk/dotnet/FusionAuthIdpXBox.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthImportedKey.cs b/sdk/dotnet/FusionAuthImportedKey.cs index 2a8f350..b25b4f9 100644 --- a/sdk/dotnet/FusionAuthImportedKey.cs +++ b/sdk/dotnet/FusionAuthImportedKey.cs @@ -22,6 +22,7 @@ namespace theogravity.Fusionauth /// ```csharp /// using System.Collections.Generic; /// using System.IO; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthKey.cs b/sdk/dotnet/FusionAuthKey.cs index 7c90c74..fdf9148 100644 --- a/sdk/dotnet/FusionAuthKey.cs +++ b/sdk/dotnet/FusionAuthKey.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthLambda.cs b/sdk/dotnet/FusionAuthLambda.cs index e582b43..1a5c426 100644 --- a/sdk/dotnet/FusionAuthLambda.cs +++ b/sdk/dotnet/FusionAuthLambda.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthReactor.cs b/sdk/dotnet/FusionAuthReactor.cs index 2e0bd13..cddc3e5 100644 --- a/sdk/dotnet/FusionAuthReactor.cs +++ b/sdk/dotnet/FusionAuthReactor.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthRegistration.cs b/sdk/dotnet/FusionAuthRegistration.cs index e7d369d..cbf2890 100644 --- a/sdk/dotnet/FusionAuthRegistration.cs +++ b/sdk/dotnet/FusionAuthRegistration.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthSystemConfiguration.cs b/sdk/dotnet/FusionAuthSystemConfiguration.cs index be6bb8e..762a058 100644 --- a/sdk/dotnet/FusionAuthSystemConfiguration.cs +++ b/sdk/dotnet/FusionAuthSystemConfiguration.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthTenant.cs b/sdk/dotnet/FusionAuthTenant.cs index 740424a..d3952ad 100644 --- a/sdk/dotnet/FusionAuthTenant.cs +++ b/sdk/dotnet/FusionAuthTenant.cs @@ -25,6 +25,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthTheme.cs b/sdk/dotnet/FusionAuthTheme.cs index 269dd12..ebd82dd 100644 --- a/sdk/dotnet/FusionAuthTheme.cs +++ b/sdk/dotnet/FusionAuthTheme.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthUser.cs b/sdk/dotnet/FusionAuthUser.cs index 29dbec8..320ad12 100644 --- a/sdk/dotnet/FusionAuthUser.cs +++ b/sdk/dotnet/FusionAuthUser.cs @@ -19,6 +19,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using System.Text.Json; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; diff --git a/sdk/dotnet/FusionAuthUserAction.cs b/sdk/dotnet/FusionAuthUserAction.cs index effc052..1bd0ee8 100644 --- a/sdk/dotnet/FusionAuthUserAction.cs +++ b/sdk/dotnet/FusionAuthUserAction.cs @@ -19,6 +19,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/FusionAuthWebhook.cs b/sdk/dotnet/FusionAuthWebhook.cs index 6cfd7a3..5da5ed8 100644 --- a/sdk/dotnet/FusionAuthWebhook.cs +++ b/sdk/dotnet/FusionAuthWebhook.cs @@ -21,6 +21,7 @@ namespace theogravity.Fusionauth /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = theogravity.Fusionauth; /// diff --git a/sdk/dotnet/GetApplication.cs b/sdk/dotnet/GetApplication.cs index 4dab5db..c342272 100644 --- a/sdk/dotnet/GetApplication.cs +++ b/sdk/dotnet/GetApplication.cs @@ -23,6 +23,7 @@ public static class GetApplication /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -52,6 +53,7 @@ public static Task InvokeAsync(GetApplicationArgs args, In /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetApplicationRole.cs b/sdk/dotnet/GetApplicationRole.cs index 6b9d7a4..15c712a 100644 --- a/sdk/dotnet/GetApplicationRole.cs +++ b/sdk/dotnet/GetApplicationRole.cs @@ -25,6 +25,7 @@ public static class GetApplicationRole /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -57,6 +58,7 @@ public static Task InvokeAsync(GetApplicationRoleArgs /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetEMail.cs b/sdk/dotnet/GetEMail.cs index c741f75..4a09e3e 100644 --- a/sdk/dotnet/GetEMail.cs +++ b/sdk/dotnet/GetEMail.cs @@ -25,6 +25,7 @@ public static class GetEMail /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -56,6 +57,7 @@ public static Task InvokeAsync(GetEMailArgs args, InvokeOptions? /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetForm.cs b/sdk/dotnet/GetForm.cs index 44962be..ddf46b8 100644 --- a/sdk/dotnet/GetForm.cs +++ b/sdk/dotnet/GetForm.cs @@ -25,6 +25,7 @@ public static class GetForm /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -56,6 +57,7 @@ public static Task InvokeAsync(GetFormArgs? args = null, InvokeOp /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetFormField.cs b/sdk/dotnet/GetFormField.cs index c631a23..f352022 100644 --- a/sdk/dotnet/GetFormField.cs +++ b/sdk/dotnet/GetFormField.cs @@ -25,6 +25,7 @@ public static class GetFormField /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -56,6 +57,7 @@ public static Task InvokeAsync(GetFormFieldArgs? args = null /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetIdp.cs b/sdk/dotnet/GetIdp.cs index c82d5da..ff4e4ee 100644 --- a/sdk/dotnet/GetIdp.cs +++ b/sdk/dotnet/GetIdp.cs @@ -23,6 +23,7 @@ public static class GetIdp /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -53,6 +54,7 @@ public static Task InvokeAsync(GetIdpArgs args, InvokeOptions? opt /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetLambda.cs b/sdk/dotnet/GetLambda.cs index 2f454ba..3de0b73 100644 --- a/sdk/dotnet/GetLambda.cs +++ b/sdk/dotnet/GetLambda.cs @@ -25,6 +25,7 @@ public static class GetLambda /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -57,6 +58,7 @@ public static Task InvokeAsync(GetLambdaArgs args, InvokeOption /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetTenant.cs b/sdk/dotnet/GetTenant.cs index cef2bf6..15b031d 100644 --- a/sdk/dotnet/GetTenant.cs +++ b/sdk/dotnet/GetTenant.cs @@ -29,6 +29,7 @@ public static class GetTenant /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -64,6 +65,7 @@ public static Task InvokeAsync(GetTenantArgs args, InvokeOption /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/GetUser.cs b/sdk/dotnet/GetUser.cs index cd12fb9..619540c 100644 --- a/sdk/dotnet/GetUser.cs +++ b/sdk/dotnet/GetUser.cs @@ -25,6 +25,7 @@ public static class GetUser /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// @@ -56,6 +57,7 @@ public static Task InvokeAsync(GetUserArgs? args = null, InvokeOp /// /// ```csharp /// using System.Collections.Generic; + /// using System.Linq; /// using Pulumi; /// using Fusionauth = Pulumi.Fusionauth; /// diff --git a/sdk/dotnet/theogravity.Fusionauth.csproj b/sdk/dotnet/theogravity.Fusionauth.csproj index 7a9100e..9232c1e 100644 --- a/sdk/dotnet/theogravity.Fusionauth.csproj +++ b/sdk/dotnet/theogravity.Fusionauth.csproj @@ -10,9 +10,8 @@ https://github.com/theogravity/pulumi-fusionauth logo.png - netcoreapp3.1 + net6.0 enable - false @@ -39,7 +38,7 @@ - + diff --git a/sdk/go/fusionauth/config/config.go b/sdk/go/fusionauth/config/config.go index 5a55ddb..c44a4c9 100644 --- a/sdk/go/fusionauth/config/config.go +++ b/sdk/go/fusionauth/config/config.go @@ -13,12 +13,20 @@ func GetApiKey(ctx *pulumi.Context) string { if err == nil { return v } - return getEnvOrDefault("", nil, "FUSION_AUTH_API_KEY").(string) + var value string + if d := getEnvOrDefault(nil, nil, "FUSION_AUTH_API_KEY"); d != nil { + value = d.(string) + } + return value } func GetHost(ctx *pulumi.Context) string { v, err := config.Try(ctx, "fusionauth:host") if err == nil { return v } - return getEnvOrDefault("", nil, "FUSION_AUTH_HOST_URL").(string) + var value string + if d := getEnvOrDefault(nil, nil, "FUSION_AUTH_HOST_URL"); d != nil { + value = d.(string) + } + return value } diff --git a/sdk/go/fusionauth/config/pulumiUtilities.go b/sdk/go/fusionauth/config/pulumiUtilities.go index 02f0af1..409f6b3 100644 --- a/sdk/go/fusionauth/config/pulumiUtilities.go +++ b/sdk/go/fusionauth/config/pulumiUtilities.go @@ -51,7 +51,7 @@ func parseEnvStringArray(v string) interface{} { func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { for _, v := range vars { - if value := os.Getenv(v); value != "" { + if value, ok := os.LookupEnv(v); ok { if parser != nil { return parser(value) } diff --git a/sdk/go/fusionauth/fusionAuthEntity.go b/sdk/go/fusionauth/fusionAuthEntity.go index d3de930..35a0b86 100644 --- a/sdk/go/fusionauth/fusionAuthEntity.go +++ b/sdk/go/fusionauth/fusionAuthEntity.go @@ -45,6 +45,9 @@ type FusionAuthEntity struct { // The ID to use for the new Entity. If not specified a secure random UUID will be generated. EntityId pulumi.StringOutput `pulumi:"entityId"` // The ID of the Entity Type. Types are consulted for permission checks. + // + // For more information see: + // [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) EntityTypeId pulumi.StringOutput `pulumi:"entityTypeId"` // A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). Name pulumi.StringOutput `pulumi:"name"` @@ -105,6 +108,9 @@ type fusionAuthEntityState struct { // The ID to use for the new Entity. If not specified a secure random UUID will be generated. EntityId *string `pulumi:"entityId"` // The ID of the Entity Type. Types are consulted for permission checks. + // + // For more information see: + // [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) EntityTypeId *string `pulumi:"entityTypeId"` // A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). Name *string `pulumi:"name"` @@ -126,6 +132,9 @@ type FusionAuthEntityState struct { // The ID to use for the new Entity. If not specified a secure random UUID will be generated. EntityId pulumi.StringPtrInput // The ID of the Entity Type. Types are consulted for permission checks. + // + // For more information see: + // [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) EntityTypeId pulumi.StringPtrInput // A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). Name pulumi.StringPtrInput @@ -151,6 +160,9 @@ type fusionAuthEntityArgs struct { // The ID to use for the new Entity. If not specified a secure random UUID will be generated. EntityId *string `pulumi:"entityId"` // The ID of the Entity Type. Types are consulted for permission checks. + // + // For more information see: + // [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) EntityTypeId string `pulumi:"entityTypeId"` // A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). Name *string `pulumi:"name"` @@ -173,6 +185,9 @@ type FusionAuthEntityArgs struct { // The ID to use for the new Entity. If not specified a secure random UUID will be generated. EntityId pulumi.StringPtrInput // The ID of the Entity Type. Types are consulted for permission checks. + // + // For more information see: + // [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) EntityTypeId pulumi.StringInput // A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). Name pulumi.StringPtrInput @@ -292,6 +307,9 @@ func (o FusionAuthEntityOutput) EntityId() pulumi.StringOutput { } // The ID of the Entity Type. Types are consulted for permission checks. +// +// For more information see: +// [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) func (o FusionAuthEntityOutput) EntityTypeId() pulumi.StringOutput { return o.ApplyT(func(v *FusionAuthEntity) pulumi.StringOutput { return v.EntityTypeId }).(pulumi.StringOutput) } diff --git a/sdk/go/fusionauth/provider.go b/sdk/go/fusionauth/provider.go index d5aac47..202155b 100644 --- a/sdk/go/fusionauth/provider.go +++ b/sdk/go/fusionauth/provider.go @@ -29,10 +29,14 @@ func NewProvider(ctx *pulumi.Context, } if args.ApiKey == nil { - args.ApiKey = pulumi.StringPtr(getEnvOrDefault("", nil, "FUSION_AUTH_API_KEY").(string)) + if d := getEnvOrDefault(nil, nil, "FUSION_AUTH_API_KEY"); d != nil { + args.ApiKey = pulumi.StringPtr(d.(string)) + } } if args.Host == nil { - args.Host = pulumi.StringPtr(getEnvOrDefault("", nil, "FUSION_AUTH_HOST_URL").(string)) + if d := getEnvOrDefault(nil, nil, "FUSION_AUTH_HOST_URL"); d != nil { + args.Host = pulumi.StringPtr(d.(string)) + } } opts = pkgResourceDefaultOpts(opts) var resource Provider diff --git a/sdk/go/fusionauth/pulumiUtilities.go b/sdk/go/fusionauth/pulumiUtilities.go index d4f18d7..8d2206b 100644 --- a/sdk/go/fusionauth/pulumiUtilities.go +++ b/sdk/go/fusionauth/pulumiUtilities.go @@ -51,7 +51,7 @@ func parseEnvStringArray(v string) interface{} { func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { for _, v := range vars { - if value := os.Getenv(v); value != "" { + if value, ok := os.LookupEnv(v); ok { if parser != nil { return parser(value) } diff --git a/sdk/nodejs/fusionAuthEntity.ts b/sdk/nodejs/fusionAuthEntity.ts index 55003cd..3ab7b0f 100644 --- a/sdk/nodejs/fusionAuthEntity.ts +++ b/sdk/nodejs/fusionAuthEntity.ts @@ -74,6 +74,9 @@ export class FusionAuthEntity extends pulumi.CustomResource { public readonly entityId!: pulumi.Output; /** * The ID of the Entity Type. Types are consulted for permission checks. + * + * For more information see: + * [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) */ public readonly entityTypeId!: pulumi.Output; /** @@ -151,6 +154,9 @@ export interface FusionAuthEntityState { entityId?: pulumi.Input; /** * The ID of the Entity Type. Types are consulted for permission checks. + * + * For more information see: + * [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) */ entityTypeId?: pulumi.Input; /** @@ -189,6 +195,9 @@ export interface FusionAuthEntityArgs { entityId?: pulumi.Input; /** * The ID of the Entity Type. Types are consulted for permission checks. + * + * For more information see: + * [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) */ entityTypeId: pulumi.Input; /** diff --git a/sdk/python/setup.py b/sdk/python/setup.py index 9d702f7..b7b4c08 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -38,6 +38,7 @@ def readme(): setup(name='theogravity_pulumi-fusionauth', + python_requires='>=3.7', version=VERSION, description="A Pulumi package for managing FusionAuth instances.", long_description=readme(), diff --git a/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_entity.py b/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_entity.py index 8389c60..51149b8 100644 --- a/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_entity.py +++ b/sdk/python/theogravity_pulumi-fusionauth/fusion_auth_entity.py @@ -24,6 +24,9 @@ def __init__(__self__, *, """ The set of arguments for constructing a FusionAuthEntity resource. :param pulumi.Input[str] entity_type_id: The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) :param pulumi.Input[str] client_id: The OAuth 2.0 client ID. If you leave this blank on create, the value of the Entity ID will be used. Must be a UUID. :param pulumi.Input[str] client_secret: The OAuth 2.0 client secret. If you leave this blank on create, a secure secret will be @@ -54,6 +57,9 @@ def __init__(__self__, *, def entity_type_id(self) -> pulumi.Input[str]: """ The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) """ return pulumi.get(self, "entity_type_id") @@ -159,6 +165,9 @@ def __init__(__self__, *, the limits on data field types as you plan for and build your custom data schema. Must be a JSON serialised string. :param pulumi.Input[str] entity_id: The ID to use for the new Entity. If not specified a secure random UUID will be generated. :param pulumi.Input[str] entity_type_id: The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) :param pulumi.Input[str] name: A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). :param pulumi.Input[str] tenant_id: The unique ID of the tenant used to scope this API request. """ @@ -234,6 +243,9 @@ def entity_id(self, value: Optional[pulumi.Input[str]]): def entity_type_id(self) -> Optional[pulumi.Input[str]]: """ The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) """ return pulumi.get(self, "entity_type_id") @@ -310,6 +322,9 @@ def __init__(__self__, the limits on data field types as you plan for and build your custom data schema. Must be a JSON serialised string. :param pulumi.Input[str] entity_id: The ID to use for the new Entity. If not specified a secure random UUID will be generated. :param pulumi.Input[str] entity_type_id: The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) :param pulumi.Input[str] name: A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). :param pulumi.Input[str] tenant_id: The unique ID of the tenant used to scope this API request. """ @@ -414,6 +429,9 @@ def get(resource_name: str, the limits on data field types as you plan for and build your custom data schema. Must be a JSON serialised string. :param pulumi.Input[str] entity_id: The ID to use for the new Entity. If not specified a secure random UUID will be generated. :param pulumi.Input[str] entity_type_id: The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) :param pulumi.Input[str] name: A descriptive name for the Entity (i.e. "Raviga" or "Email Service"). :param pulumi.Input[str] tenant_id: The unique ID of the tenant used to scope this API request. """ @@ -471,6 +489,9 @@ def entity_id(self) -> pulumi.Output[str]: def entity_type_id(self) -> pulumi.Output[str]: """ The ID of the Entity Type. Types are consulted for permission checks. + + For more information see: + [FusionAuth Entity Management API Overview](https://fusionauth.io/docs/v1/tech/apis/entity-management/) """ return pulumi.get(self, "entity_type_id") From 5cdd38bfbecfdbfab4d53be4f716f4edf74bdf61 Mon Sep 17 00:00:00 2001 From: Theo Gravity Date: Sun, 25 Jun 2023 17:04:49 -0700 Subject: [PATCH 3/3] Remove schema check --- .github/workflows/main.yml | 22 ---------------------- .github/workflows/run-acceptance-tests.yml | 22 ---------------------- 2 files changed, 44 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c5ee22f..1571570 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -180,30 +180,8 @@ jobs: repo: pulumi/pulumictl - name: Install Pulumi CLI uses: pulumi/action-install-pulumi-cli@v2 - - if: github.event_name == 'pull_request' - name: Install Schema Tools - uses: jaxxstorm/action-install-gh-release@v1.2.0 - with: - repo: mikhailshilkov/schema-tools - name: Build tfgen & provider binaries run: make provider - - if: github.event_name == 'pull_request' - name: Check Schema is Valid - run: >- - echo 'SCHEMA_CHANGES<> $GITHUB_ENV - - schema-tools compare ${{ env.PROVIDER }} master --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV - - echo 'EOF' >> $GITHUB_ENV - - if: github.event_name == 'pull_request' - name: Comment on PR with Details of Schema Check - uses: thollander/actions-comment-pull-request@v1 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - message: | - ### Does the PR have any schema changes? - - ${{ env.SCHEMA_CHANGES }} - name: Tar provider binaries run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ github.workspace }}/bin/ pulumi-resource-${{ env.PROVIDER }} diff --git a/.github/workflows/run-acceptance-tests.yml b/.github/workflows/run-acceptance-tests.yml index 11d1a37..1fa12f2 100644 --- a/.github/workflows/run-acceptance-tests.yml +++ b/.github/workflows/run-acceptance-tests.yml @@ -216,30 +216,8 @@ jobs: repo: pulumi/pulumictl - name: Install Pulumi CLI uses: pulumi/action-install-pulumi-cli@v2 - - if: github.event_name == 'pull_request' - name: Install Schema Tools - uses: jaxxstorm/action-install-gh-release@v1.2.0 - with: - repo: mikhailshilkov/schema-tools - name: Build tfgen & provider binaries run: make provider - - if: github.event_name == 'pull_request' - name: Check Schema is Valid - run: >- - echo 'SCHEMA_CHANGES<> $GITHUB_ENV - - schema-tools compare ${{ env.PROVIDER }} master --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV - - echo 'EOF' >> $GITHUB_ENV - - if: github.event_name == 'pull_request' - name: Comment on PR with Details of Schema Check - uses: thollander/actions-comment-pull-request@v1 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - message: | - ### Does the PR have any schema changes? - - ${{ env.SCHEMA_CHANGES }} - name: Tar provider binaries run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ github.workspace }}/bin/ pulumi-resource-${{ env.PROVIDER }}