{"name":"propelauth","version":"0.5.0","description":"A Pulumi provider dynamically bridged from propelauth.","attribution":"This Pulumi package is based on the [`propelauth` Terraform Provider](https://github.com/propelauth/terraform-provider-propelauth).","repository":"https://github.com/propelauth/terraform-provider-propelauth","publisher":"propelauth","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"propelauth"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from propelauth.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/propelauth/terraform-provider-propelauth)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-propelauth` repo](https://github.com/propelauth/terraform-provider-propelauth/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/propelauth/terraform-provider-propelauth)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-propelauth` repo](https://github.com/propelauth/terraform-provider-propelauth/issues).","respectSchemaVersion":true}},"config":{"variables":{"apiKey":{"type":"string","description":"A PropelAuth Infrastructure Integration Key for your project. You can generate one on the Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_API_KEY environment variable.","secret":true},"projectId":{"type":"string","description":"Your PropelAuth Project ID. This can be retrieved from Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_PROJECT_ID environment variable."},"tenantId":{"type":"string","description":"Your PropelAuth Tenant ID. This can be retrieved from Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_TENANT_ID environment variable."}}},"types":{"propelauth:index/ApiKeySettingsApiKeyConfig:ApiKeySettingsApiKeyConfig":{"properties":{"expirationOptions":{"$ref":"#/types/propelauth:index%2FApiKeySettingsApiKeyConfigExpirationOptions:ApiKeySettingsApiKeyConfigExpirationOptions","description":"API Key Expiration Options. This is for setting the options available to your users when creating an API key.\n"}},"type":"object","required":["expirationOptions"]},"propelauth:index/ApiKeySettingsApiKeyConfigExpirationOptions:ApiKeySettingsApiKeyConfigExpirationOptions":{"properties":{"default":{"type":"string","description":"The default expiration option for an API key. Valid values are `TwoWeeks`, `OneMonth`, `ThreeMonths`, `SixMonths`, `OneYear`, and `Never`.\n"},"options":{"type":"array","items":{"type":"string"},"description":"The options available for the expiration of an API key. Valid values are `TwoWeeks`, `OneMonth`, `ThreeMonths`, `SixMonths`, `OneYear`, and `Never`.\n"}},"type":"object","required":["default","options"]},"propelauth:index/ApiKeySettingsOrgApiKeyRateLimit:ApiKeySettingsOrgApiKeyRateLimit":{"properties":{"allowPerPeriod":{"type":"number","description":"The number of requests allowed per period.\n"},"periodSize":{"type":"number","description":"The number of \u003cspan pulumi-lang-nodejs=\"`periodType`\" pulumi-lang-dotnet=\"`PeriodType`\" pulumi-lang-go=\"`periodType`\" pulumi-lang-python=\"`period_type`\" pulumi-lang-yaml=\"`periodType`\" pulumi-lang-java=\"`periodType`\"\u003e`period_type`\u003c/span\u003e units for calculating and applying your rate limit.\n"},"periodType":{"type":"string","description":"The unit of time for time for calculating and applying your rate limit. Valid values are \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`minutes`\" pulumi-lang-dotnet=\"`Minutes`\" pulumi-lang-go=\"`minutes`\" pulumi-lang-python=\"`minutes`\" pulumi-lang-yaml=\"`minutes`\" pulumi-lang-java=\"`minutes`\"\u003e`minutes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hours`\" pulumi-lang-dotnet=\"`Hours`\" pulumi-lang-go=\"`hours`\" pulumi-lang-python=\"`hours`\" pulumi-lang-yaml=\"`hours`\" pulumi-lang-java=\"`hours`\"\u003e`hours`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e.\n"}},"type":"object","required":["allowPerPeriod","periodSize","periodType"]},"propelauth:index/ApiKeySettingsPersonalApiKeyRateLimit:ApiKeySettingsPersonalApiKeyRateLimit":{"properties":{"allowPerPeriod":{"type":"number","description":"The number of requests allowed per period.\n"},"periodSize":{"type":"number","description":"The number of \u003cspan pulumi-lang-nodejs=\"`periodType`\" pulumi-lang-dotnet=\"`PeriodType`\" pulumi-lang-go=\"`periodType`\" pulumi-lang-python=\"`period_type`\" pulumi-lang-yaml=\"`periodType`\" pulumi-lang-java=\"`periodType`\"\u003e`period_type`\u003c/span\u003e units for calculating and applying your rate limit.\n"},"periodType":{"type":"string","description":"The unit of time for time for calculating and applying your rate limit. Valid values are \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`minutes`\" pulumi-lang-dotnet=\"`Minutes`\" pulumi-lang-go=\"`minutes`\" pulumi-lang-python=\"`minutes`\" pulumi-lang-yaml=\"`minutes`\" pulumi-lang-java=\"`minutes`\"\u003e`minutes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hours`\" pulumi-lang-dotnet=\"`Hours`\" pulumi-lang-go=\"`hours`\" pulumi-lang-python=\"`hours`\" pulumi-lang-yaml=\"`hours`\" pulumi-lang-java=\"`hours`\"\u003e`hours`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e.\n"}},"type":"object","required":["allowPerPeriod","periodSize","periodType"]},"propelauth:index/CustomDomainVerificationTimeouts:CustomDomainVerificationTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"}},"type":"object"},"propelauth:index/DarkmodeThemeLoginPageTheme:DarkmodeThemeLoginPageTheme":{"properties":{"backgroundType":{"type":"string","description":"The type of background for the login page. Options include `Solid`, `Gradient`, and `Image`. The default value is `Solid`\n"},"borderColor":{"type":"string","description":"The color of the borders in the login page. The default value is `#e4e4e4`\n"},"errorButtonTextColor":{"type":"string","description":"The color of the text on error messages and cancel button in the login page. The default value is `#ffffff`\n"},"errorColor":{"type":"string","description":"The color for error messages and cancel button in the login page. The default value is `#cf222e`\n"},"frameBackgroundColor":{"type":"string","description":"The background color within the frame in the login page. If the the \u003cspan pulumi-lang-nodejs=\"`layout`\" pulumi-lang-dotnet=\"`Layout`\" pulumi-lang-go=\"`layout`\" pulumi-lang-python=\"`layout`\" pulumi-lang-yaml=\"`layout`\" pulumi-lang-java=\"`layout`\"\u003e`layout`\u003c/span\u003e is `Frameless`, this color is applied to the background of the input components on the page. The default value is `#ffffff`\n"},"frameTextColor":{"type":"string","description":"The color of the text within the frame in the login page.  If the the \u003cspan pulumi-lang-nodejs=\"`layout`\" pulumi-lang-dotnet=\"`Layout`\" pulumi-lang-go=\"`layout`\" pulumi-lang-python=\"`layout`\" pulumi-lang-yaml=\"`layout`\" pulumi-lang-java=\"`layout`\"\u003e`layout`\u003c/span\u003e is `Frameless`, this color is applied to text within input components on the page. The default value is `#0f0f0f`\n"},"gradientBackgroundParameters":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageThemeGradientBackgroundParameters:DarkmodeThemeLoginPageThemeGradientBackgroundParameters","description":"The parameters required for a gradient background in the login page\n"},"imageBackgroundParameters":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageThemeImageBackgroundParameters:DarkmodeThemeLoginPageThemeImageBackgroundParameters","description":"The parameters required for an image background in the login page\n"},"layout":{"type":"string","description":"The layout of the login page. Options include `Frame`, `Frameless`, and `SplitScreen`. The default value is `Frame`\n"},"primaryColor":{"type":"string","description":"The primary color of action buttons and links in the login page. The default value is `#50c878`\n"},"primaryTextColor":{"type":"string","description":"The color of the text on action buttons in the login page. The default value is `#f7f7f7`\n"},"solidBackgroundParameters":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageThemeSolidBackgroundParameters:DarkmodeThemeLoginPageThemeSolidBackgroundParameters","description":"The parameters required for a solid background in the login page\n"},"splitLoginPageParameters":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageThemeSplitLoginPageParameters:DarkmodeThemeLoginPageThemeSplitLoginPageParameters","description":"The extra parameters required to configure a split login page\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundType","borderColor","errorButtonTextColor","errorColor","frameBackgroundColor","frameTextColor","layout","primaryColor","primaryTextColor"]}}},"propelauth:index/DarkmodeThemeLoginPageThemeGradientBackgroundParameters:DarkmodeThemeLoginPageThemeGradientBackgroundParameters":{"properties":{"backgroundGradientAngle":{"type":"number","description":"The angle of the gradient background in the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`135`\" pulumi-lang-dotnet=\"`135`\" pulumi-lang-go=\"`135`\" pulumi-lang-python=\"`135`\" pulumi-lang-yaml=\"`135`\" pulumi-lang-java=\"`135`\"\u003e`135`\u003c/span\u003e\n"},"backgroundGradientEndColor":{"type":"string","description":"The end color of a gradient background in the login page. The default value is `#f7f7f7`\n"},"backgroundGradientStartColor":{"type":"string","description":"The start color of a gradient background in the login page. The default value is `#f7f7f7`\n"},"backgroundTextColor":{"type":"string","description":"The color of the text on a gradient background in the login page. The default value is `#363636`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundGradientAngle","backgroundGradientEndColor","backgroundGradientStartColor","backgroundTextColor"]}}},"propelauth:index/DarkmodeThemeLoginPageThemeImageBackgroundParameters:DarkmodeThemeLoginPageThemeImageBackgroundParameters":{"properties":{"backgroundTextColor":{"type":"string","description":"The color of the text on an image background in the login page. The default value is `#363636`\n"},"defaultBackgroundColor":{"type":"string","description":"The default color behind the background image in the login page. The default value is `#f7f7f7`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundTextColor","defaultBackgroundColor"]}}},"propelauth:index/DarkmodeThemeLoginPageThemeSolidBackgroundParameters:DarkmodeThemeLoginPageThemeSolidBackgroundParameters":{"properties":{"backgroundColor":{"type":"string","description":"The color of a solid background in the login page. The default value is `#f7f7f7`\n"},"backgroundTextColor":{"type":"string","description":"The color of the text on a solid background in the login page. The default value is `#363636`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundColor","backgroundTextColor"]}}},"propelauth:index/DarkmodeThemeLoginPageThemeSplitLoginPageParameters:DarkmodeThemeLoginPageThemeSplitLoginPageParameters":{"properties":{"contentType":{"type":"string","description":"The type of content displayed on the side of the screen opposite the login components. Currently, options include `None` and `Text`. The default value is `None`\n"},"direction":{"type":"string","description":"The side of the screen where all the login components are placed. Options include `Left` and `Right`. The default value is `Left`\n"},"header":{"type":"string","description":"The header text displayed on the side of the screen opposite the login components. This is only displayed if \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is `Text`\n"},"secondaryBackgroundTextColor":{"type":"string","description":"The color of the subheader on the side of the screen opposite the login components. The header text in the same area uses the \u003cspan pulumi-lang-nodejs=\"`backgroundTextColor`\" pulumi-lang-dotnet=\"`BackgroundTextColor`\" pulumi-lang-go=\"`backgroundTextColor`\" pulumi-lang-python=\"`background_text_color`\" pulumi-lang-yaml=\"`backgroundTextColor`\" pulumi-lang-java=\"`backgroundTextColor`\"\u003e`background_text_color`\u003c/span\u003e. The default value is `#363636`\n"},"subheader":{"type":"string","description":"The subheader text displayed on the side of the screen opposite the login components. This is only displayed if \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is `Text`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["contentType","direction","header","secondaryBackgroundTextColor","subheader"]}}},"propelauth:index/DarkmodeThemeManagementPagesTheme:DarkmodeThemeManagementPagesTheme":{"properties":{"actionButtonColor":{"type":"string","description":"The color of action buttons in the management pages. The default value is `#50c878`\n"},"actionButtonTextColor":{"type":"string","description":"The color of the text on action buttons in the management pages. The default value is `#f7f7f7`\n"},"borderColor":{"type":"string","description":"The color of the border between the navbar and the main content area in the management pages. The default value is `#e4e4e4`\n"},"displayNavbar":{"type":"boolean","description":"If true, the sidebar is displayed in the management pages. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"mainBackgroundColor":{"type":"string","description":"The background color of the main content area in the management pages. The default value is `#f7f7f7`\n"},"mainTextColor":{"type":"string","description":"The color of the text in the main content area of the management pages. The default value is `#363636`\n"},"navbarBackgroundColor":{"type":"string","description":"The background color of the navigation bar in the management pages. The default value is `#ffffff`\n"},"navbarTextColor":{"type":"string","description":"The color of the text in the navigation bar in the management pages. The default value is `#0f0f0f`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["actionButtonColor","actionButtonTextColor","borderColor","displayNavbar","mainBackgroundColor","mainTextColor","navbarBackgroundColor","navbarTextColor"]}}},"propelauth:index/FeIntegrationAdditionalFeLocation:FeIntegrationAdditionalFeLocation":{"properties":{"allowAnySubdomain":{"type":"boolean","description":"If true, any subdomain of the domain to integrate with PropelAuth is also allowed to access user info. The default value is false.\n"},"domain":{"type":"string","description":"A domain that will also be allowed to access user information. The domain must include a scheme. For example, `https://example.com`.\n"}},"type":"object","required":["domain"],"language":{"nodejs":{"requiredOutputs":["allowAnySubdomain","domain"]}}},"propelauth:index/OrganizationConfigurationCustomerOrgAuditLogSettings:OrganizationConfigurationCustomerOrgAuditLogSettings":{"properties":{"allOrgsCanViewTheirAuditLog":{"type":"boolean","description":"If true, all of your customer organization will automatically have access to this feature. Otherwise, you will need to enable it for each organization individually.\n"},"enabled":{"type":"boolean","description":"If enabled, your customer organizations will have access to their own audit log.\n"},"includeApiKeyActions":{"type":"boolean","description":"If true, the audit log will include actions that were triggered by your BE service utilizing PropelAuth APIs.\n"},"includeEmployeeActions":{"type":"boolean","description":"If true, the audit log will include actions that were triggered by a member of your team using the PropelAuth dashboard. The person who triggered the action will be anonymous to your customer.\n"},"includeImpersonation":{"type":"boolean","description":"If true, the audit log will include actions that were triggered by a member of your team impersonating one of their organization members. The impersonator will be anonymous to your customer.\n"}},"type":"object","required":["allOrgsCanViewTheirAuditLog","enabled","includeApiKeyActions","includeEmployeeActions","includeImpersonation"]},"propelauth:index/RolesAndPermissionsPermission:RolesAndPermissionsPermission":{"properties":{"description":{"type":"string","description":"A description of the permission. This is a human readable description of what the permission allows.\n"},"displayName":{"type":"string","description":"The display name of the permission. This is the human readable name of the permission. If not provided, the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will be used.\n"},"name":{"type":"string","description":"The name of the permission. This should be a unique identifier for the permission.\n"}},"type":"object","required":["name"]},"propelauth:index/RolesAndPermissionsRoles:RolesAndPermissionsRoles":{"properties":{"canChangeRoles":{"type":"boolean","description":"If true, users with this role in the org can change the roles of other users in the organization. The default is false.\n"},"canDeleteOrg":{"type":"boolean","description":"If true, users with this role in the org can delete the organization. The default is false.\n"},"canEditOrgAccess":{"type":"boolean","description":"If true, users with this role in the org can edit the organization's access settings. These settings incluede what email domains are included and whether 2FA is enforced for the org. The default is false.\n"},"canInvite":{"type":"boolean","description":"If true, users with this role in the org can invite other users to the organization. The default is false.\n"},"canManageApiKeys":{"type":"boolean","description":"If true, users with this role in the org can manage API keys for the organization. The default is false.\n"},"canRemoveUsers":{"type":"boolean","description":"If true, users with this role in the org can remove other users from the organization. The default is false.\n"},"canSetupSaml":{"type":"boolean","description":"If true, users with this role in the org can setup enterprise SSO for the organization. The default is false.\n"},"canUpdateOrgMetadata":{"type":"boolean","description":"If true, users with this role in the org can update the organization's metadata. This includes changing the name of the organization. The default is false.\n"},"canViewOtherMembers":{"type":"boolean","description":"If true, users with this role in the org can view other members of the organization. The default is true.\n"},"description":{"type":"string","description":"A human-readable description of the role.\n"},"disabled":{"type":"boolean","description":"If true, this role is disabled and cannot be assigned to users. It is only useful if you intend to use the role in non-default role mappings exclusively. The default is false.\n"},"isInternal":{"type":"boolean","description":"If true, this role is an internal role and cannot be assigned to or viewed by end users. The default is false.\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"A list of permissions specific to your application that are assigned to this role.\n"},"replacingRole":{"type":"string","description":"The name of a role that no longer exists but this role is replacing. This should only be used if you are attempting to change the name of an existing role and want to ensure that users who had the old role now have this role. The \u003cspan pulumi-lang-nodejs=\"`replacingRole`\" pulumi-lang-dotnet=\"`ReplacingRole`\" pulumi-lang-go=\"`replacingRole`\" pulumi-lang-python=\"`replacing_role`\" pulumi-lang-yaml=\"`replacingRole`\" pulumi-lang-java=\"`replacingRole`\"\u003e`replacing_role`\u003c/span\u003e should not exist in the \u003cspan pulumi-lang-nodejs=\"`roles`\" pulumi-lang-dotnet=\"`Roles`\" pulumi-lang-go=\"`roles`\" pulumi-lang-python=\"`roles`\" pulumi-lang-yaml=\"`roles`\" pulumi-lang-java=\"`roles`\"\u003e`roles`\u003c/span\u003e map.\n"},"rolesCanManages":{"type":"array","items":{"type":"string"},"description":"A list of roles that this role can manage. This is only relevant if \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is true. If \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is false, the other roles that a role can manage is defined by the order in \u003cspan pulumi-lang-nodejs=\"`roleHierarchy`\" pulumi-lang-dotnet=\"`RoleHierarchy`\" pulumi-lang-go=\"`roleHierarchy`\" pulumi-lang-python=\"`role_hierarchy`\" pulumi-lang-yaml=\"`roleHierarchy`\" pulumi-lang-java=\"`roleHierarchy`\"\u003e`role_hierarchy`\u003c/span\u003e where the first role is able to manage every other role including itself.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["canChangeRoles","canDeleteOrg","canEditOrgAccess","canInvite","canManageApiKeys","canRemoveUsers","canSetupSaml","canUpdateOrgMetadata","canViewOtherMembers","disabled","isInternal","permissions","rolesCanManages"]}}},"propelauth:index/ThemeLoginPageTheme:ThemeLoginPageTheme":{"properties":{"backgroundType":{"type":"string","description":"The type of background for the login page. Options include `Solid`, `Gradient`, and `Image`. The default value is `Solid`\n"},"borderColor":{"type":"string","description":"The color of the borders in the login page. The default value is `#e4e4e4`\n"},"errorButtonTextColor":{"type":"string","description":"The color of the text on error messages and cancel button in the login page. The default value is `#ffffff`\n"},"errorColor":{"type":"string","description":"The color for error messages and cancel button in the login page. The default value is `#cf222e`\n"},"frameBackgroundColor":{"type":"string","description":"The background color within the frame in the login page. If the the \u003cspan pulumi-lang-nodejs=\"`layout`\" pulumi-lang-dotnet=\"`Layout`\" pulumi-lang-go=\"`layout`\" pulumi-lang-python=\"`layout`\" pulumi-lang-yaml=\"`layout`\" pulumi-lang-java=\"`layout`\"\u003e`layout`\u003c/span\u003e is `Frameless`, this color is applied to the background of the input components on the page. The default value is `#ffffff`\n"},"frameTextColor":{"type":"string","description":"The color of the text within the frame in the login page.  If the the \u003cspan pulumi-lang-nodejs=\"`layout`\" pulumi-lang-dotnet=\"`Layout`\" pulumi-lang-go=\"`layout`\" pulumi-lang-python=\"`layout`\" pulumi-lang-yaml=\"`layout`\" pulumi-lang-java=\"`layout`\"\u003e`layout`\u003c/span\u003e is `Frameless`, this color is applied to text within input components on the page. The default value is `#0f0f0f`\n"},"gradientBackgroundParameters":{"$ref":"#/types/propelauth:index%2FThemeLoginPageThemeGradientBackgroundParameters:ThemeLoginPageThemeGradientBackgroundParameters","description":"The parameters required for a gradient background in the login page\n"},"imageBackgroundParameters":{"$ref":"#/types/propelauth:index%2FThemeLoginPageThemeImageBackgroundParameters:ThemeLoginPageThemeImageBackgroundParameters","description":"The parameters required for an image background in the login page\n"},"layout":{"type":"string","description":"The layout of the login page. Options include `Frame`, `Frameless`, and `SplitScreen`. The default value is `Frame`\n"},"primaryColor":{"type":"string","description":"The primary color of action buttons and links in the login page. The default value is `#50c878`\n"},"primaryTextColor":{"type":"string","description":"The color of the text on action buttons in the login page. The default value is `#f7f7f7`\n"},"solidBackgroundParameters":{"$ref":"#/types/propelauth:index%2FThemeLoginPageThemeSolidBackgroundParameters:ThemeLoginPageThemeSolidBackgroundParameters","description":"The parameters required for a solid background in the login page\n"},"splitLoginPageParameters":{"$ref":"#/types/propelauth:index%2FThemeLoginPageThemeSplitLoginPageParameters:ThemeLoginPageThemeSplitLoginPageParameters","description":"The extra parameters required to configure a split login page\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundType","borderColor","errorButtonTextColor","errorColor","frameBackgroundColor","frameTextColor","layout","primaryColor","primaryTextColor"]}}},"propelauth:index/ThemeLoginPageThemeGradientBackgroundParameters:ThemeLoginPageThemeGradientBackgroundParameters":{"properties":{"backgroundGradientAngle":{"type":"number","description":"The angle of the gradient background in the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`135`\" pulumi-lang-dotnet=\"`135`\" pulumi-lang-go=\"`135`\" pulumi-lang-python=\"`135`\" pulumi-lang-yaml=\"`135`\" pulumi-lang-java=\"`135`\"\u003e`135`\u003c/span\u003e\n"},"backgroundGradientEndColor":{"type":"string","description":"The end color of a gradient background in the login page. The default value is `#f7f7f7`\n"},"backgroundGradientStartColor":{"type":"string","description":"The start color of a gradient background in the login page. The default value is `#f7f7f7`\n"},"backgroundTextColor":{"type":"string","description":"The color of the text on a gradient background in the login page. The default value is `#363636`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundGradientAngle","backgroundGradientEndColor","backgroundGradientStartColor","backgroundTextColor"]}}},"propelauth:index/ThemeLoginPageThemeImageBackgroundParameters:ThemeLoginPageThemeImageBackgroundParameters":{"properties":{"backgroundTextColor":{"type":"string","description":"The color of the text on an image background in the login page. The default value is `#363636`\n"},"defaultBackgroundColor":{"type":"string","description":"The default color behind the background image in the login page. The default value is `#f7f7f7`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundTextColor","defaultBackgroundColor"]}}},"propelauth:index/ThemeLoginPageThemeSolidBackgroundParameters:ThemeLoginPageThemeSolidBackgroundParameters":{"properties":{"backgroundColor":{"type":"string","description":"The color of a solid background in the login page. The default value is `#f7f7f7`\n"},"backgroundTextColor":{"type":"string","description":"The color of the text on a solid background in the login page. The default value is `#363636`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backgroundColor","backgroundTextColor"]}}},"propelauth:index/ThemeLoginPageThemeSplitLoginPageParameters:ThemeLoginPageThemeSplitLoginPageParameters":{"properties":{"contentType":{"type":"string","description":"The type of content displayed on the side of the screen opposite the login components. Currently, options include `None` and `Text`. The default value is `None`\n"},"direction":{"type":"string","description":"The side of the screen where all the login components are placed. Options include `Left` and `Right`. The default value is `Left`\n"},"header":{"type":"string","description":"The header text displayed on the side of the screen opposite the login components. This is only displayed if \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is `Text`\n"},"secondaryBackgroundTextColor":{"type":"string","description":"The color of the subheader on the side of the screen opposite the login components. The header text in the same area uses the \u003cspan pulumi-lang-nodejs=\"`backgroundTextColor`\" pulumi-lang-dotnet=\"`BackgroundTextColor`\" pulumi-lang-go=\"`backgroundTextColor`\" pulumi-lang-python=\"`background_text_color`\" pulumi-lang-yaml=\"`backgroundTextColor`\" pulumi-lang-java=\"`backgroundTextColor`\"\u003e`background_text_color`\u003c/span\u003e. The default value is `#363636`\n"},"subheader":{"type":"string","description":"The subheader text displayed on the side of the screen opposite the login components. This is only displayed if \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is `Text`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["contentType","direction","header","secondaryBackgroundTextColor","subheader"]}}},"propelauth:index/ThemeManagementPagesTheme:ThemeManagementPagesTheme":{"properties":{"actionButtonColor":{"type":"string","description":"The color of action buttons in the management pages. The default value is `#50c878`\n"},"actionButtonTextColor":{"type":"string","description":"The color of the text on action buttons in the management pages. The default value is `#f7f7f7`\n"},"borderColor":{"type":"string","description":"The color of the border between the navbar and the main content area in the management pages. The default value is `#e4e4e4`\n"},"displayNavbar":{"type":"boolean","description":"If true, the sidebar is displayed in the management pages. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"mainBackgroundColor":{"type":"string","description":"The background color of the main content area in the management pages. The default value is `#f7f7f7`\n"},"mainTextColor":{"type":"string","description":"The color of the text in the main content area of the management pages. The default value is `#363636`\n"},"navbarBackgroundColor":{"type":"string","description":"The background color of the navigation bar in the management pages. The default value is `#ffffff`\n"},"navbarTextColor":{"type":"string","description":"The color of the text in the navigation bar in the management pages. The default value is `#0f0f0f`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["actionButtonColor","actionButtonTextColor","borderColor","displayNavbar","mainBackgroundColor","mainTextColor","navbarBackgroundColor","navbarTextColor"]}}},"propelauth:index/UserPropertySettingsCustomProperty:UserPropertySettingsCustomProperty":{"properties":{"collectOnSignup":{"type":"boolean","description":"Whether the property should be collected from new users during the sign up flow. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"collectViaSaml":{"type":"boolean","description":"Whether the property should be collected for users during the enterprise SSO login flow. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"displayName":{"type":"string","description":"The field name users see in the UI for the property.\n"},"enumValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values for the property. This is only required for the `Enum` field type.\n"},"fieldType":{"type":"string","description":"The type of the field. Accepted values are `Checkbox`, `Date`, `Enum`, `Integer`, `Json`, `LongText`, `Text`, `Toggle`, and `Url`. Once set, this cannot be changed.\n"},"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isUserFacing":{"type":"boolean","description":"Whether the property should be displayed in the user's account page hosted by PropelAuth. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The field name used to identify the property in the API and SDKs (e.g. external_id). It cannot be changed after creation.\n"},"required":{"type":"boolean","description":"Whether the property is required for users. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"requiredBy":{"type":"number","description":"In epoch time. Only accounts created after this time are required to provide this field. For example, a value of 0 means all accounts are required to provide this field. The default value is 0.\n"},"showInAccount":{"type":"boolean","description":"Whether the property should be displayed in the user's account page hosted by PropelAuth. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"userWritable":{"type":"string","description":"This setting determines whether the user can edit the value of the property and how many times. Options are `Write`, `Read`, and `WriteIfUnset`. The default value is `Write`\n"}},"type":"object","required":["displayName","fieldType","name"],"language":{"nodejs":{"requiredOutputs":["collectOnSignup","collectViaSaml","displayName","fieldType","inJwt","isUserFacing","name","required","requiredBy","showInAccount","userWritable"]}}},"propelauth:index/UserPropertySettingsMetadataProperty:UserPropertySettingsMetadataProperty":{"properties":{"collectViaSaml":{"type":"boolean","description":"Whether the property should be collected for users during the enterprise SSO login flow. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["collectViaSaml","inJwt"]}}},"propelauth:index/UserPropertySettingsNameProperty:UserPropertySettingsNameProperty":{"properties":{"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["inJwt"]}}},"propelauth:index/UserPropertySettingsPhoneNumberProperty:UserPropertySettingsPhoneNumberProperty":{"properties":{"collectViaSaml":{"type":"boolean","description":"Whether the property should be collected for users during the enterprise SSO login flow. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"displayName":{"type":"string","description":"The field name users see in the UI for the property. The default value is `Phone number`.\n"},"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"required":{"type":"boolean","description":"Whether the property is required for users. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"requiredBy":{"type":"number","description":"In epoch time. Only accounts created after this time are required to provide this field. For example, a value of 0 means all accounts are required to provide this field. The default value is 0.\n"},"showInAccount":{"type":"boolean","description":"Whether the property should be displayed in the user's account page hosted by PropelAuth. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"userWritable":{"type":"string","description":"This setting determines whether the user can edit the value of the property and how many times. Options are `Write`, `Read`, and `WriteIfUnset`. The default value is `WriteIfUnset`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["collectViaSaml","displayName","inJwt","required","requiredBy","showInAccount","userWritable"]}}},"propelauth:index/UserPropertySettingsPictureUrlProperty:UserPropertySettingsPictureUrlProperty":{"properties":{"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["inJwt"]}}},"propelauth:index/UserPropertySettingsReferralSourceProperty:UserPropertySettingsReferralSourceProperty":{"properties":{"collectViaSaml":{"type":"boolean","description":"Whether the property should be collected for users during the enterprise SSO login flow. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"displayName":{"type":"string","description":"The field name users see in the UI for the property. The default value is `How did you hear about us?`.\n"},"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"options":{"type":"array","items":{"type":"string"},"description":"A list of options for the referral source property. If this is unset, the default options will be used. These are `Search engine`, `Recommendation`, `Social media`, `Blog post`, `Other`.\n"},"required":{"type":"boolean","description":"Whether the property is required for users. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"requiredBy":{"type":"number","description":"In epoch time. Only accounts created after this time are required to provide this field. For example, a value of 0 means all accounts are required to provide this field. The default value is 0.\n"},"showInAccount":{"type":"boolean","description":"Whether the property should be displayed in the user's account page hosted by PropelAuth. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"userWritable":{"type":"string","description":"This setting determines whether the user can edit the value of the property and how many times. Options are `Write`, `Read`, and `WriteIfUnset`. The default value is `WriteIfUnset`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["collectViaSaml","displayName","inJwt","options","required","requiredBy","showInAccount","userWritable"]}}},"propelauth:index/UserPropertySettingsTosProperty:UserPropertySettingsTosProperty":{"properties":{"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"required":{"type":"boolean","description":"Whether the property is required for users. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"requiredBy":{"type":"number","description":"In epoch time. Only accounts created after this time are required to provide this field. For example, a value of 0 means all accounts are required to provide this field. The default value is 0.\n"},"tosLinks":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsTosPropertyTosLink:UserPropertySettingsTosPropertyTosLink"},"description":"A list of Terms of Service links. Each link must have a URL and a name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["inJwt","required","requiredBy"]}}},"propelauth:index/UserPropertySettingsTosPropertyTosLink:UserPropertySettingsTosPropertyTosLink":{"properties":{"name":{"type":"string","description":"The name of the Terms of Service link.\n"},"url":{"type":"string","description":"The URL of the Terms of Service link.\n"}},"type":"object","required":["name","url"]},"propelauth:index/UserPropertySettingsUsernameProperty:UserPropertySettingsUsernameProperty":{"properties":{"displayName":{"type":"string","description":"The field name users see in the UI for the property. The default value is `Username`.\n"},"inJwt":{"type":"boolean","description":"Whether the property should be included in the user token. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","inJwt"]}}}},"provider":{"description":"The provider type for the propelauth package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"apiKey":{"type":"string","description":"A PropelAuth Infrastructure Integration Key for your project. You can generate one on the Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_API_KEY environment variable.","secret":true},"projectId":{"type":"string","description":"Your PropelAuth Project ID. This can be retrieved from Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_PROJECT_ID environment variable."},"tenantId":{"type":"string","description":"Your PropelAuth Tenant ID. This can be retrieved from Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_TENANT_ID environment variable."}},"type":"object","inputProperties":{"apiKey":{"type":"string","description":"A PropelAuth Infrastructure Integration Key for your project. You can generate one on the Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_API_KEY environment variable.","secret":true},"projectId":{"type":"string","description":"Your PropelAuth Project ID. This can be retrieved from Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_PROJECT_ID environment variable."},"tenantId":{"type":"string","description":"Your PropelAuth Tenant ID. This can be retrieved from Infrastructure Integration page of the PropelAuth Dashboard. If not provided, the provider will attempt to use the PROPELAUTH_TENANT_ID environment variable."}},"methods":{"terraformConfig":"pulumi:providers:propelauth/terraformConfig"}},"resources":{"propelauth:index/apiKeyAlert:ApiKeyAlert":{"description":"API Key Alerting. This sets up alerting for end users emailing them when their API key is about to expire. Note: API key alerts are only available on some pricing plans. These alerts are only sent for users in production environments and can only be set up if you have a production environment.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Create a PropelAuth API key alert.\nconst example = new propelauth.ApiKeyAlert(\"example\", {advanceNoticeDays: 30}, {\n    dependsOn: [myProdDomainVerification],\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Create a PropelAuth API key alert.\nexample = propelauth.ApiKeyAlert(\"example\", advance_notice_days=30,\nopts = pulumi.ResourceOptions(depends_on=[my_prod_domain_verification]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a PropelAuth API key alert.\n    var example = new Propelauth.ApiKeyAlert(\"example\", new()\n    {\n        AdvanceNoticeDays = 30,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myProdDomainVerification,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a PropelAuth API key alert.\n\t\t_, err := propelauth.NewApiKeyAlert(ctx, \"example\", \u0026propelauth.ApiKeyAlertArgs{\n\t\t\tAdvanceNoticeDays: pulumi.Float64(30),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyProdDomainVerification,\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.propelauth.ApiKeyAlert;\nimport com.pulumi.propelauth.ApiKeyAlertArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a PropelAuth API key alert.\n        var example = new ApiKeyAlert(\"example\", ApiKeyAlertArgs.builder()\n            .advanceNoticeDays(30.0)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(myProdDomainVerification)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a PropelAuth API key alert.\n  example:\n    type: propelauth:ApiKeyAlert\n    properties:\n      advanceNoticeDays: 30\n    options:\n      dependsOn:\n        - ${myProdDomainVerification}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one api_key_alert per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/apiKeyAlert:ApiKeyAlert but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/apiKeyAlert:ApiKeyAlert example arbitrary_string_here\n```\n\n","properties":{"advanceNoticeDays":{"type":"number","description":"The number of days before an API key expires by which time end users will receive an email alert.\n"}},"type":"object","required":["advanceNoticeDays"],"inputProperties":{"advanceNoticeDays":{"type":"number","description":"The number of days before an API key expires by which time end users will receive an email alert.\n"}},"requiredInputs":["advanceNoticeDays"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiKeyAlert resources.\n","properties":{"advanceNoticeDays":{"type":"number","description":"The number of days before an API key expires by which time end users will receive an email alert.\n"}},"type":"object"}},"propelauth:index/apiKeySettings:ApiKeySettings":{"description":"Api Key Configurations. API Key authentication allows you to create API Keys for your end users as well as your organizations in order to protect requests they make to your product. This resource is for configuring the API key settings in your project.\n\nNote: API Keys are only available for use in non-test environments for some pricing plans.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Configure the API key settings for your PropelAuth project.\nconst example = new propelauth.ApiKeySettings(\"example\", {\n    personalApiKeysEnabled: true,\n    orgApiKeysEnabled: true,\n    invalidateOrgApiKeyUponUserRemoval: true,\n    apiKeyConfig: {\n        expirationOptions: {\n            options: [\n                \"TwoWeeks\",\n                \"OneMonth\",\n                \"ThreeMonths\",\n            ],\n            \"default\": \"ThreeMonths\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Configure the API key settings for your PropelAuth project.\nexample = propelauth.ApiKeySettings(\"example\",\n    personal_api_keys_enabled=True,\n    org_api_keys_enabled=True,\n    invalidate_org_api_key_upon_user_removal=True,\n    api_key_config={\n        \"expiration_options\": {\n            \"options\": [\n                \"TwoWeeks\",\n                \"OneMonth\",\n                \"ThreeMonths\",\n            ],\n            \"default\": \"ThreeMonths\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Configure the API key settings for your PropelAuth project.\n    var example = new Propelauth.ApiKeySettings(\"example\", new()\n    {\n        PersonalApiKeysEnabled = true,\n        OrgApiKeysEnabled = true,\n        InvalidateOrgApiKeyUponUserRemoval = true,\n        ApiKeyConfig = new Propelauth.Inputs.ApiKeySettingsApiKeyConfigArgs\n        {\n            ExpirationOptions = new Propelauth.Inputs.ApiKeySettingsApiKeyConfigExpirationOptionsArgs\n            {\n                Options = new[]\n                {\n                    \"TwoWeeks\",\n                    \"OneMonth\",\n                    \"ThreeMonths\",\n                },\n                Default = \"ThreeMonths\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Configure the API key settings for your PropelAuth project.\n\t\t_, err := propelauth.NewApiKeySettings(ctx, \"example\", \u0026propelauth.ApiKeySettingsArgs{\n\t\t\tPersonalApiKeysEnabled:             pulumi.Bool(true),\n\t\t\tOrgApiKeysEnabled:                  pulumi.Bool(true),\n\t\t\tInvalidateOrgApiKeyUponUserRemoval: pulumi.Bool(true),\n\t\t\tApiKeyConfig: \u0026propelauth.ApiKeySettingsApiKeyConfigArgs{\n\t\t\t\tExpirationOptions: \u0026propelauth.ApiKeySettingsApiKeyConfigExpirationOptionsArgs{\n\t\t\t\t\tOptions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TwoWeeks\"),\n\t\t\t\t\t\tpulumi.String(\"OneMonth\"),\n\t\t\t\t\t\tpulumi.String(\"ThreeMonths\"),\n\t\t\t\t\t},\n\t\t\t\t\tDefault: pulumi.String(\"ThreeMonths\"),\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.propelauth.ApiKeySettings;\nimport com.pulumi.propelauth.ApiKeySettingsArgs;\nimport com.pulumi.propelauth.inputs.ApiKeySettingsApiKeyConfigArgs;\nimport com.pulumi.propelauth.inputs.ApiKeySettingsApiKeyConfigExpirationOptionsArgs;\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        // Configure the API key settings for your PropelAuth project.\n        var example = new ApiKeySettings(\"example\", ApiKeySettingsArgs.builder()\n            .personalApiKeysEnabled(true)\n            .orgApiKeysEnabled(true)\n            .invalidateOrgApiKeyUponUserRemoval(true)\n            .apiKeyConfig(ApiKeySettingsApiKeyConfigArgs.builder()\n                .expirationOptions(ApiKeySettingsApiKeyConfigExpirationOptionsArgs.builder()\n                    .options(                    \n                        \"TwoWeeks\",\n                        \"OneMonth\",\n                        \"ThreeMonths\")\n                    .default_(\"ThreeMonths\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure the API key settings for your PropelAuth project.\n  example:\n    type: propelauth:ApiKeySettings\n    properties:\n      personalApiKeysEnabled: true\n      orgApiKeysEnabled: true\n      invalidateOrgApiKeyUponUserRemoval: true\n      apiKeyConfig:\n        expirationOptions:\n          options:\n            - TwoWeeks\n            - OneMonth\n            - ThreeMonths\n          default: ThreeMonths\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one api_key_settings per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/apiKeySettings:ApiKeySettings but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/apiKeySettings:ApiKeySettings example arbitrary_string_here\n```\n\n","properties":{"apiKeyConfig":{"$ref":"#/types/propelauth:index%2FApiKeySettingsApiKeyConfig:ApiKeySettingsApiKeyConfig","description":"API Key Configuration. This is for setting the options available to your users when creating an API key.\n"},"invalidateOrgApiKeyUponUserRemoval":{"type":"boolean","description":"If true, invalidate org API keys when the user that created them is removed from the organization. The default setting is false.\n"},"orgApiKeyRateLimit":{"$ref":"#/types/propelauth:index%2FApiKeySettingsOrgApiKeyRateLimit:ApiKeySettingsOrgApiKeyRateLimit","description":"Organization API Key Rate Limit. This sets the rate limit that will be applied to validations on your end users' organizations' API keys. This is calculated and applied per organization for all keys the organization owns as opposed to per key. Note: Rate limits are only available on some pricing plans.\n"},"orgApiKeysEnabled":{"type":"boolean","description":"Allow users to create API keys for their organization. The default setting is false.\n"},"personalApiKeyRateLimit":{"$ref":"#/types/propelauth:index%2FApiKeySettingsPersonalApiKeyRateLimit:ApiKeySettingsPersonalApiKeyRateLimit","description":"Personal API Key Rate Limit. This sets the rate limit that will be applied to validations on your end users' personal API keys. This is calculated and applied per user for all keys they own as opposed to per key.Note: Rate limits are only available on some pricing plans.\n"},"personalApiKeysEnabled":{"type":"boolean","description":"Allow users to create personal API keys. The default setting is false.\n"}},"type":"object","inputProperties":{"apiKeyConfig":{"$ref":"#/types/propelauth:index%2FApiKeySettingsApiKeyConfig:ApiKeySettingsApiKeyConfig","description":"API Key Configuration. This is for setting the options available to your users when creating an API key.\n"},"invalidateOrgApiKeyUponUserRemoval":{"type":"boolean","description":"If true, invalidate org API keys when the user that created them is removed from the organization. The default setting is false.\n"},"orgApiKeyRateLimit":{"$ref":"#/types/propelauth:index%2FApiKeySettingsOrgApiKeyRateLimit:ApiKeySettingsOrgApiKeyRateLimit","description":"Organization API Key Rate Limit. This sets the rate limit that will be applied to validations on your end users' organizations' API keys. This is calculated and applied per organization for all keys the organization owns as opposed to per key. Note: Rate limits are only available on some pricing plans.\n"},"orgApiKeysEnabled":{"type":"boolean","description":"Allow users to create API keys for their organization. The default setting is false.\n"},"personalApiKeyRateLimit":{"$ref":"#/types/propelauth:index%2FApiKeySettingsPersonalApiKeyRateLimit:ApiKeySettingsPersonalApiKeyRateLimit","description":"Personal API Key Rate Limit. This sets the rate limit that will be applied to validations on your end users' personal API keys. This is calculated and applied per user for all keys they own as opposed to per key.Note: Rate limits are only available on some pricing plans.\n"},"personalApiKeysEnabled":{"type":"boolean","description":"Allow users to create personal API keys. The default setting is false.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ApiKeySettings resources.\n","properties":{"apiKeyConfig":{"$ref":"#/types/propelauth:index%2FApiKeySettingsApiKeyConfig:ApiKeySettingsApiKeyConfig","description":"API Key Configuration. This is for setting the options available to your users when creating an API key.\n"},"invalidateOrgApiKeyUponUserRemoval":{"type":"boolean","description":"If true, invalidate org API keys when the user that created them is removed from the organization. The default setting is false.\n"},"orgApiKeyRateLimit":{"$ref":"#/types/propelauth:index%2FApiKeySettingsOrgApiKeyRateLimit:ApiKeySettingsOrgApiKeyRateLimit","description":"Organization API Key Rate Limit. This sets the rate limit that will be applied to validations on your end users' organizations' API keys. This is calculated and applied per organization for all keys the organization owns as opposed to per key. Note: Rate limits are only available on some pricing plans.\n"},"orgApiKeysEnabled":{"type":"boolean","description":"Allow users to create API keys for their organization. The default setting is false.\n"},"personalApiKeyRateLimit":{"$ref":"#/types/propelauth:index%2FApiKeySettingsPersonalApiKeyRateLimit:ApiKeySettingsPersonalApiKeyRateLimit","description":"Personal API Key Rate Limit. This sets the rate limit that will be applied to validations on your end users' personal API keys. This is calculated and applied per user for all keys they own as opposed to per key.Note: Rate limits are only available on some pricing plans.\n"},"personalApiKeysEnabled":{"type":"boolean","description":"Allow users to create personal API keys. The default setting is false.\n"}},"type":"object"}},"propelauth:index/basicAuthConfiguration:BasicAuthConfiguration":{"description":"Basic Auth Configuration. This is for configuring basic authentication, signup, and user-account-management settings in PropelAuth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Configure basic authentication settings for your PropelAuth project.\nconst example = new propelauth.BasicAuthConfiguration(\"example\", {\n    hasPasswordLogin: true,\n    hasPasswordlessLogin: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Configure basic authentication settings for your PropelAuth project.\nexample = propelauth.BasicAuthConfiguration(\"example\",\n    has_password_login=True,\n    has_passwordless_login=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Configure basic authentication settings for your PropelAuth project.\n    var example = new Propelauth.BasicAuthConfiguration(\"example\", new()\n    {\n        HasPasswordLogin = true,\n        HasPasswordlessLogin = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Configure basic authentication settings for your PropelAuth project.\n\t\t_, err := propelauth.NewBasicAuthConfiguration(ctx, \"example\", \u0026propelauth.BasicAuthConfigurationArgs{\n\t\t\tHasPasswordLogin:     pulumi.Bool(true),\n\t\t\tHasPasswordlessLogin: 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.propelauth.BasicAuthConfiguration;\nimport com.pulumi.propelauth.BasicAuthConfigurationArgs;\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        // Configure basic authentication settings for your PropelAuth project.\n        var example = new BasicAuthConfiguration(\"example\", BasicAuthConfigurationArgs.builder()\n            .hasPasswordLogin(true)\n            .hasPasswordlessLogin(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure basic authentication settings for your PropelAuth project.\n  example:\n    type: propelauth:BasicAuthConfiguration\n    properties:\n      hasPasswordLogin: true\n      hasPasswordlessLogin: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one basic_auth_configuration per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/basicAuthConfiguration:BasicAuthConfiguration but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/basicAuthConfiguration:BasicAuthConfiguration example arbitrary_string_here\n```\n\n","properties":{"allUsersMustSetup2fa":{"type":"boolean","description":"If true, all users will be required to use multifactor authentication when logging in. Note: This feature is only available on some pricing plans.\n"},"allowUsersToSignupWithPersonalEmail":{"type":"boolean","description":"If true, your users will be able to sign up using personal email domains (@gmail.com, @yahoo.com, etc.).The default setting is true. This is only enabled if \u003cspan pulumi-lang-nodejs=\"`signupDomainAllowlist`\" pulumi-lang-dotnet=\"`SignupDomainAllowlist`\" pulumi-lang-go=\"`signupDomainAllowlist`\" pulumi-lang-python=\"`signup_domain_allowlist`\" pulumi-lang-yaml=\"`signupDomainAllowlist`\" pulumi-lang-java=\"`signupDomainAllowlist`\"\u003e`signup_domain_allowlist`\u003c/span\u003e is empty.\n"},"hasPasswordLogin":{"type":"boolean","description":"If true, your users will be able to log in using their email and password. The default setting is true.\n"},"hasPasswordlessLogin":{"type":"boolean","description":"If true, your users will be able to log in using a magic link sent to their email. The default setting is false.\n"},"hasPhoneMfa":{"type":"boolean","description":"If true, users will be able to set up SMS as a 2FA method.See `https://docs.propelauth.com/overview/authentication/mfa#sms-mfa` for more information on setting up SMS MFA.\n"},"includeLoginMethod":{"type":"boolean","description":"If true, the login method will be included in the access token. The default setting is false.See `https://docs.propelauth.com/overview/user-management/user-properties#login-method-property` for more information.\n"},"signupDomainAllowlists":{"type":"array","items":{"type":"string"},"description":"A list of email domains that are allowed to sign up. Note: This feature is only available on some pricing plans.\n"},"signupDomainBlocklists":{"type":"array","items":{"type":"string"},"description":"A list of email domains that are blocked from signing up. This is only used if \u003cspan pulumi-lang-nodejs=\"`signupDomainAllowlist`\" pulumi-lang-dotnet=\"`SignupDomainAllowlist`\" pulumi-lang-go=\"`signupDomainAllowlist`\" pulumi-lang-python=\"`signup_domain_allowlist`\" pulumi-lang-yaml=\"`signupDomainAllowlist`\" pulumi-lang-java=\"`signupDomainAllowlist`\"\u003e`signup_domain_allowlist`\u003c/span\u003e is empty.Note: This feature is only available on some pricing plans.\n"},"userAutologoutSeconds":{"type":"number","description":"The number of seconds before a user is automatically logged out. The default setting is 1209600 (14 days).See also \"user*autologout*type\" for more information.\n"},"userAutologoutType":{"type":"string","description":"This sets the behavior for when the counting for \"user*autologout*seconds\" starts. Valid values are \"AfterInactivity\" and the stricter \"AfterLogin\". The default setting is \"AfterInactivity\".\n"},"usersCanChangeEmail":{"type":"boolean","description":"If true, your users will be able to change their email address. The default setting is true.\n"},"usersCanDeleteOwnAccount":{"type":"boolean","description":"If true, your users will be able to delete their own account. The default setting is false.\n"},"waitlistUsersEnabled":{"type":"boolean","description":"If true, you will be able to use the APIs to collect emails before launching. The default setting is false.\n"}},"type":"object","inputProperties":{"allUsersMustSetup2fa":{"type":"boolean","description":"If true, all users will be required to use multifactor authentication when logging in. Note: This feature is only available on some pricing plans.\n"},"allowUsersToSignupWithPersonalEmail":{"type":"boolean","description":"If true, your users will be able to sign up using personal email domains (@gmail.com, @yahoo.com, etc.).The default setting is true. This is only enabled if \u003cspan pulumi-lang-nodejs=\"`signupDomainAllowlist`\" pulumi-lang-dotnet=\"`SignupDomainAllowlist`\" pulumi-lang-go=\"`signupDomainAllowlist`\" pulumi-lang-python=\"`signup_domain_allowlist`\" pulumi-lang-yaml=\"`signupDomainAllowlist`\" pulumi-lang-java=\"`signupDomainAllowlist`\"\u003e`signup_domain_allowlist`\u003c/span\u003e is empty.\n"},"hasPasswordLogin":{"type":"boolean","description":"If true, your users will be able to log in using their email and password. The default setting is true.\n"},"hasPasswordlessLogin":{"type":"boolean","description":"If true, your users will be able to log in using a magic link sent to their email. The default setting is false.\n"},"hasPhoneMfa":{"type":"boolean","description":"If true, users will be able to set up SMS as a 2FA method.See `https://docs.propelauth.com/overview/authentication/mfa#sms-mfa` for more information on setting up SMS MFA.\n"},"includeLoginMethod":{"type":"boolean","description":"If true, the login method will be included in the access token. The default setting is false.See `https://docs.propelauth.com/overview/user-management/user-properties#login-method-property` for more information.\n"},"signupDomainAllowlists":{"type":"array","items":{"type":"string"},"description":"A list of email domains that are allowed to sign up. Note: This feature is only available on some pricing plans.\n"},"signupDomainBlocklists":{"type":"array","items":{"type":"string"},"description":"A list of email domains that are blocked from signing up. This is only used if \u003cspan pulumi-lang-nodejs=\"`signupDomainAllowlist`\" pulumi-lang-dotnet=\"`SignupDomainAllowlist`\" pulumi-lang-go=\"`signupDomainAllowlist`\" pulumi-lang-python=\"`signup_domain_allowlist`\" pulumi-lang-yaml=\"`signupDomainAllowlist`\" pulumi-lang-java=\"`signupDomainAllowlist`\"\u003e`signup_domain_allowlist`\u003c/span\u003e is empty.Note: This feature is only available on some pricing plans.\n"},"userAutologoutSeconds":{"type":"number","description":"The number of seconds before a user is automatically logged out. The default setting is 1209600 (14 days).See also \"user*autologout*type\" for more information.\n"},"userAutologoutType":{"type":"string","description":"This sets the behavior for when the counting for \"user*autologout*seconds\" starts. Valid values are \"AfterInactivity\" and the stricter \"AfterLogin\". The default setting is \"AfterInactivity\".\n"},"usersCanChangeEmail":{"type":"boolean","description":"If true, your users will be able to change their email address. The default setting is true.\n"},"usersCanDeleteOwnAccount":{"type":"boolean","description":"If true, your users will be able to delete their own account. The default setting is false.\n"},"waitlistUsersEnabled":{"type":"boolean","description":"If true, you will be able to use the APIs to collect emails before launching. The default setting is false.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering BasicAuthConfiguration resources.\n","properties":{"allUsersMustSetup2fa":{"type":"boolean","description":"If true, all users will be required to use multifactor authentication when logging in. Note: This feature is only available on some pricing plans.\n"},"allowUsersToSignupWithPersonalEmail":{"type":"boolean","description":"If true, your users will be able to sign up using personal email domains (@gmail.com, @yahoo.com, etc.).The default setting is true. This is only enabled if \u003cspan pulumi-lang-nodejs=\"`signupDomainAllowlist`\" pulumi-lang-dotnet=\"`SignupDomainAllowlist`\" pulumi-lang-go=\"`signupDomainAllowlist`\" pulumi-lang-python=\"`signup_domain_allowlist`\" pulumi-lang-yaml=\"`signupDomainAllowlist`\" pulumi-lang-java=\"`signupDomainAllowlist`\"\u003e`signup_domain_allowlist`\u003c/span\u003e is empty.\n"},"hasPasswordLogin":{"type":"boolean","description":"If true, your users will be able to log in using their email and password. The default setting is true.\n"},"hasPasswordlessLogin":{"type":"boolean","description":"If true, your users will be able to log in using a magic link sent to their email. The default setting is false.\n"},"hasPhoneMfa":{"type":"boolean","description":"If true, users will be able to set up SMS as a 2FA method.See `https://docs.propelauth.com/overview/authentication/mfa#sms-mfa` for more information on setting up SMS MFA.\n"},"includeLoginMethod":{"type":"boolean","description":"If true, the login method will be included in the access token. The default setting is false.See `https://docs.propelauth.com/overview/user-management/user-properties#login-method-property` for more information.\n"},"signupDomainAllowlists":{"type":"array","items":{"type":"string"},"description":"A list of email domains that are allowed to sign up. Note: This feature is only available on some pricing plans.\n"},"signupDomainBlocklists":{"type":"array","items":{"type":"string"},"description":"A list of email domains that are blocked from signing up. This is only used if \u003cspan pulumi-lang-nodejs=\"`signupDomainAllowlist`\" pulumi-lang-dotnet=\"`SignupDomainAllowlist`\" pulumi-lang-go=\"`signupDomainAllowlist`\" pulumi-lang-python=\"`signup_domain_allowlist`\" pulumi-lang-yaml=\"`signupDomainAllowlist`\" pulumi-lang-java=\"`signupDomainAllowlist`\"\u003e`signup_domain_allowlist`\u003c/span\u003e is empty.Note: This feature is only available on some pricing plans.\n"},"userAutologoutSeconds":{"type":"number","description":"The number of seconds before a user is automatically logged out. The default setting is 1209600 (14 days).See also \"user*autologout*type\" for more information.\n"},"userAutologoutType":{"type":"string","description":"This sets the behavior for when the counting for \"user*autologout*seconds\" starts. Valid values are \"AfterInactivity\" and the stricter \"AfterLogin\". The default setting is \"AfterInactivity\".\n"},"usersCanChangeEmail":{"type":"boolean","description":"If true, your users will be able to change their email address. The default setting is true.\n"},"usersCanDeleteOwnAccount":{"type":"boolean","description":"If true, your users will be able to delete their own account. The default setting is false.\n"},"waitlistUsersEnabled":{"type":"boolean","description":"If true, you will be able to use the APIs to collect emails before launching. The default setting is false.\n"}},"type":"object"}},"propelauth:index/beApiKey:BeApiKey":{"description":"Backend API Key resource. This is for configuring the basic BE API key information in PropelAuth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Create a PropelAuth API key for use in the Back End of your application.\nconst example = new propelauth.BeApiKey(\"example\", {\n    environment: \"Prod\",\n    name: \"Test API Key\",\n    readOnly: false,\n});\nexport const beApiKeyResult = example.apiKey;\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Create a PropelAuth API key for use in the Back End of your application.\nexample = propelauth.BeApiKey(\"example\",\n    environment=\"Prod\",\n    name=\"Test API Key\",\n    read_only=False)\npulumi.export(\"beApiKeyResult\", example.api_key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a PropelAuth API key for use in the Back End of your application.\n    var example = new Propelauth.BeApiKey(\"example\", new()\n    {\n        Environment = \"Prod\",\n        Name = \"Test API Key\",\n        ReadOnly = false,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"beApiKeyResult\"] = example.ApiKey,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a PropelAuth API key for use in the Back End of your application.\n\t\texample, err := propelauth.NewBeApiKey(ctx, \"example\", \u0026propelauth.BeApiKeyArgs{\n\t\t\tEnvironment: pulumi.String(\"Prod\"),\n\t\t\tName:        pulumi.String(\"Test API Key\"),\n\t\t\tReadOnly:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"beApiKeyResult\", example.ApiKey)\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.propelauth.BeApiKey;\nimport com.pulumi.propelauth.BeApiKeyArgs;\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        // Create a PropelAuth API key for use in the Back End of your application.\n        var example = new BeApiKey(\"example\", BeApiKeyArgs.builder()\n            .environment(\"Prod\")\n            .name(\"Test API Key\")\n            .readOnly(false)\n            .build());\n\n        ctx.export(\"beApiKeyResult\", example.apiKey());\n    }\n}\n```\n```yaml\nresources:\n  # Create a PropelAuth API key for use in the Back End of your application.\n  example:\n    type: propelauth:BeApiKey\n    properties:\n      environment: Prod\n      name: Test API Key\n      readOnly: false\noutputs:\n  beApiKeyResult: ${example.apiKey}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"apiKey":{"type":"string","description":"The API key value. This is the secret value that is used to authenticate requests to PropelAuth.\n","secret":true},"apiKeyId":{"type":"string","description":"The API key ID. This is a unique identifier for the API key.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the backend integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"name":{"type":"string","description":"The API key's name. This is only for internal dislay purposes.\n"},"readOnly":{"type":"boolean","description":"If true, the API key has read-only privileges. For example, it cannot be used for creating, editing, or deleting users/orgs. This value can only be set during the creation of the API key.\n"}},"type":"object","required":["apiKey","apiKeyId","environment","name","readOnly"],"inputProperties":{"environment":{"type":"string","description":"The environment for which you are configuring the backend integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"name":{"type":"string","description":"The API key's name. This is only for internal dislay purposes.\n"},"readOnly":{"type":"boolean","description":"If true, the API key has read-only privileges. For example, it cannot be used for creating, editing, or deleting users/orgs. This value can only be set during the creation of the API key.\n"}},"requiredInputs":["environment","readOnly"],"stateInputs":{"description":"Input properties used for looking up and filtering BeApiKey resources.\n","properties":{"apiKey":{"type":"string","description":"The API key value. This is the secret value that is used to authenticate requests to PropelAuth.\n","secret":true},"apiKeyId":{"type":"string","description":"The API key ID. This is a unique identifier for the API key.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the backend integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"name":{"type":"string","description":"The API key's name. This is only for internal dislay purposes.\n"},"readOnly":{"type":"boolean","description":"If true, the API key has read-only privileges. For example, it cannot be used for creating, editing, or deleting users/orgs. This value can only be set during the creation of the API key.\n"}},"type":"object"}},"propelauth:index/customDomain:CustomDomain":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Initialize a custom domain with your PropelAuth environment. This does not verify the domain:\n// You will need a DNS provider and the `propelauth_custom_domain_verification` resource to verify the domain.\nconst myCustomDomain = new propelauth.CustomDomain(\"my_custom_domain\", {\n    environment: \"Prod\",\n    domain: \"example.com\",\n    subdomain: \"app\",\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Initialize a custom domain with your PropelAuth environment. This does not verify the domain:\n# You will need a DNS provider and the `propelauth_custom_domain_verification` resource to verify the domain.\nmy_custom_domain = propelauth.CustomDomain(\"my_custom_domain\",\n    environment=\"Prod\",\n    domain=\"example.com\",\n    subdomain=\"app\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Initialize a custom domain with your PropelAuth environment. This does not verify the domain:\n    // You will need a DNS provider and the `propelauth_custom_domain_verification` resource to verify the domain.\n    var myCustomDomain = new Propelauth.CustomDomain(\"my_custom_domain\", new()\n    {\n        Environment = \"Prod\",\n        Domain = \"example.com\",\n        Subdomain = \"app\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Initialize a custom domain with your PropelAuth environment. This does not verify the domain:\n\t\t// You will need a DNS provider and the `propelauth_custom_domain_verification` resource to verify the domain.\n\t\t_, err := propelauth.NewCustomDomain(ctx, \"my_custom_domain\", \u0026propelauth.CustomDomainArgs{\n\t\t\tEnvironment: pulumi.String(\"Prod\"),\n\t\t\tDomain:      pulumi.String(\"example.com\"),\n\t\t\tSubdomain:   pulumi.String(\"app\"),\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.propelauth.CustomDomain;\nimport com.pulumi.propelauth.CustomDomainArgs;\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        // Initialize a custom domain with your PropelAuth environment. This does not verify the domain:\n        // You will need a DNS provider and the `propelauth_custom_domain_verification` resource to verify the domain.\n        var myCustomDomain = new CustomDomain(\"myCustomDomain\", CustomDomainArgs.builder()\n            .environment(\"Prod\")\n            .domain(\"example.com\")\n            .subdomain(\"app\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Initialize a custom domain with your PropelAuth environment. This does not verify the domain:\n  # You will need a DNS provider and the `propelauth_custom_domain_verification` resource to verify the domain.\n  myCustomDomain:\n    type: propelauth:CustomDomain\n    name: my_custom_domain\n    properties:\n      environment: Prod\n      domain: example.com\n      subdomain: app\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustom domains can be imported by which environment they are in\n\n```sh\n$ pulumi import propelauth:index/customDomain:CustomDomain example Prod\n```\n\nor\n\n```sh\n$ pulumi import propelauth:index/customDomain:CustomDomain example Staging\n```\n\n","properties":{"cnameRecordKey":{"type":"string","description":"The CNAME record key for the custom domain.\n"},"cnameRecordKeyWithoutDomain":{"type":"string","description":"The CNAME record key for the custom domain without the domain (e.g. just auth instead of auth.example.com) .\n"},"cnameRecordValue":{"type":"string","description":"The CNAME record value for the custom domain.\n"},"domain":{"type":"string","description":"The domain name for the custom domain. Your resulting auth domain will be `auth.\u003cdomain\u003e`. You can also specify a subdomain like prod.example.com which will result in auth.prod.example.com\n"},"environment":{"type":"string","description":"The environment for which you are configuring the custom domain. Accepted values are `Staging` and `Prod`. Note: Staging environments are only available on some pricing plans.\n"},"subdomain":{"type":"string","description":"The subdomain for the custom domain. This is optional, but recommended, as it will allow PropelAuth to automatically redirect users to your application after they login. Your resulting auth domain will be `auth.\u003csubdomain\u003e.\u003cdomain\u003e`. The value must not begin or end with a period.\n"},"txtRecordKey":{"type":"string","description":"The TXT record key for the custom domain.\n"},"txtRecordKeyWithoutDomain":{"type":"string","description":"The TXT record key for the custom domain without the domain (e.g. just auth instead of auth.example.com) .\n"},"txtRecordValue":{"type":"string","description":"The TXT record value for the custom domain.\n"}},"type":"object","required":["cnameRecordKey","cnameRecordKeyWithoutDomain","cnameRecordValue","domain","environment","txtRecordKey","txtRecordKeyWithoutDomain","txtRecordValue"],"inputProperties":{"domain":{"type":"string","description":"The domain name for the custom domain. Your resulting auth domain will be `auth.\u003cdomain\u003e`. You can also specify a subdomain like prod.example.com which will result in auth.prod.example.com\n"},"environment":{"type":"string","description":"The environment for which you are configuring the custom domain. Accepted values are `Staging` and `Prod`. Note: Staging environments are only available on some pricing plans.\n"},"subdomain":{"type":"string","description":"The subdomain for the custom domain. This is optional, but recommended, as it will allow PropelAuth to automatically redirect users to your application after they login. Your resulting auth domain will be `auth.\u003csubdomain\u003e.\u003cdomain\u003e`. The value must not begin or end with a period.\n"}},"requiredInputs":["domain","environment"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomDomain resources.\n","properties":{"cnameRecordKey":{"type":"string","description":"The CNAME record key for the custom domain.\n"},"cnameRecordKeyWithoutDomain":{"type":"string","description":"The CNAME record key for the custom domain without the domain (e.g. just auth instead of auth.example.com) .\n"},"cnameRecordValue":{"type":"string","description":"The CNAME record value for the custom domain.\n"},"domain":{"type":"string","description":"The domain name for the custom domain. Your resulting auth domain will be `auth.\u003cdomain\u003e`. You can also specify a subdomain like prod.example.com which will result in auth.prod.example.com\n"},"environment":{"type":"string","description":"The environment for which you are configuring the custom domain. Accepted values are `Staging` and `Prod`. Note: Staging environments are only available on some pricing plans.\n"},"subdomain":{"type":"string","description":"The subdomain for the custom domain. This is optional, but recommended, as it will allow PropelAuth to automatically redirect users to your application after they login. Your resulting auth domain will be `auth.\u003csubdomain\u003e.\u003cdomain\u003e`. The value must not begin or end with a period.\n"},"txtRecordKey":{"type":"string","description":"The TXT record key for the custom domain.\n"},"txtRecordKeyWithoutDomain":{"type":"string","description":"The TXT record key for the custom domain without the domain (e.g. just auth instead of auth.example.com) .\n"},"txtRecordValue":{"type":"string","description":"The TXT record value for the custom domain.\n"}},"type":"object"}},"propelauth:index/customDomainVerification:CustomDomainVerification":{"description":"Custom Domain Verification resource. This is for verifying a custom domain for Production or Staging.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\nconst myCustomDomain = new propelauth.CustomDomain(\"my_custom_domain\", {\n    environment: \"Prod\",\n    domain: \"example.com\",\n});\n// AWS Route53 Example\nconst primary = new aws.index.Route53Zone(\"primary\", {name: \"example.com\"});\nconst txtRecordForPropelauth = new aws.index.Route53Record(\"txt_record_for_propelauth\", {\n    zoneId: primary.zoneId,\n    name: myCustomDomain.txtRecordKey,\n    type: \"TXT\",\n    ttl: 300,\n    records: [myCustomDomain.txtRecordValue],\n}, {\n    dependsOn: [myCustomDomain],\n});\nconst cnameRecordForPropelauth = new aws.index.Route53Record(\"cname_record_for_propelauth\", {\n    zoneId: primary.zoneId,\n    name: myCustomDomain.cnameRecordKey,\n    type: \"CNAME\",\n    ttl: 300,\n    records: [myCustomDomain.cnameRecordValue],\n}, {\n    dependsOn: [myCustomDomain],\n});\n// This resource will verify the domain once your DNS records have been set up. See the above\n// for how to do that with AWS Route 53 and the output of the \"propelauth_custom_domain\" resource \n// to set up the DNS records.\nconst myCustomDomainVerification = new propelauth.CustomDomainVerification(\"my_custom_domain_verification\", {\n    environment: myCustomDomain.environment,\n    domain: myCustomDomain.domain,\n}, {\n    dependsOn: [\n        myCustomDomain,\n        txtRecordForPropelauth,\n        cnameRecordForPropelauth,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_propelauth as propelauth\n\nmy_custom_domain = propelauth.CustomDomain(\"my_custom_domain\",\n    environment=\"Prod\",\n    domain=\"example.com\")\n# AWS Route53 Example\nprimary = aws.index.Route53Zone(\"primary\", name=example.com)\ntxt_record_for_propelauth = aws.index.Route53Record(\"txt_record_for_propelauth\",\n    zone_id=primary.zone_id,\n    name=my_custom_domain.txt_record_key,\n    type=TXT,\n    ttl=300,\n    records=[my_custom_domain.txt_record_value],\n    opts = pulumi.ResourceOptions(depends_on=[my_custom_domain]))\ncname_record_for_propelauth = aws.index.Route53Record(\"cname_record_for_propelauth\",\n    zone_id=primary.zone_id,\n    name=my_custom_domain.cname_record_key,\n    type=CNAME,\n    ttl=300,\n    records=[my_custom_domain.cname_record_value],\n    opts = pulumi.ResourceOptions(depends_on=[my_custom_domain]))\n# This resource will verify the domain once your DNS records have been set up. See the above\n# for how to do that with AWS Route 53 and the output of the \"propelauth_custom_domain\" resource \n# to set up the DNS records.\nmy_custom_domain_verification = propelauth.CustomDomainVerification(\"my_custom_domain_verification\",\n    environment=my_custom_domain.environment,\n    domain=my_custom_domain.domain,\n    opts = pulumi.ResourceOptions(depends_on=[\n            my_custom_domain,\n            txt_record_for_propelauth,\n            cname_record_for_propelauth,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCustomDomain = new Propelauth.CustomDomain(\"my_custom_domain\", new()\n    {\n        Environment = \"Prod\",\n        Domain = \"example.com\",\n    });\n\n    // AWS Route53 Example\n    var primary = new Aws.Index.Route53Zone(\"primary\", new()\n    {\n        Name = \"example.com\",\n    });\n\n    var txtRecordForPropelauth = new Aws.Index.Route53Record(\"txt_record_for_propelauth\", new()\n    {\n        ZoneId = primary.ZoneId,\n        Name = myCustomDomain.TxtRecordKey,\n        Type = \"TXT\",\n        Ttl = 300,\n        Records = new[]\n        {\n            myCustomDomain.TxtRecordValue,\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myCustomDomain,\n        },\n    });\n\n    var cnameRecordForPropelauth = new Aws.Index.Route53Record(\"cname_record_for_propelauth\", new()\n    {\n        ZoneId = primary.ZoneId,\n        Name = myCustomDomain.CnameRecordKey,\n        Type = \"CNAME\",\n        Ttl = 300,\n        Records = new[]\n        {\n            myCustomDomain.CnameRecordValue,\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myCustomDomain,\n        },\n    });\n\n    // This resource will verify the domain once your DNS records have been set up. See the above\n    // for how to do that with AWS Route 53 and the output of the \"propelauth_custom_domain\" resource \n    // to set up the DNS records.\n    var myCustomDomainVerification = new Propelauth.CustomDomainVerification(\"my_custom_domain_verification\", new()\n    {\n        Environment = myCustomDomain.Environment,\n        Domain = myCustomDomain.Domain,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myCustomDomain,\n            txtRecordForPropelauth,\n            cnameRecordForPropelauth,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCustomDomain, err := propelauth.NewCustomDomain(ctx, \"my_custom_domain\", \u0026propelauth.CustomDomainArgs{\n\t\t\tEnvironment: pulumi.String(\"Prod\"),\n\t\t\tDomain:      pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// AWS Route53 Example\n\t\tprimary, err := aws.NewRoute53Zone(ctx, \"primary\", \u0026aws.Route53ZoneArgs{\n\t\t\tName: \"example.com\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttxtRecordForPropelauth, err := aws.NewRoute53Record(ctx, \"txt_record_for_propelauth\", \u0026aws.Route53RecordArgs{\n\t\t\tZoneId: primary.ZoneId,\n\t\t\tName:   myCustomDomain.TxtRecordKey,\n\t\t\tType:   \"TXT\",\n\t\t\tTtl:    300,\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tmyCustomDomain.TxtRecordValue,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyCustomDomain,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcnameRecordForPropelauth, err := aws.NewRoute53Record(ctx, \"cname_record_for_propelauth\", \u0026aws.Route53RecordArgs{\n\t\t\tZoneId: primary.ZoneId,\n\t\t\tName:   myCustomDomain.CnameRecordKey,\n\t\t\tType:   \"CNAME\",\n\t\t\tTtl:    300,\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tmyCustomDomain.CnameRecordValue,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyCustomDomain,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This resource will verify the domain once your DNS records have been set up. See the above\n\t\t// for how to do that with AWS Route 53 and the output of the \"propelauth_custom_domain\" resource\n\t\t// to set up the DNS records.\n\t\t_, err = propelauth.NewCustomDomainVerification(ctx, \"my_custom_domain_verification\", \u0026propelauth.CustomDomainVerificationArgs{\n\t\t\tEnvironment: myCustomDomain.Environment,\n\t\t\tDomain:      myCustomDomain.Domain,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyCustomDomain,\n\t\t\ttxtRecordForPropelauth,\n\t\t\tcnameRecordForPropelauth,\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.propelauth.CustomDomain;\nimport com.pulumi.propelauth.CustomDomainArgs;\nimport com.pulumi.aws.Route53Zone;\nimport com.pulumi.aws.Route53ZoneArgs;\nimport com.pulumi.aws.Route53Record;\nimport com.pulumi.aws.Route53RecordArgs;\nimport com.pulumi.propelauth.CustomDomainVerification;\nimport com.pulumi.propelauth.CustomDomainVerificationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCustomDomain = new CustomDomain(\"myCustomDomain\", CustomDomainArgs.builder()\n            .environment(\"Prod\")\n            .domain(\"example.com\")\n            .build());\n\n        // AWS Route53 Example\n        var primary = new Route53Zone(\"primary\", Route53ZoneArgs.builder()\n            .name(\"example.com\")\n            .build());\n\n        var txtRecordForPropelauth = new Route53Record(\"txtRecordForPropelauth\", Route53RecordArgs.builder()\n            .zoneId(primary.zoneId())\n            .name(myCustomDomain.txtRecordKey())\n            .type(\"TXT\")\n            .ttl(300)\n            .records(List.of(myCustomDomain.txtRecordValue()))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(myCustomDomain))\n                .build());\n\n        var cnameRecordForPropelauth = new Route53Record(\"cnameRecordForPropelauth\", Route53RecordArgs.builder()\n            .zoneId(primary.zoneId())\n            .name(myCustomDomain.cnameRecordKey())\n            .type(\"CNAME\")\n            .ttl(300)\n            .records(List.of(myCustomDomain.cnameRecordValue()))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(myCustomDomain))\n                .build());\n\n        // This resource will verify the domain once your DNS records have been set up. See the above\n        // for how to do that with AWS Route 53 and the output of the \"propelauth_custom_domain\" resource \n        // to set up the DNS records.\n        var myCustomDomainVerification = new CustomDomainVerification(\"myCustomDomainVerification\", CustomDomainVerificationArgs.builder()\n            .environment(myCustomDomain.environment())\n            .domain(myCustomDomain.domain())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    myCustomDomain,\n                    txtRecordForPropelauth,\n                    cnameRecordForPropelauth)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCustomDomain:\n    type: propelauth:CustomDomain\n    name: my_custom_domain\n    properties:\n      environment: Prod\n      domain: example.com\n  # AWS Route53 Example\n  primary:\n    type: aws:Route53Zone\n    properties:\n      name: example.com\n  txtRecordForPropelauth:\n    type: aws:Route53Record\n    name: txt_record_for_propelauth\n    properties:\n      zoneId: ${primary.zoneId}\n      name: ${myCustomDomain.txtRecordKey}\n      type: TXT\n      ttl: 300\n      records:\n        - ${myCustomDomain.txtRecordValue}\n    options:\n      dependsOn:\n        - ${myCustomDomain}\n  cnameRecordForPropelauth:\n    type: aws:Route53Record\n    name: cname_record_for_propelauth\n    properties:\n      zoneId: ${primary.zoneId}\n      name: ${myCustomDomain.cnameRecordKey}\n      type: CNAME\n      ttl: 300\n      records:\n        - ${myCustomDomain.cnameRecordValue}\n    options:\n      dependsOn:\n        - ${myCustomDomain}\n  # This resource will verify the domain once your DNS records have been set up. See the above\n  # for how to do that with AWS Route 53 and the output of the \"propelauth_custom_domain\" resource \n  # to set up the DNS records.\n  myCustomDomainVerification:\n    type: propelauth:CustomDomainVerification\n    name: my_custom_domain_verification\n    properties:\n      environment: ${myCustomDomain.environment}\n      domain: ${myCustomDomain.domain}\n    options:\n      dependsOn:\n        - ${myCustomDomain}\n        - ${txtRecordForPropelauth}\n        - ${cnameRecordForPropelauth}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustom domains can be imported by which environment they are in\n\n```sh\n$ pulumi import propelauth:index/customDomainVerification:CustomDomainVerification example Prod\n```\n\nor\n\n```sh\n$ pulumi import propelauth:index/customDomainVerification:CustomDomainVerification example Staging\n```\n\n","properties":{"domain":{"type":"string","description":"The domain to verify.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the custom domain. Accepted values are `Staging`, `Prod`.\n"},"timeouts":{"$ref":"#/types/propelauth:index%2FCustomDomainVerificationTimeouts:CustomDomainVerificationTimeouts"}},"type":"object","required":["domain","environment"],"inputProperties":{"domain":{"type":"string","description":"The domain to verify.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the custom domain. Accepted values are `Staging`, `Prod`.\n"},"timeouts":{"$ref":"#/types/propelauth:index%2FCustomDomainVerificationTimeouts:CustomDomainVerificationTimeouts"}},"requiredInputs":["domain","environment"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomDomainVerification resources.\n","properties":{"domain":{"type":"string","description":"The domain to verify.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the custom domain. Accepted values are `Staging`, `Prod`.\n"},"timeouts":{"$ref":"#/types/propelauth:index%2FCustomDomainVerificationTimeouts:CustomDomainVerificationTimeouts"}},"type":"object"}},"propelauth:index/darkmodeTheme:DarkmodeTheme":{"description":"Darkmode Pages Look \u0026 Feel. This is for creating a darkmode theme for your PropelAuth hosted pages.The parameters and behavior are identical to the \u003cspan pulumi-lang-nodejs=\"`propelauth.Theme`\" pulumi-lang-dotnet=\"`propelauth.Theme`\" pulumi-lang-go=\"`Theme`\" pulumi-lang-python=\"`Theme`\" pulumi-lang-yaml=\"`propelauth.Theme`\" pulumi-lang-java=\"`propelauth.Theme`\"\u003e`propelauth.Theme`\u003c/span\u003e resource, except this enables an optional darkmode version for your users to toggle to. Altering these settings does not affect the primary theme.\n","properties":{"bodyFont":{"type":"string","description":"The font used for all body text in your hosted pages. This includes both login and management pages. The available options are the same as for \u003cspan pulumi-lang-nodejs=\"`headerFont`\" pulumi-lang-dotnet=\"`HeaderFont`\" pulumi-lang-go=\"`headerFont`\" pulumi-lang-python=\"`header_font`\" pulumi-lang-yaml=\"`headerFont`\" pulumi-lang-java=\"`headerFont`\"\u003e`header_font`\u003c/span\u003e. The default value is `Inter`\n"},"displayProjectName":{"type":"boolean","description":"If true, the project name is displayed in the header of the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"headerFont":{"type":"string","description":"The font used for all headings in your hosted pages written in PascalCase. This includes both login and management pages. Options include `Roboto`, `Inter`, `OpenSans`, `Montserrat`, `Lato`, `Poppins`, `Raleway`, `Jost`, `Fraunces`, `Caveat`, `PlusJakartaSans`, etcThe default value is `Inter`\n"},"loginPageTheme":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageTheme:DarkmodeThemeLoginPageTheme","description":"The theme for the login page\n"},"managementPagesTheme":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeManagementPagesTheme:DarkmodeThemeManagementPagesTheme","description":"The theme for the account and organization management pages\n"}},"type":"object","required":["bodyFont","displayProjectName","headerFont","loginPageTheme","managementPagesTheme"],"inputProperties":{"bodyFont":{"type":"string","description":"The font used for all body text in your hosted pages. This includes both login and management pages. The available options are the same as for \u003cspan pulumi-lang-nodejs=\"`headerFont`\" pulumi-lang-dotnet=\"`HeaderFont`\" pulumi-lang-go=\"`headerFont`\" pulumi-lang-python=\"`header_font`\" pulumi-lang-yaml=\"`headerFont`\" pulumi-lang-java=\"`headerFont`\"\u003e`header_font`\u003c/span\u003e. The default value is `Inter`\n"},"displayProjectName":{"type":"boolean","description":"If true, the project name is displayed in the header of the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"headerFont":{"type":"string","description":"The font used for all headings in your hosted pages written in PascalCase. This includes both login and management pages. Options include `Roboto`, `Inter`, `OpenSans`, `Montserrat`, `Lato`, `Poppins`, `Raleway`, `Jost`, `Fraunces`, `Caveat`, `PlusJakartaSans`, etcThe default value is `Inter`\n"},"loginPageTheme":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageTheme:DarkmodeThemeLoginPageTheme","description":"The theme for the login page\n"},"managementPagesTheme":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeManagementPagesTheme:DarkmodeThemeManagementPagesTheme","description":"The theme for the account and organization management pages\n"}},"requiredInputs":["loginPageTheme","managementPagesTheme"],"stateInputs":{"description":"Input properties used for looking up and filtering DarkmodeTheme resources.\n","properties":{"bodyFont":{"type":"string","description":"The font used for all body text in your hosted pages. This includes both login and management pages. The available options are the same as for \u003cspan pulumi-lang-nodejs=\"`headerFont`\" pulumi-lang-dotnet=\"`HeaderFont`\" pulumi-lang-go=\"`headerFont`\" pulumi-lang-python=\"`header_font`\" pulumi-lang-yaml=\"`headerFont`\" pulumi-lang-java=\"`headerFont`\"\u003e`header_font`\u003c/span\u003e. The default value is `Inter`\n"},"displayProjectName":{"type":"boolean","description":"If true, the project name is displayed in the header of the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"headerFont":{"type":"string","description":"The font used for all headings in your hosted pages written in PascalCase. This includes both login and management pages. Options include `Roboto`, `Inter`, `OpenSans`, `Montserrat`, `Lato`, `Poppins`, `Raleway`, `Jost`, `Fraunces`, `Caveat`, `PlusJakartaSans`, etcThe default value is `Inter`\n"},"loginPageTheme":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeLoginPageTheme:DarkmodeThemeLoginPageTheme","description":"The theme for the login page\n"},"managementPagesTheme":{"$ref":"#/types/propelauth:index%2FDarkmodeThemeManagementPagesTheme:DarkmodeThemeManagementPagesTheme","description":"The theme for the account and organization management pages\n"}},"type":"object"}},"propelauth:index/environmentLevelAuthConfiguration:EnvironmentLevelAuthConfiguration":{"description":"Environment-level Auth Configuration. This is for configuring elements of the signup and login experience in PropelAuth that you may want to differ between test and production environments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\nconst testExample = new propelauth.EnvironmentLevelAuthConfiguration(\"test_example\", {\n    environment: \"Test\",\n    requireEmailConfirmation: false,\n    allowPublicSignups: true,\n});\nconst myCustomDomainVerification = new propelauth.CustomDomainVerification(\"my_custom_domain_verification\", {environment: \"Prod\"});\n// Prod and Staging environments don't exist until a domain has been verified for them,\n// so we need to depend on the verification of the domain before creating the environment-level auth configuration\nconst prodExample = new propelauth.EnvironmentLevelAuthConfiguration(\"prod_example\", {\n    environment: \"Prod\",\n    requireEmailConfirmation: true,\n    allowPublicSignups: false,\n}, {\n    dependsOn: [myCustomDomainVerification],\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\ntest_example = propelauth.EnvironmentLevelAuthConfiguration(\"test_example\",\n    environment=\"Test\",\n    require_email_confirmation=False,\n    allow_public_signups=True)\nmy_custom_domain_verification = propelauth.CustomDomainVerification(\"my_custom_domain_verification\", environment=\"Prod\")\n# Prod and Staging environments don't exist until a domain has been verified for them,\n# so we need to depend on the verification of the domain before creating the environment-level auth configuration\nprod_example = propelauth.EnvironmentLevelAuthConfiguration(\"prod_example\",\n    environment=\"Prod\",\n    require_email_confirmation=True,\n    allow_public_signups=False,\n    opts = pulumi.ResourceOptions(depends_on=[my_custom_domain_verification]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testExample = new Propelauth.EnvironmentLevelAuthConfiguration(\"test_example\", new()\n    {\n        Environment = \"Test\",\n        RequireEmailConfirmation = false,\n        AllowPublicSignups = true,\n    });\n\n    var myCustomDomainVerification = new Propelauth.CustomDomainVerification(\"my_custom_domain_verification\", new()\n    {\n        Environment = \"Prod\",\n    });\n\n    // Prod and Staging environments don't exist until a domain has been verified for them,\n    // so we need to depend on the verification of the domain before creating the environment-level auth configuration\n    var prodExample = new Propelauth.EnvironmentLevelAuthConfiguration(\"prod_example\", new()\n    {\n        Environment = \"Prod\",\n        RequireEmailConfirmation = true,\n        AllowPublicSignups = false,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myCustomDomainVerification,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := propelauth.NewEnvironmentLevelAuthConfiguration(ctx, \"test_example\", \u0026propelauth.EnvironmentLevelAuthConfigurationArgs{\n\t\t\tEnvironment:              pulumi.String(\"Test\"),\n\t\t\tRequireEmailConfirmation: pulumi.Bool(false),\n\t\t\tAllowPublicSignups:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCustomDomainVerification, err := propelauth.NewCustomDomainVerification(ctx, \"my_custom_domain_verification\", \u0026propelauth.CustomDomainVerificationArgs{\n\t\t\tEnvironment: pulumi.String(\"Prod\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Prod and Staging environments don't exist until a domain has been verified for them,\n\t\t// so we need to depend on the verification of the domain before creating the environment-level auth configuration\n\t\t_, err = propelauth.NewEnvironmentLevelAuthConfiguration(ctx, \"prod_example\", \u0026propelauth.EnvironmentLevelAuthConfigurationArgs{\n\t\t\tEnvironment:              pulumi.String(\"Prod\"),\n\t\t\tRequireEmailConfirmation: pulumi.Bool(true),\n\t\t\tAllowPublicSignups:       pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyCustomDomainVerification,\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.propelauth.EnvironmentLevelAuthConfiguration;\nimport com.pulumi.propelauth.EnvironmentLevelAuthConfigurationArgs;\nimport com.pulumi.propelauth.CustomDomainVerification;\nimport com.pulumi.propelauth.CustomDomainVerificationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testExample = new EnvironmentLevelAuthConfiguration(\"testExample\", EnvironmentLevelAuthConfigurationArgs.builder()\n            .environment(\"Test\")\n            .requireEmailConfirmation(false)\n            .allowPublicSignups(true)\n            .build());\n\n        var myCustomDomainVerification = new CustomDomainVerification(\"myCustomDomainVerification\", CustomDomainVerificationArgs.builder()\n            .environment(\"Prod\")\n            .build());\n\n        // Prod and Staging environments don't exist until a domain has been verified for them,\n        // so we need to depend on the verification of the domain before creating the environment-level auth configuration\n        var prodExample = new EnvironmentLevelAuthConfiguration(\"prodExample\", EnvironmentLevelAuthConfigurationArgs.builder()\n            .environment(\"Prod\")\n            .requireEmailConfirmation(true)\n            .allowPublicSignups(false)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(myCustomDomainVerification)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testExample:\n    type: propelauth:EnvironmentLevelAuthConfiguration\n    name: test_example\n    properties:\n      environment: Test\n      requireEmailConfirmation: false\n      allowPublicSignups: true\n  myCustomDomainVerification:\n    type: propelauth:CustomDomainVerification\n    name: my_custom_domain_verification\n    properties:\n      environment: Prod\n  # Prod and Staging environments don't exist until a domain has been verified for them,\n  # so we need to depend on the verification of the domain before creating the environment-level auth configuration\n  prodExample:\n    type: propelauth:EnvironmentLevelAuthConfiguration\n    name: prod_example\n    properties:\n      environment: Prod\n      requireEmailConfirmation: true\n      allowPublicSignups: false\n    options:\n      dependsOn:\n        - ${myCustomDomainVerification}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport using the target environment as the ID: `Test`, `Staging`, or `Prod`. For example:\n\n```sh\n$ pulumi import propelauth:index/environmentLevelAuthConfiguration:EnvironmentLevelAuthConfiguration test_env_auth_config Test\n```\n\nor\n\n```sh\n$ pulumi import propelauth:index/environmentLevelAuthConfiguration:EnvironmentLevelAuthConfiguration prod_env_auth_config Prod\n```\n\n","properties":{"allowPublicSignups":{"type":"boolean","description":"If true, new users will be able to sign up for your product directly in the PropelAuth hosted pages.The default setting is true for all environments.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the login and signup experience. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"magicLinkExpireAfterFirstUse":{"type":"boolean","description":"If true, the magic link a user receives will expire after the first time it is used. We recommend having this setting enabled and is enabled by default for all new projects.\n"},"magicLinkRequiresInterstitial":{"type":"boolean","description":"If true, an interstitial page to confirm the user is human when using magic link log in will be shown. We recommend having this setting enabled and is enabled by default for all new projects.\n"},"requireEmailConfirmation":{"type":"boolean","description":"If true, all users are required to have confirmed email addresses. Whenever PropelAuth doesn't know for certain whether a user's email address is in fact owned by them, PropelAuth will trigger an email confirmation flow. The default setting is true for `Prod` and `Staging` environments but is false for `Test` for ease of development.\n"},"waitlistUsersRequireEmailConfirmation":{"type":"boolean","description":"If true, all waitlisted users are required to have confirmed email addresses. Whenever PropelAuth doesn't know for certain whether a waitlisted user's email address is in fact owned by them, PropelAuth will trigger an email confirmation flow. The default setting is false for all environments.\n"}},"type":"object","required":["environment"],"inputProperties":{"allowPublicSignups":{"type":"boolean","description":"If true, new users will be able to sign up for your product directly in the PropelAuth hosted pages.The default setting is true for all environments.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the login and signup experience. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"magicLinkExpireAfterFirstUse":{"type":"boolean","description":"If true, the magic link a user receives will expire after the first time it is used. We recommend having this setting enabled and is enabled by default for all new projects.\n"},"magicLinkRequiresInterstitial":{"type":"boolean","description":"If true, an interstitial page to confirm the user is human when using magic link log in will be shown. We recommend having this setting enabled and is enabled by default for all new projects.\n"},"requireEmailConfirmation":{"type":"boolean","description":"If true, all users are required to have confirmed email addresses. Whenever PropelAuth doesn't know for certain whether a user's email address is in fact owned by them, PropelAuth will trigger an email confirmation flow. The default setting is true for `Prod` and `Staging` environments but is false for `Test` for ease of development.\n"},"waitlistUsersRequireEmailConfirmation":{"type":"boolean","description":"If true, all waitlisted users are required to have confirmed email addresses. Whenever PropelAuth doesn't know for certain whether a waitlisted user's email address is in fact owned by them, PropelAuth will trigger an email confirmation flow. The default setting is false for all environments.\n"}},"requiredInputs":["environment"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvironmentLevelAuthConfiguration resources.\n","properties":{"allowPublicSignups":{"type":"boolean","description":"If true, new users will be able to sign up for your product directly in the PropelAuth hosted pages.The default setting is true for all environments.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the login and signup experience. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"magicLinkExpireAfterFirstUse":{"type":"boolean","description":"If true, the magic link a user receives will expire after the first time it is used. We recommend having this setting enabled and is enabled by default for all new projects.\n"},"magicLinkRequiresInterstitial":{"type":"boolean","description":"If true, an interstitial page to confirm the user is human when using magic link log in will be shown. We recommend having this setting enabled and is enabled by default for all new projects.\n"},"requireEmailConfirmation":{"type":"boolean","description":"If true, all users are required to have confirmed email addresses. Whenever PropelAuth doesn't know for certain whether a user's email address is in fact owned by them, PropelAuth will trigger an email confirmation flow. The default setting is true for `Prod` and `Staging` environments but is false for `Test` for ease of development.\n"},"waitlistUsersRequireEmailConfirmation":{"type":"boolean","description":"If true, all waitlisted users are required to have confirmed email addresses. Whenever PropelAuth doesn't know for certain whether a waitlisted user's email address is in fact owned by them, PropelAuth will trigger an email confirmation flow. The default setting is false for all environments.\n"}},"type":"object"}},"propelauth:index/feIntegration:FeIntegration":{"description":"Front-end Integration. This is for configuring the front-end integration for one of your project's environments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Configure how the front-end of your application integrates with PropelAuth.\nconst example = new propelauth.FeIntegration(\"example\", {\n    environment: \"Test\",\n    applicationUrl: \"http://localhost:3001\",\n    loginRedirectPath: \"/home\",\n    logoutRedirectPath: \"/goodbye\",\n    additionalFeLocations: [{\n        domain: \"http://localhost:3002\",\n        allowAnySubdomain: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Configure how the front-end of your application integrates with PropelAuth.\nexample = propelauth.FeIntegration(\"example\",\n    environment=\"Test\",\n    application_url=\"http://localhost:3001\",\n    login_redirect_path=\"/home\",\n    logout_redirect_path=\"/goodbye\",\n    additional_fe_locations=[{\n        \"domain\": \"http://localhost:3002\",\n        \"allow_any_subdomain\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Configure how the front-end of your application integrates with PropelAuth.\n    var example = new Propelauth.FeIntegration(\"example\", new()\n    {\n        Environment = \"Test\",\n        ApplicationUrl = \"http://localhost:3001\",\n        LoginRedirectPath = \"/home\",\n        LogoutRedirectPath = \"/goodbye\",\n        AdditionalFeLocations = new[]\n        {\n            new Propelauth.Inputs.FeIntegrationAdditionalFeLocationArgs\n            {\n                Domain = \"http://localhost:3002\",\n                AllowAnySubdomain = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Configure how the front-end of your application integrates with PropelAuth.\n\t\t_, err := propelauth.NewFeIntegration(ctx, \"example\", \u0026propelauth.FeIntegrationArgs{\n\t\t\tEnvironment:        pulumi.String(\"Test\"),\n\t\t\tApplicationUrl:     pulumi.String(\"http://localhost:3001\"),\n\t\t\tLoginRedirectPath:  pulumi.String(\"/home\"),\n\t\t\tLogoutRedirectPath: pulumi.String(\"/goodbye\"),\n\t\t\tAdditionalFeLocations: propelauth.FeIntegrationAdditionalFeLocationArray{\n\t\t\t\t\u0026propelauth.FeIntegrationAdditionalFeLocationArgs{\n\t\t\t\t\tDomain:            pulumi.String(\"http://localhost:3002\"),\n\t\t\t\t\tAllowAnySubdomain: pulumi.Bool(false),\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.propelauth.FeIntegration;\nimport com.pulumi.propelauth.FeIntegrationArgs;\nimport com.pulumi.propelauth.inputs.FeIntegrationAdditionalFeLocationArgs;\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        // Configure how the front-end of your application integrates with PropelAuth.\n        var example = new FeIntegration(\"example\", FeIntegrationArgs.builder()\n            .environment(\"Test\")\n            .applicationUrl(\"http://localhost:3001\")\n            .loginRedirectPath(\"/home\")\n            .logoutRedirectPath(\"/goodbye\")\n            .additionalFeLocations(FeIntegrationAdditionalFeLocationArgs.builder()\n                .domain(\"http://localhost:3002\")\n                .allowAnySubdomain(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure how the front-end of your application integrates with PropelAuth.\n  example:\n    type: propelauth:FeIntegration\n    properties:\n      environment: Test\n      applicationUrl: http://localhost:3001\n      loginRedirectPath: /home\n      logoutRedirectPath: /goodbye\n      additionalFeLocations:\n        - domain: http://localhost:3002\n          allowAnySubdomain: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport using the target environment as the ID: `Test`, `Staging`, or `Prod`.\n\n```sh\n$ pulumi import propelauth:index/feIntegration:FeIntegration prod_example Prod\n```\n\n","properties":{"additionalFeLocations":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FFeIntegrationAdditionalFeLocation:FeIntegrationAdditionalFeLocation"},"description":"Additional front-end locations that are allowed to integrate with PropelAuth.\n"},"applicationUrl":{"type":"string","description":"The URL of the application that will be integrated with PropelAuth. This url is used in combination with the \u003cspan pulumi-lang-nodejs=\"`loginRedirectPath`\" pulumi-lang-dotnet=\"`LoginRedirectPath`\" pulumi-lang-go=\"`loginRedirectPath`\" pulumi-lang-python=\"`login_redirect_path`\" pulumi-lang-yaml=\"`loginRedirectPath`\" pulumi-lang-java=\"`loginRedirectPath`\"\u003e`login_redirect_path`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`logoutRedirectPath`\" pulumi-lang-dotnet=\"`LogoutRedirectPath`\" pulumi-lang-go=\"`logoutRedirectPath`\" pulumi-lang-python=\"`logout_redirect_path`\" pulumi-lang-yaml=\"`logoutRedirectPath`\" pulumi-lang-java=\"`logoutRedirectPath`\"\u003e`logout_redirect_path`\u003c/span\u003e to redirect users to your application after logging in or out. \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e must be a valid URL and can only be set for `Test` environments. For `Staging` and `Prod` environments, the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e must be the verified domain for the environment or a subdomain of it. See  \u003cspan pulumi-lang-nodejs=\"`propelauth.CustomDomainVerification`\" pulumi-lang-dotnet=\"`propelauth.CustomDomainVerification`\" pulumi-lang-go=\"`CustomDomainVerification`\" pulumi-lang-python=\"`CustomDomainVerification`\" pulumi-lang-yaml=\"`propelauth.CustomDomainVerification`\" pulumi-lang-java=\"`propelauth.CustomDomainVerification`\"\u003e`propelauth.CustomDomainVerification`\u003c/span\u003e resource for more information. Do not include any trailing path separator (`/`) in your URL. For example, `https://any.subdomain.example.com` where `example.com` has been verified.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the front-end integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"loginRedirectPath":{"type":"string","description":"The URL path to redirect users to after they log in. This path is appended to the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e to form the full URL. For example, if \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e is `https://example.com` and \u003cspan pulumi-lang-nodejs=\"`loginRedirectPath`\" pulumi-lang-dotnet=\"`LoginRedirectPath`\" pulumi-lang-go=\"`loginRedirectPath`\" pulumi-lang-python=\"`login_redirect_path`\" pulumi-lang-yaml=\"`loginRedirectPath`\" pulumi-lang-java=\"`loginRedirectPath`\"\u003e`login_redirect_path`\u003c/span\u003e is `/dashboard`, the full URL will be `https://example.com/dashboard`.\n"},"logoutRedirectPath":{"type":"string","description":"The URL path to redirect users to after they log out. This path is appended to the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e to form the full URL. For example, if \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e is `https://example.com` and \u003cspan pulumi-lang-nodejs=\"`logoutRedirectPath`\" pulumi-lang-dotnet=\"`LogoutRedirectPath`\" pulumi-lang-go=\"`logoutRedirectPath`\" pulumi-lang-python=\"`logout_redirect_path`\" pulumi-lang-yaml=\"`logoutRedirectPath`\" pulumi-lang-java=\"`logoutRedirectPath`\"\u003e`logout_redirect_path`\u003c/span\u003e is `/goodbye`, the full URL will be `https://example.com/goodbye`.\n"}},"type":"object","required":["applicationUrl","environment","loginRedirectPath","logoutRedirectPath"],"inputProperties":{"additionalFeLocations":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FFeIntegrationAdditionalFeLocation:FeIntegrationAdditionalFeLocation"},"description":"Additional front-end locations that are allowed to integrate with PropelAuth.\n"},"applicationUrl":{"type":"string","description":"The URL of the application that will be integrated with PropelAuth. This url is used in combination with the \u003cspan pulumi-lang-nodejs=\"`loginRedirectPath`\" pulumi-lang-dotnet=\"`LoginRedirectPath`\" pulumi-lang-go=\"`loginRedirectPath`\" pulumi-lang-python=\"`login_redirect_path`\" pulumi-lang-yaml=\"`loginRedirectPath`\" pulumi-lang-java=\"`loginRedirectPath`\"\u003e`login_redirect_path`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`logoutRedirectPath`\" pulumi-lang-dotnet=\"`LogoutRedirectPath`\" pulumi-lang-go=\"`logoutRedirectPath`\" pulumi-lang-python=\"`logout_redirect_path`\" pulumi-lang-yaml=\"`logoutRedirectPath`\" pulumi-lang-java=\"`logoutRedirectPath`\"\u003e`logout_redirect_path`\u003c/span\u003e to redirect users to your application after logging in or out. \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e must be a valid URL and can only be set for `Test` environments. For `Staging` and `Prod` environments, the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e must be the verified domain for the environment or a subdomain of it. See  \u003cspan pulumi-lang-nodejs=\"`propelauth.CustomDomainVerification`\" pulumi-lang-dotnet=\"`propelauth.CustomDomainVerification`\" pulumi-lang-go=\"`CustomDomainVerification`\" pulumi-lang-python=\"`CustomDomainVerification`\" pulumi-lang-yaml=\"`propelauth.CustomDomainVerification`\" pulumi-lang-java=\"`propelauth.CustomDomainVerification`\"\u003e`propelauth.CustomDomainVerification`\u003c/span\u003e resource for more information. Do not include any trailing path separator (`/`) in your URL. For example, `https://any.subdomain.example.com` where `example.com` has been verified.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the front-end integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"loginRedirectPath":{"type":"string","description":"The URL path to redirect users to after they log in. This path is appended to the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e to form the full URL. For example, if \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e is `https://example.com` and \u003cspan pulumi-lang-nodejs=\"`loginRedirectPath`\" pulumi-lang-dotnet=\"`LoginRedirectPath`\" pulumi-lang-go=\"`loginRedirectPath`\" pulumi-lang-python=\"`login_redirect_path`\" pulumi-lang-yaml=\"`loginRedirectPath`\" pulumi-lang-java=\"`loginRedirectPath`\"\u003e`login_redirect_path`\u003c/span\u003e is `/dashboard`, the full URL will be `https://example.com/dashboard`.\n"},"logoutRedirectPath":{"type":"string","description":"The URL path to redirect users to after they log out. This path is appended to the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e to form the full URL. For example, if \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e is `https://example.com` and \u003cspan pulumi-lang-nodejs=\"`logoutRedirectPath`\" pulumi-lang-dotnet=\"`LogoutRedirectPath`\" pulumi-lang-go=\"`logoutRedirectPath`\" pulumi-lang-python=\"`logout_redirect_path`\" pulumi-lang-yaml=\"`logoutRedirectPath`\" pulumi-lang-java=\"`logoutRedirectPath`\"\u003e`logout_redirect_path`\u003c/span\u003e is `/goodbye`, the full URL will be `https://example.com/goodbye`.\n"}},"requiredInputs":["applicationUrl","environment","loginRedirectPath","logoutRedirectPath"],"stateInputs":{"description":"Input properties used for looking up and filtering FeIntegration resources.\n","properties":{"additionalFeLocations":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FFeIntegrationAdditionalFeLocation:FeIntegrationAdditionalFeLocation"},"description":"Additional front-end locations that are allowed to integrate with PropelAuth.\n"},"applicationUrl":{"type":"string","description":"The URL of the application that will be integrated with PropelAuth. This url is used in combination with the \u003cspan pulumi-lang-nodejs=\"`loginRedirectPath`\" pulumi-lang-dotnet=\"`LoginRedirectPath`\" pulumi-lang-go=\"`loginRedirectPath`\" pulumi-lang-python=\"`login_redirect_path`\" pulumi-lang-yaml=\"`loginRedirectPath`\" pulumi-lang-java=\"`loginRedirectPath`\"\u003e`login_redirect_path`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`logoutRedirectPath`\" pulumi-lang-dotnet=\"`LogoutRedirectPath`\" pulumi-lang-go=\"`logoutRedirectPath`\" pulumi-lang-python=\"`logout_redirect_path`\" pulumi-lang-yaml=\"`logoutRedirectPath`\" pulumi-lang-java=\"`logoutRedirectPath`\"\u003e`logout_redirect_path`\u003c/span\u003e to redirect users to your application after logging in or out. \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e must be a valid URL and can only be set for `Test` environments. For `Staging` and `Prod` environments, the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e must be the verified domain for the environment or a subdomain of it. See  \u003cspan pulumi-lang-nodejs=\"`propelauth.CustomDomainVerification`\" pulumi-lang-dotnet=\"`propelauth.CustomDomainVerification`\" pulumi-lang-go=\"`CustomDomainVerification`\" pulumi-lang-python=\"`CustomDomainVerification`\" pulumi-lang-yaml=\"`propelauth.CustomDomainVerification`\" pulumi-lang-java=\"`propelauth.CustomDomainVerification`\"\u003e`propelauth.CustomDomainVerification`\u003c/span\u003e resource for more information. Do not include any trailing path separator (`/`) in your URL. For example, `https://any.subdomain.example.com` where `example.com` has been verified.\n"},"environment":{"type":"string","description":"The environment for which you are configuring the front-end integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"loginRedirectPath":{"type":"string","description":"The URL path to redirect users to after they log in. This path is appended to the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e to form the full URL. For example, if \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e is `https://example.com` and \u003cspan pulumi-lang-nodejs=\"`loginRedirectPath`\" pulumi-lang-dotnet=\"`LoginRedirectPath`\" pulumi-lang-go=\"`loginRedirectPath`\" pulumi-lang-python=\"`login_redirect_path`\" pulumi-lang-yaml=\"`loginRedirectPath`\" pulumi-lang-java=\"`loginRedirectPath`\"\u003e`login_redirect_path`\u003c/span\u003e is `/dashboard`, the full URL will be `https://example.com/dashboard`.\n"},"logoutRedirectPath":{"type":"string","description":"The URL path to redirect users to after they log out. This path is appended to the \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e to form the full URL. For example, if \u003cspan pulumi-lang-nodejs=\"`applicationUrl`\" pulumi-lang-dotnet=\"`ApplicationUrl`\" pulumi-lang-go=\"`applicationUrl`\" pulumi-lang-python=\"`application_url`\" pulumi-lang-yaml=\"`applicationUrl`\" pulumi-lang-java=\"`applicationUrl`\"\u003e`application_url`\u003c/span\u003e is `https://example.com` and \u003cspan pulumi-lang-nodejs=\"`logoutRedirectPath`\" pulumi-lang-dotnet=\"`LogoutRedirectPath`\" pulumi-lang-go=\"`logoutRedirectPath`\" pulumi-lang-python=\"`logout_redirect_path`\" pulumi-lang-yaml=\"`logoutRedirectPath`\" pulumi-lang-java=\"`logoutRedirectPath`\"\u003e`logout_redirect_path`\u003c/span\u003e is `/goodbye`, the full URL will be `https://example.com/goodbye`.\n"}},"type":"object"}},"propelauth:index/image:Image":{"description":"Image for PropelAuth hosted pages.\n\n## Import\n\nImport using the image_type as the ID: `logo`, `favicon`, or `background`.\n\n```sh\n$ pulumi import propelauth:index/image:Image logo_example logo\n```\n\n","properties":{"imageId":{"type":"string","description":"The unique identifier of the image. This is generated by PropelAuth.\n"},"imageType":{"type":"string","description":"The type of the image. This is used to determine where the image is used in PropelAuth. Accepted values are \u003cspan pulumi-lang-nodejs=\"`logo`\" pulumi-lang-dotnet=\"`Logo`\" pulumi-lang-go=\"`logo`\" pulumi-lang-python=\"`logo`\" pulumi-lang-yaml=\"`logo`\" pulumi-lang-java=\"`logo`\"\u003e`logo`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`favicon`\" pulumi-lang-dotnet=\"`Favicon`\" pulumi-lang-go=\"`favicon`\" pulumi-lang-python=\"`favicon`\" pulumi-lang-yaml=\"`favicon`\" pulumi-lang-java=\"`favicon`\"\u003e`favicon`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`background`\" pulumi-lang-dotnet=\"`Background`\" pulumi-lang-go=\"`background`\" pulumi-lang-python=\"`background`\" pulumi-lang-yaml=\"`background`\" pulumi-lang-java=\"`background`\"\u003e`background`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`darkmodeLogo`\" pulumi-lang-dotnet=\"`DarkmodeLogo`\" pulumi-lang-go=\"`darkmodeLogo`\" pulumi-lang-python=\"`darkmode_logo`\" pulumi-lang-yaml=\"`darkmodeLogo`\" pulumi-lang-java=\"`darkmodeLogo`\"\u003e`darkmode_logo`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`darkmodeBackground`\" pulumi-lang-dotnet=\"`DarkmodeBackground`\" pulumi-lang-go=\"`darkmodeBackground`\" pulumi-lang-python=\"`darkmode_background`\" pulumi-lang-yaml=\"`darkmodeBackground`\" pulumi-lang-java=\"`darkmodeBackground`\"\u003e`darkmode_background`\u003c/span\u003e.\n"},"imageUrl":{"type":"string","description":"The URL of the image. This is generated by PropelAuth.\n"},"source":{"type":"string","description":"The path to a local file of the image.\n"},"version":{"type":"string","description":"The version of the image. This is used to detect updates to the image at the specified \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e.\n"}},"type":"object","required":["imageId","imageType","imageUrl","source","version"],"inputProperties":{"imageType":{"type":"string","description":"The type of the image. This is used to determine where the image is used in PropelAuth. Accepted values are \u003cspan pulumi-lang-nodejs=\"`logo`\" pulumi-lang-dotnet=\"`Logo`\" pulumi-lang-go=\"`logo`\" pulumi-lang-python=\"`logo`\" pulumi-lang-yaml=\"`logo`\" pulumi-lang-java=\"`logo`\"\u003e`logo`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`favicon`\" pulumi-lang-dotnet=\"`Favicon`\" pulumi-lang-go=\"`favicon`\" pulumi-lang-python=\"`favicon`\" pulumi-lang-yaml=\"`favicon`\" pulumi-lang-java=\"`favicon`\"\u003e`favicon`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`background`\" pulumi-lang-dotnet=\"`Background`\" pulumi-lang-go=\"`background`\" pulumi-lang-python=\"`background`\" pulumi-lang-yaml=\"`background`\" pulumi-lang-java=\"`background`\"\u003e`background`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`darkmodeLogo`\" pulumi-lang-dotnet=\"`DarkmodeLogo`\" pulumi-lang-go=\"`darkmodeLogo`\" pulumi-lang-python=\"`darkmode_logo`\" pulumi-lang-yaml=\"`darkmodeLogo`\" pulumi-lang-java=\"`darkmodeLogo`\"\u003e`darkmode_logo`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`darkmodeBackground`\" pulumi-lang-dotnet=\"`DarkmodeBackground`\" pulumi-lang-go=\"`darkmodeBackground`\" pulumi-lang-python=\"`darkmode_background`\" pulumi-lang-yaml=\"`darkmodeBackground`\" pulumi-lang-java=\"`darkmodeBackground`\"\u003e`darkmode_background`\u003c/span\u003e.\n"},"source":{"type":"string","description":"The path to a local file of the image.\n"},"version":{"type":"string","description":"The version of the image. This is used to detect updates to the image at the specified \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e.\n"}},"requiredInputs":["imageType","source","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Image resources.\n","properties":{"imageId":{"type":"string","description":"The unique identifier of the image. This is generated by PropelAuth.\n"},"imageType":{"type":"string","description":"The type of the image. This is used to determine where the image is used in PropelAuth. Accepted values are \u003cspan pulumi-lang-nodejs=\"`logo`\" pulumi-lang-dotnet=\"`Logo`\" pulumi-lang-go=\"`logo`\" pulumi-lang-python=\"`logo`\" pulumi-lang-yaml=\"`logo`\" pulumi-lang-java=\"`logo`\"\u003e`logo`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`favicon`\" pulumi-lang-dotnet=\"`Favicon`\" pulumi-lang-go=\"`favicon`\" pulumi-lang-python=\"`favicon`\" pulumi-lang-yaml=\"`favicon`\" pulumi-lang-java=\"`favicon`\"\u003e`favicon`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`background`\" pulumi-lang-dotnet=\"`Background`\" pulumi-lang-go=\"`background`\" pulumi-lang-python=\"`background`\" pulumi-lang-yaml=\"`background`\" pulumi-lang-java=\"`background`\"\u003e`background`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`darkmodeLogo`\" pulumi-lang-dotnet=\"`DarkmodeLogo`\" pulumi-lang-go=\"`darkmodeLogo`\" pulumi-lang-python=\"`darkmode_logo`\" pulumi-lang-yaml=\"`darkmodeLogo`\" pulumi-lang-java=\"`darkmodeLogo`\"\u003e`darkmode_logo`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`darkmodeBackground`\" pulumi-lang-dotnet=\"`DarkmodeBackground`\" pulumi-lang-go=\"`darkmodeBackground`\" pulumi-lang-python=\"`darkmode_background`\" pulumi-lang-yaml=\"`darkmodeBackground`\" pulumi-lang-java=\"`darkmodeBackground`\"\u003e`darkmode_background`\u003c/span\u003e.\n"},"imageUrl":{"type":"string","description":"The URL of the image. This is generated by PropelAuth.\n"},"source":{"type":"string","description":"The path to a local file of the image.\n"},"version":{"type":"string","description":"The version of the image. This is used to detect updates to the image at the specified \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e.\n"}},"type":"object"}},"propelauth:index/oauthClient:OauthClient":{"description":"Oauth Client Resource. This is for configuring the basic BE API key information in PropelAuth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Create a PropelAuth OAuth client for integrating your application.\nconst example = new propelauth.OauthClient(\"example\", {\n    environment: \"Prod\",\n    redirectUris: [\"https://*.example.com/oauth/callback\"],\n}, {\n    dependsOn: [myProdDomainVerification],\n});\nexport const oauthClientIdResult = example.clientId;\nexport const oauthClientSecretResult = example.clientSecret;\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Create a PropelAuth OAuth client for integrating your application.\nexample = propelauth.OauthClient(\"example\",\n    environment=\"Prod\",\n    redirect_uris=[\"https://*.example.com/oauth/callback\"],\n    opts = pulumi.ResourceOptions(depends_on=[my_prod_domain_verification]))\npulumi.export(\"oauthClientIdResult\", example.client_id)\npulumi.export(\"oauthClientSecretResult\", example.client_secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a PropelAuth OAuth client for integrating your application.\n    var example = new Propelauth.OauthClient(\"example\", new()\n    {\n        Environment = \"Prod\",\n        RedirectUris = new[]\n        {\n            \"https://*.example.com/oauth/callback\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myProdDomainVerification,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oauthClientIdResult\"] = example.ClientId,\n        [\"oauthClientSecretResult\"] = example.ClientSecret,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a PropelAuth OAuth client for integrating your application.\n\t\texample, err := propelauth.NewOauthClient(ctx, \"example\", \u0026propelauth.OauthClientArgs{\n\t\t\tEnvironment: pulumi.String(\"Prod\"),\n\t\t\tRedirectUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://*.example.com/oauth/callback\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyProdDomainVerification,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oauthClientIdResult\", example.ClientId)\n\t\tctx.Export(\"oauthClientSecretResult\", example.ClientSecret)\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.propelauth.OauthClient;\nimport com.pulumi.propelauth.OauthClientArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a PropelAuth OAuth client for integrating your application.\n        var example = new OauthClient(\"example\", OauthClientArgs.builder()\n            .environment(\"Prod\")\n            .redirectUris(\"https://*.example.com/oauth/callback\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(myProdDomainVerification)\n                .build());\n\n        ctx.export(\"oauthClientIdResult\", example.clientId());\n        ctx.export(\"oauthClientSecretResult\", example.clientSecret());\n    }\n}\n```\n```yaml\nresources:\n  # Create a PropelAuth OAuth client for integrating your application.\n  example:\n    type: propelauth:OauthClient\n    properties:\n      environment: Prod\n      redirectUris:\n        - https://*.example.com/oauth/callback\n    options:\n      dependsOn:\n        - ${myProdDomainVerification}\noutputs:\n  oauthClientIdResult: ${example.clientId}\n  oauthClientSecretResult: ${example.clientSecret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"clientId":{"type":"string","description":"The client ID set by PropelAuth.\n"},"clientSecret":{"type":"string","description":"The client secret set by PropelAuth.\n","secret":true},"environment":{"type":"string","description":"The environment for which you are integrating. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"redirectUris":{"type":"array","items":{"type":"string"},"description":"A list of redirect URIs that are whitelisted for this client. Must be a valid URL including a scheme and hostname. You may specify a wildcard (*) in the hostname to allow any subdomain.\n"}},"type":"object","required":["clientId","clientSecret","environment","redirectUris"],"inputProperties":{"environment":{"type":"string","description":"The environment for which you are integrating. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"redirectUris":{"type":"array","items":{"type":"string"},"description":"A list of redirect URIs that are whitelisted for this client. Must be a valid URL including a scheme and hostname. You may specify a wildcard (*) in the hostname to allow any subdomain.\n"}},"requiredInputs":["environment","redirectUris"],"stateInputs":{"description":"Input properties used for looking up and filtering OauthClient resources.\n","properties":{"clientId":{"type":"string","description":"The client ID set by PropelAuth.\n"},"clientSecret":{"type":"string","description":"The client secret set by PropelAuth.\n","secret":true},"environment":{"type":"string","description":"The environment for which you are integrating. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"redirectUris":{"type":"array","items":{"type":"string"},"description":"A list of redirect URIs that are whitelisted for this client. Must be a valid URL including a scheme and hostname. You may specify a wildcard (*) in the hostname to allow any subdomain.\n"}},"type":"object"}},"propelauth:index/organizationConfiguration:OrganizationConfiguration":{"description":"Organization Configuration. This is for configuring your global organization settings in PropelAuth. Settings on specific organizations can be managed in the dashboard.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Configure how your global organization settings in PropelAuth.\nconst example = new propelauth.OrganizationConfiguration(\"example\", {\n    hasOrgs: true,\n    orgsMetaname: \"Company\",\n    maxNumOrgsUsersCanBeIn: 1,\n    usersCanDeleteTheirOwnOrgs: true,\n    orgsCanRequire2fa: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Configure how your global organization settings in PropelAuth.\nexample = propelauth.OrganizationConfiguration(\"example\",\n    has_orgs=True,\n    orgs_metaname=\"Company\",\n    max_num_orgs_users_can_be_in=1,\n    users_can_delete_their_own_orgs=True,\n    orgs_can_require2fa=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Configure how your global organization settings in PropelAuth.\n    var example = new Propelauth.OrganizationConfiguration(\"example\", new()\n    {\n        HasOrgs = true,\n        OrgsMetaname = \"Company\",\n        MaxNumOrgsUsersCanBeIn = 1,\n        UsersCanDeleteTheirOwnOrgs = true,\n        OrgsCanRequire2fa = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Configure how your global organization settings in PropelAuth.\n\t\t_, err := propelauth.NewOrganizationConfiguration(ctx, \"example\", \u0026propelauth.OrganizationConfigurationArgs{\n\t\t\tHasOrgs:                    pulumi.Bool(true),\n\t\t\tOrgsMetaname:               pulumi.String(\"Company\"),\n\t\t\tMaxNumOrgsUsersCanBeIn:     pulumi.Float64(1),\n\t\t\tUsersCanDeleteTheirOwnOrgs: pulumi.Bool(true),\n\t\t\tOrgsCanRequire2fa:          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.propelauth.OrganizationConfiguration;\nimport com.pulumi.propelauth.OrganizationConfigurationArgs;\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        // Configure how your global organization settings in PropelAuth.\n        var example = new OrganizationConfiguration(\"example\", OrganizationConfigurationArgs.builder()\n            .hasOrgs(true)\n            .orgsMetaname(\"Company\")\n            .maxNumOrgsUsersCanBeIn(1.0)\n            .usersCanDeleteTheirOwnOrgs(true)\n            .orgsCanRequire2fa(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure how your global organization settings in PropelAuth.\n  example:\n    type: propelauth:OrganizationConfiguration\n    properties:\n      hasOrgs: true\n      orgsMetaname: Company\n      maxNumOrgsUsersCanBeIn: 1\n      usersCanDeleteTheirOwnOrgs: true\n      orgsCanRequire2fa: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one organization_configuration per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/organizationConfiguration:OrganizationConfiguration but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/organizationConfiguration:OrganizationConfiguration example arbitrary_string_here\n```\n\n","properties":{"allowAutojoinByDomain":{"type":"boolean","description":"If true, users with the requisite permissions will be able to allow or disallow the ability for anyone with a matching email domain to join an organization.The default setting is true.\n"},"customerOrgAuditLogSettings":{"$ref":"#/types/propelauth:index%2FOrganizationConfigurationCustomerOrgAuditLogSettings:OrganizationConfigurationCustomerOrgAuditLogSettings","description":"Settings for enabling whether and configuring how your customer organizations will have access to their own audit log.\n"},"defaultToSamlLogin":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, affected users will be directed to SAML by default in the hosted pages.The default setting is false."},"hasOrgs":{"type":"boolean","description":"This is the top level setting for whether organizations are in your PropelAuth integration.If false, all other organization settings are ignored. The default setting is true."},"maxNumOrgsUsersCanBeIn":{"type":"number","description":"This is the maximum number of organizations a user can be a member of. If a user tries to exceed this number, they will be asked to leave an existing organization. The default setting is 10."},"orgsCanRequire2fa":{"type":"boolean","description":"If true, organizations can require their users to use 2FA.The default setting is false. Warning: This is only applied in prod for some billing plans"},"orgsCanSetupSaml":{"type":"boolean","description":"If true, your users can setup a SAML connection for their organization. This allows them to log into your product using their existing work account managed by an Identity Provider like Okta, Azure/Entra, Google, and more. The default setting is false. Warning: This is only applied in prod for some billing plans"},"orgsMetaname":{"type":"string","description":"What name do you use for organizations? This will update the copy across your hosted pages.The default setting is 'Organization'."},"skipSamlRoleMappingStep":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, end users setting up SAML for their organization will not see the role-mapping step. The default setting is false."},"useOrgNameForSaml":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, users can look up and be redirected to their SSO provider using their organization's name.The default setting is false which means the SAML provider is instead inferred from their email address."},"usersCanCreateOrgs":{"type":"boolean","description":"If true, users have access to the 'Create Org' UI, allowing them to create their own organizations.The default setting is true."},"usersCanDeleteTheirOwnOrgs":{"type":"boolean","description":"If true, users with the requisite permission will be able to delete their organizations. The default setting is false."},"usersMustBeInAnOrganization":{"type":"boolean","description":"If true, users will be required to create or join an organization as part of the signup process. The default setting is false."}},"type":"object","inputProperties":{"allowAutojoinByDomain":{"type":"boolean","description":"If true, users with the requisite permissions will be able to allow or disallow the ability for anyone with a matching email domain to join an organization.The default setting is true.\n"},"customerOrgAuditLogSettings":{"$ref":"#/types/propelauth:index%2FOrganizationConfigurationCustomerOrgAuditLogSettings:OrganizationConfigurationCustomerOrgAuditLogSettings","description":"Settings for enabling whether and configuring how your customer organizations will have access to their own audit log.\n"},"defaultToSamlLogin":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, affected users will be directed to SAML by default in the hosted pages.The default setting is false."},"hasOrgs":{"type":"boolean","description":"This is the top level setting for whether organizations are in your PropelAuth integration.If false, all other organization settings are ignored. The default setting is true."},"maxNumOrgsUsersCanBeIn":{"type":"number","description":"This is the maximum number of organizations a user can be a member of. If a user tries to exceed this number, they will be asked to leave an existing organization. The default setting is 10."},"orgsCanRequire2fa":{"type":"boolean","description":"If true, organizations can require their users to use 2FA.The default setting is false. Warning: This is only applied in prod for some billing plans"},"orgsCanSetupSaml":{"type":"boolean","description":"If true, your users can setup a SAML connection for their organization. This allows them to log into your product using their existing work account managed by an Identity Provider like Okta, Azure/Entra, Google, and more. The default setting is false. Warning: This is only applied in prod for some billing plans"},"orgsMetaname":{"type":"string","description":"What name do you use for organizations? This will update the copy across your hosted pages.The default setting is 'Organization'."},"skipSamlRoleMappingStep":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, end users setting up SAML for their organization will not see the role-mapping step. The default setting is false."},"useOrgNameForSaml":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, users can look up and be redirected to their SSO provider using their organization's name.The default setting is false which means the SAML provider is instead inferred from their email address."},"usersCanCreateOrgs":{"type":"boolean","description":"If true, users have access to the 'Create Org' UI, allowing them to create their own organizations.The default setting is true."},"usersCanDeleteTheirOwnOrgs":{"type":"boolean","description":"If true, users with the requisite permission will be able to delete their organizations. The default setting is false."},"usersMustBeInAnOrganization":{"type":"boolean","description":"If true, users will be required to create or join an organization as part of the signup process. The default setting is false."}},"stateInputs":{"description":"Input properties used for looking up and filtering OrganizationConfiguration resources.\n","properties":{"allowAutojoinByDomain":{"type":"boolean","description":"If true, users with the requisite permissions will be able to allow or disallow the ability for anyone with a matching email domain to join an organization.The default setting is true.\n"},"customerOrgAuditLogSettings":{"$ref":"#/types/propelauth:index%2FOrganizationConfigurationCustomerOrgAuditLogSettings:OrganizationConfigurationCustomerOrgAuditLogSettings","description":"Settings for enabling whether and configuring how your customer organizations will have access to their own audit log.\n"},"defaultToSamlLogin":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, affected users will be directed to SAML by default in the hosted pages.The default setting is false."},"hasOrgs":{"type":"boolean","description":"This is the top level setting for whether organizations are in your PropelAuth integration.If false, all other organization settings are ignored. The default setting is true."},"maxNumOrgsUsersCanBeIn":{"type":"number","description":"This is the maximum number of organizations a user can be a member of. If a user tries to exceed this number, they will be asked to leave an existing organization. The default setting is 10."},"orgsCanRequire2fa":{"type":"boolean","description":"If true, organizations can require their users to use 2FA.The default setting is false. Warning: This is only applied in prod for some billing plans"},"orgsCanSetupSaml":{"type":"boolean","description":"If true, your users can setup a SAML connection for their organization. This allows them to log into your product using their existing work account managed by an Identity Provider like Okta, Azure/Entra, Google, and more. The default setting is false. Warning: This is only applied in prod for some billing plans"},"orgsMetaname":{"type":"string","description":"What name do you use for organizations? This will update the copy across your hosted pages.The default setting is 'Organization'."},"skipSamlRoleMappingStep":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, end users setting up SAML for their organization will not see the role-mapping step. The default setting is false."},"useOrgNameForSaml":{"type":"boolean","description":"This is an advanced setting that only applies if SAML is enabled. If true, users can look up and be redirected to their SSO provider using their organization's name.The default setting is false which means the SAML provider is instead inferred from their email address."},"usersCanCreateOrgs":{"type":"boolean","description":"If true, users have access to the 'Create Org' UI, allowing them to create their own organizations.The default setting is true."},"usersCanDeleteTheirOwnOrgs":{"type":"boolean","description":"If true, users with the requisite permission will be able to delete their organizations. The default setting is false."},"usersMustBeInAnOrganization":{"type":"boolean","description":"If true, users will be required to create or join an organization as part of the signup process. The default setting is false."}},"type":"object"}},"propelauth:index/projectInfo:ProjectInfo":{"description":"Project Info resource. This is for configuring the basic project information in PropelAuth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Set project-level metadata for your PropelAuth project.\nconst example = new propelauth.ProjectInfo(\"example\", {name: \"Project Name Here\"});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Set project-level metadata for your PropelAuth project.\nexample = propelauth.ProjectInfo(\"example\", name=\"Project Name Here\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Set project-level metadata for your PropelAuth project.\n    var example = new Propelauth.ProjectInfo(\"example\", new()\n    {\n        Name = \"Project Name Here\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Set project-level metadata for your PropelAuth project.\n\t\t_, err := propelauth.NewProjectInfo(ctx, \"example\", \u0026propelauth.ProjectInfoArgs{\n\t\t\tName: pulumi.String(\"Project Name Here\"),\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.propelauth.ProjectInfo;\nimport com.pulumi.propelauth.ProjectInfoArgs;\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        // Set project-level metadata for your PropelAuth project.\n        var example = new ProjectInfo(\"example\", ProjectInfoArgs.builder()\n            .name(\"Project Name Here\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set project-level metadata for your PropelAuth project.\n  example:\n    type: propelauth:ProjectInfo\n    properties:\n      name: Project Name Here\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one project_info per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/projectInfo:ProjectInfo but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/projectInfo:ProjectInfo example arbitrary_string_here\n```\n\n","properties":{"name":{"type":"string","description":"The project's name. It will be used in emails and hosted page titles.\n"}},"type":"object","required":["name"],"inputProperties":{"name":{"type":"string","description":"The project's name. It will be used in emails and hosted page titles.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ProjectInfo resources.\n","properties":{"name":{"type":"string","description":"The project's name. It will be used in emails and hosted page titles.\n"}},"type":"object"}},"propelauth:index/rolesAndPermissions:RolesAndPermissions":{"description":"Roles and Permissions resource. This is for configuring the basic roles and permissions information in PropelAuth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Configure what organization roles are available to your users and the permissions associated with them.\nconst example = new propelauth.RolesAndPermissions(\"example\", {\n    permissions: [\n        {\n            name: \"doc::read\",\n            displayName: \"Can read documents.\",\n            description: \"A description here.\",\n        },\n        {\n            name: \"doc::write\",\n        },\n        {\n            name: \"ticket::read\",\n        },\n        {\n            name: \"ticket::write\",\n        },\n        {\n            name: \"ai::deploy\",\n        },\n    ],\n    roles: {\n        Owner: {\n            canViewOtherMembers: true,\n            canInvite: true,\n            canChangeRoles: true,\n            canManageApiKeys: true,\n            canRemoveUsers: true,\n            canSetupSaml: true,\n            canDeleteOrg: true,\n            canEditOrgAccess: true,\n            canUpdateOrgMetadata: true,\n            permissions: [\n                \"doc::read\",\n                \"doc::write\",\n                \"ticket::read\",\n                \"ticket::write\",\n            ],\n        },\n        Admin: {\n            canViewOtherMembers: true,\n            canInvite: true,\n            canChangeRoles: true,\n            canManageApiKeys: false,\n            canRemoveUsers: true,\n            canSetupSaml: false,\n            canDeleteOrg: false,\n            canEditOrgAccess: false,\n            canUpdateOrgMetadata: false,\n            permissions: [\n                \"doc::read\",\n                \"doc::write\",\n                \"ticket::read\",\n            ],\n        },\n        Member: {\n            permissions: [\n                \"doc::read\",\n                \"ticket::read\",\n            ],\n        },\n        Support: {\n            isInternal: true,\n            canViewOtherMembers: true,\n            canInvite: false,\n            canChangeRoles: false,\n            canManageApiKeys: false,\n            canRemoveUsers: false,\n            canSetupSaml: false,\n            canDeleteOrg: false,\n            canEditOrgAccess: false,\n            canUpdateOrgMetadata: false,\n            permissions: [\n                \"doc::read\",\n                \"ticket::read\",\n                \"ai::deploy\",\n            ],\n        },\n    },\n    roleHierarchies: [\n        \"Owner\",\n        \"Admin\",\n        \"Support\",\n        \"Member\",\n    ],\n    defaultRole: \"Member\",\n    defaultOwnerRole: \"Owner\",\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Configure what organization roles are available to your users and the permissions associated with them.\nexample = propelauth.RolesAndPermissions(\"example\",\n    permissions=[\n        {\n            \"name\": \"doc::read\",\n            \"display_name\": \"Can read documents.\",\n            \"description\": \"A description here.\",\n        },\n        {\n            \"name\": \"doc::write\",\n        },\n        {\n            \"name\": \"ticket::read\",\n        },\n        {\n            \"name\": \"ticket::write\",\n        },\n        {\n            \"name\": \"ai::deploy\",\n        },\n    ],\n    roles={\n        \"Owner\": {\n            \"can_view_other_members\": True,\n            \"can_invite\": True,\n            \"can_change_roles\": True,\n            \"can_manage_api_keys\": True,\n            \"can_remove_users\": True,\n            \"can_setup_saml\": True,\n            \"can_delete_org\": True,\n            \"can_edit_org_access\": True,\n            \"can_update_org_metadata\": True,\n            \"permissions\": [\n                \"doc::read\",\n                \"doc::write\",\n                \"ticket::read\",\n                \"ticket::write\",\n            ],\n        },\n        \"Admin\": {\n            \"can_view_other_members\": True,\n            \"can_invite\": True,\n            \"can_change_roles\": True,\n            \"can_manage_api_keys\": False,\n            \"can_remove_users\": True,\n            \"can_setup_saml\": False,\n            \"can_delete_org\": False,\n            \"can_edit_org_access\": False,\n            \"can_update_org_metadata\": False,\n            \"permissions\": [\n                \"doc::read\",\n                \"doc::write\",\n                \"ticket::read\",\n            ],\n        },\n        \"Member\": {\n            \"permissions\": [\n                \"doc::read\",\n                \"ticket::read\",\n            ],\n        },\n        \"Support\": {\n            \"is_internal\": True,\n            \"can_view_other_members\": True,\n            \"can_invite\": False,\n            \"can_change_roles\": False,\n            \"can_manage_api_keys\": False,\n            \"can_remove_users\": False,\n            \"can_setup_saml\": False,\n            \"can_delete_org\": False,\n            \"can_edit_org_access\": False,\n            \"can_update_org_metadata\": False,\n            \"permissions\": [\n                \"doc::read\",\n                \"ticket::read\",\n                \"ai::deploy\",\n            ],\n        },\n    },\n    role_hierarchies=[\n        \"Owner\",\n        \"Admin\",\n        \"Support\",\n        \"Member\",\n    ],\n    default_role=\"Member\",\n    default_owner_role=\"Owner\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Configure what organization roles are available to your users and the permissions associated with them.\n    var example = new Propelauth.RolesAndPermissions(\"example\", new()\n    {\n        Permissions = new[]\n        {\n            new Propelauth.Inputs.RolesAndPermissionsPermissionArgs\n            {\n                Name = \"doc::read\",\n                DisplayName = \"Can read documents.\",\n                Description = \"A description here.\",\n            },\n            new Propelauth.Inputs.RolesAndPermissionsPermissionArgs\n            {\n                Name = \"doc::write\",\n            },\n            new Propelauth.Inputs.RolesAndPermissionsPermissionArgs\n            {\n                Name = \"ticket::read\",\n            },\n            new Propelauth.Inputs.RolesAndPermissionsPermissionArgs\n            {\n                Name = \"ticket::write\",\n            },\n            new Propelauth.Inputs.RolesAndPermissionsPermissionArgs\n            {\n                Name = \"ai::deploy\",\n            },\n        },\n        Roles = \n        {\n            { \"Owner\", new Propelauth.Inputs.RolesAndPermissionsRolesArgs\n            {\n                CanViewOtherMembers = true,\n                CanInvite = true,\n                CanChangeRoles = true,\n                CanManageApiKeys = true,\n                CanRemoveUsers = true,\n                CanSetupSaml = true,\n                CanDeleteOrg = true,\n                CanEditOrgAccess = true,\n                CanUpdateOrgMetadata = true,\n                Permissions = new[]\n                {\n                    \"doc::read\",\n                    \"doc::write\",\n                    \"ticket::read\",\n                    \"ticket::write\",\n                },\n            } },\n            { \"Admin\", new Propelauth.Inputs.RolesAndPermissionsRolesArgs\n            {\n                CanViewOtherMembers = true,\n                CanInvite = true,\n                CanChangeRoles = true,\n                CanManageApiKeys = false,\n                CanRemoveUsers = true,\n                CanSetupSaml = false,\n                CanDeleteOrg = false,\n                CanEditOrgAccess = false,\n                CanUpdateOrgMetadata = false,\n                Permissions = new[]\n                {\n                    \"doc::read\",\n                    \"doc::write\",\n                    \"ticket::read\",\n                },\n            } },\n            { \"Member\", new Propelauth.Inputs.RolesAndPermissionsRolesArgs\n            {\n                Permissions = new[]\n                {\n                    \"doc::read\",\n                    \"ticket::read\",\n                },\n            } },\n            { \"Support\", new Propelauth.Inputs.RolesAndPermissionsRolesArgs\n            {\n                IsInternal = true,\n                CanViewOtherMembers = true,\n                CanInvite = false,\n                CanChangeRoles = false,\n                CanManageApiKeys = false,\n                CanRemoveUsers = false,\n                CanSetupSaml = false,\n                CanDeleteOrg = false,\n                CanEditOrgAccess = false,\n                CanUpdateOrgMetadata = false,\n                Permissions = new[]\n                {\n                    \"doc::read\",\n                    \"ticket::read\",\n                    \"ai::deploy\",\n                },\n            } },\n        },\n        RoleHierarchies = new[]\n        {\n            \"Owner\",\n            \"Admin\",\n            \"Support\",\n            \"Member\",\n        },\n        DefaultRole = \"Member\",\n        DefaultOwnerRole = \"Owner\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Configure what organization roles are available to your users and the permissions associated with them.\n\t\t_, err := propelauth.NewRolesAndPermissions(ctx, \"example\", \u0026propelauth.RolesAndPermissionsArgs{\n\t\t\tPermissions: propelauth.RolesAndPermissionsPermissionArray{\n\t\t\t\t\u0026propelauth.RolesAndPermissionsPermissionArgs{\n\t\t\t\t\tName:        pulumi.String(\"doc::read\"),\n\t\t\t\t\tDisplayName: pulumi.String(\"Can read documents.\"),\n\t\t\t\t\tDescription: pulumi.String(\"A description here.\"),\n\t\t\t\t},\n\t\t\t\t\u0026propelauth.RolesAndPermissionsPermissionArgs{\n\t\t\t\t\tName: pulumi.String(\"doc::write\"),\n\t\t\t\t},\n\t\t\t\t\u0026propelauth.RolesAndPermissionsPermissionArgs{\n\t\t\t\t\tName: pulumi.String(\"ticket::read\"),\n\t\t\t\t},\n\t\t\t\t\u0026propelauth.RolesAndPermissionsPermissionArgs{\n\t\t\t\t\tName: pulumi.String(\"ticket::write\"),\n\t\t\t\t},\n\t\t\t\t\u0026propelauth.RolesAndPermissionsPermissionArgs{\n\t\t\t\t\tName: pulumi.String(\"ai::deploy\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: propelauth.RolesAndPermissionsRolesMap{\n\t\t\t\t\"Owner\": \u0026propelauth.RolesAndPermissionsRolesArgs{\n\t\t\t\t\tCanViewOtherMembers:  pulumi.Bool(true),\n\t\t\t\t\tCanInvite:            pulumi.Bool(true),\n\t\t\t\t\tCanChangeRoles:       pulumi.Bool(true),\n\t\t\t\t\tCanManageApiKeys:     pulumi.Bool(true),\n\t\t\t\t\tCanRemoveUsers:       pulumi.Bool(true),\n\t\t\t\t\tCanSetupSaml:         pulumi.Bool(true),\n\t\t\t\t\tCanDeleteOrg:         pulumi.Bool(true),\n\t\t\t\t\tCanEditOrgAccess:     pulumi.Bool(true),\n\t\t\t\t\tCanUpdateOrgMetadata: pulumi.Bool(true),\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"doc::read\"),\n\t\t\t\t\t\tpulumi.String(\"doc::write\"),\n\t\t\t\t\t\tpulumi.String(\"ticket::read\"),\n\t\t\t\t\t\tpulumi.String(\"ticket::write\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"Admin\": \u0026propelauth.RolesAndPermissionsRolesArgs{\n\t\t\t\t\tCanViewOtherMembers:  pulumi.Bool(true),\n\t\t\t\t\tCanInvite:            pulumi.Bool(true),\n\t\t\t\t\tCanChangeRoles:       pulumi.Bool(true),\n\t\t\t\t\tCanManageApiKeys:     pulumi.Bool(false),\n\t\t\t\t\tCanRemoveUsers:       pulumi.Bool(true),\n\t\t\t\t\tCanSetupSaml:         pulumi.Bool(false),\n\t\t\t\t\tCanDeleteOrg:         pulumi.Bool(false),\n\t\t\t\t\tCanEditOrgAccess:     pulumi.Bool(false),\n\t\t\t\t\tCanUpdateOrgMetadata: pulumi.Bool(false),\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"doc::read\"),\n\t\t\t\t\t\tpulumi.String(\"doc::write\"),\n\t\t\t\t\t\tpulumi.String(\"ticket::read\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"Member\": \u0026propelauth.RolesAndPermissionsRolesArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"doc::read\"),\n\t\t\t\t\t\tpulumi.String(\"ticket::read\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"Support\": \u0026propelauth.RolesAndPermissionsRolesArgs{\n\t\t\t\t\tIsInternal:           pulumi.Bool(true),\n\t\t\t\t\tCanViewOtherMembers:  pulumi.Bool(true),\n\t\t\t\t\tCanInvite:            pulumi.Bool(false),\n\t\t\t\t\tCanChangeRoles:       pulumi.Bool(false),\n\t\t\t\t\tCanManageApiKeys:     pulumi.Bool(false),\n\t\t\t\t\tCanRemoveUsers:       pulumi.Bool(false),\n\t\t\t\t\tCanSetupSaml:         pulumi.Bool(false),\n\t\t\t\t\tCanDeleteOrg:         pulumi.Bool(false),\n\t\t\t\t\tCanEditOrgAccess:     pulumi.Bool(false),\n\t\t\t\t\tCanUpdateOrgMetadata: pulumi.Bool(false),\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"doc::read\"),\n\t\t\t\t\t\tpulumi.String(\"ticket::read\"),\n\t\t\t\t\t\tpulumi.String(\"ai::deploy\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoleHierarchies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Owner\"),\n\t\t\t\tpulumi.String(\"Admin\"),\n\t\t\t\tpulumi.String(\"Support\"),\n\t\t\t\tpulumi.String(\"Member\"),\n\t\t\t},\n\t\t\tDefaultRole:      pulumi.String(\"Member\"),\n\t\t\tDefaultOwnerRole: pulumi.String(\"Owner\"),\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.propelauth.RolesAndPermissions;\nimport com.pulumi.propelauth.RolesAndPermissionsArgs;\nimport com.pulumi.propelauth.inputs.RolesAndPermissionsPermissionArgs;\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        // Configure what organization roles are available to your users and the permissions associated with them.\n        var example = new RolesAndPermissions(\"example\", RolesAndPermissionsArgs.builder()\n            .permissions(            \n                RolesAndPermissionsPermissionArgs.builder()\n                    .name(\"doc::read\")\n                    .displayName(\"Can read documents.\")\n                    .description(\"A description here.\")\n                    .build(),\n                RolesAndPermissionsPermissionArgs.builder()\n                    .name(\"doc::write\")\n                    .build(),\n                RolesAndPermissionsPermissionArgs.builder()\n                    .name(\"ticket::read\")\n                    .build(),\n                RolesAndPermissionsPermissionArgs.builder()\n                    .name(\"ticket::write\")\n                    .build(),\n                RolesAndPermissionsPermissionArgs.builder()\n                    .name(\"ai::deploy\")\n                    .build())\n            .roles(Map.ofEntries(\n                Map.entry(\"Owner\", RolesAndPermissionsRolesArgs.builder()\n                    .canViewOtherMembers(true)\n                    .canInvite(true)\n                    .canChangeRoles(true)\n                    .canManageApiKeys(true)\n                    .canRemoveUsers(true)\n                    .canSetupSaml(true)\n                    .canDeleteOrg(true)\n                    .canEditOrgAccess(true)\n                    .canUpdateOrgMetadata(true)\n                    .permissions(                    \n                        \"doc::read\",\n                        \"doc::write\",\n                        \"ticket::read\",\n                        \"ticket::write\")\n                    .build()),\n                Map.entry(\"Admin\", RolesAndPermissionsRolesArgs.builder()\n                    .canViewOtherMembers(true)\n                    .canInvite(true)\n                    .canChangeRoles(true)\n                    .canManageApiKeys(false)\n                    .canRemoveUsers(true)\n                    .canSetupSaml(false)\n                    .canDeleteOrg(false)\n                    .canEditOrgAccess(false)\n                    .canUpdateOrgMetadata(false)\n                    .permissions(                    \n                        \"doc::read\",\n                        \"doc::write\",\n                        \"ticket::read\")\n                    .build()),\n                Map.entry(\"Member\", RolesAndPermissionsRolesArgs.builder()\n                    .permissions(                    \n                        \"doc::read\",\n                        \"ticket::read\")\n                    .build()),\n                Map.entry(\"Support\", RolesAndPermissionsRolesArgs.builder()\n                    .isInternal(true)\n                    .canViewOtherMembers(true)\n                    .canInvite(false)\n                    .canChangeRoles(false)\n                    .canManageApiKeys(false)\n                    .canRemoveUsers(false)\n                    .canSetupSaml(false)\n                    .canDeleteOrg(false)\n                    .canEditOrgAccess(false)\n                    .canUpdateOrgMetadata(false)\n                    .permissions(                    \n                        \"doc::read\",\n                        \"ticket::read\",\n                        \"ai::deploy\")\n                    .build())\n            ))\n            .roleHierarchies(            \n                \"Owner\",\n                \"Admin\",\n                \"Support\",\n                \"Member\")\n            .defaultRole(\"Member\")\n            .defaultOwnerRole(\"Owner\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Configure what organization roles are available to your users and the permissions associated with them.\n  example:\n    type: propelauth:RolesAndPermissions\n    properties:\n      permissions:\n        - name: doc::read\n          displayName: Can read documents.\n          description: A description here.\n        - name: doc::write\n        - name: ticket::read\n        - name: ticket::write\n        - name: ai::deploy\n      roles:\n        Owner:\n          canViewOtherMembers: true\n          canInvite: true\n          canChangeRoles: true\n          canManageApiKeys: true\n          canRemoveUsers: true\n          canSetupSaml: true\n          canDeleteOrg: true\n          canEditOrgAccess: true\n          canUpdateOrgMetadata: true\n          permissions:\n            - doc::read\n            - doc::write\n            - ticket::read\n            - ticket::write\n        Admin:\n          canViewOtherMembers: true\n          canInvite: true\n          canChangeRoles: true\n          canManageApiKeys: false\n          canRemoveUsers: true\n          canSetupSaml: false\n          canDeleteOrg: false\n          canEditOrgAccess: false\n          canUpdateOrgMetadata: false\n          permissions:\n            - doc::read\n            - doc::write\n            - ticket::read\n        Member:\n          permissions:\n            - doc::read\n            - ticket::read\n        Support:\n          isInternal: true\n          canViewOtherMembers: true\n          canInvite: false\n          canChangeRoles: false\n          canManageApiKeys: false\n          canRemoveUsers: false\n          canSetupSaml: false\n          canDeleteOrg: false\n          canEditOrgAccess: false\n          canUpdateOrgMetadata: false\n          permissions:\n            - doc::read\n            - ticket::read\n            - ai::deploy\n      roleHierarchies:\n        - Owner\n        - Admin\n        - Support\n        - Member\n      defaultRole: Member\n      defaultOwnerRole: Owner\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one default roles_and_permissions per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/rolesAndPermissions:RolesAndPermissions but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/rolesAndPermissions:RolesAndPermissions example arbitrary_string_here\n```\n\n","properties":{"defaultOwnerRole":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`defaultOwnerRole`\" pulumi-lang-dotnet=\"`DefaultOwnerRole`\" pulumi-lang-go=\"`defaultOwnerRole`\" pulumi-lang-python=\"`default_owner_role`\" pulumi-lang-yaml=\"`defaultOwnerRole`\" pulumi-lang-java=\"`defaultOwnerRole`\"\u003e`default_owner_role`\u003c/span\u003e is the role automatically assigned to the user who creates the organization.\n"},"defaultRole":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`defaultRole`\" pulumi-lang-dotnet=\"`DefaultRole`\" pulumi-lang-go=\"`defaultRole`\" pulumi-lang-python=\"`default_role`\" pulumi-lang-yaml=\"`defaultRole`\" pulumi-lang-java=\"`defaultRole`\"\u003e`default_role`\u003c/span\u003e is the role assigned to a user if they join an organization and no other role is assigned to them. It is also the fallback role in the instance their role is deleted from the configuration without a replacement.\n"},"multipleRolesPerUser":{"type":"boolean","description":"If true, than each member of an organization can have multiple roles and their is no hierarchy between roles. Instead, the relationship between roles is defined by the \u003cspan pulumi-lang-nodejs=\"`rolesCanManage`\" pulumi-lang-dotnet=\"`RolesCanManage`\" pulumi-lang-go=\"`rolesCanManage`\" pulumi-lang-python=\"`roles_can_manage`\" pulumi-lang-yaml=\"`rolesCanManage`\" pulumi-lang-java=\"`rolesCanManage`\"\u003e`roles_can_manage`\u003c/span\u003e field on each individual role definition. A single-role project can be migrated to multi-role, but not the other way around. Because of this, this can only be set in the PropelAuth dashboard.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FRolesAndPermissionsPermission:RolesAndPermissionsPermission"},"description":"A list of permissions that are specific to your application and can be assigned to individual roles.\n"},"roleHierarchies":{"type":"array","items":{"type":"string"},"description":"A list of roles in order of hierarchy. The first role in the list is the highest role and the last role is the lowest role. This is only relevant if \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is false. If \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is true, the roles that a role can manage is defined by the \u003cspan pulumi-lang-nodejs=\"`rolesCanManage`\" pulumi-lang-dotnet=\"`RolesCanManage`\" pulumi-lang-go=\"`rolesCanManage`\" pulumi-lang-python=\"`roles_can_manage`\" pulumi-lang-yaml=\"`rolesCanManage`\" pulumi-lang-java=\"`rolesCanManage`\"\u003e`roles_can_manage`\u003c/span\u003e field on each individual role definition.\n"},"roles":{"type":"object","additionalProperties":{"$ref":"#/types/propelauth:index%2FRolesAndPermissionsRoles:RolesAndPermissionsRoles"}}},"type":"object","required":["defaultOwnerRole","defaultRole","multipleRolesPerUser","roleHierarchies","roles"],"inputProperties":{"defaultOwnerRole":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`defaultOwnerRole`\" pulumi-lang-dotnet=\"`DefaultOwnerRole`\" pulumi-lang-go=\"`defaultOwnerRole`\" pulumi-lang-python=\"`default_owner_role`\" pulumi-lang-yaml=\"`defaultOwnerRole`\" pulumi-lang-java=\"`defaultOwnerRole`\"\u003e`default_owner_role`\u003c/span\u003e is the role automatically assigned to the user who creates the organization.\n"},"defaultRole":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`defaultRole`\" pulumi-lang-dotnet=\"`DefaultRole`\" pulumi-lang-go=\"`defaultRole`\" pulumi-lang-python=\"`default_role`\" pulumi-lang-yaml=\"`defaultRole`\" pulumi-lang-java=\"`defaultRole`\"\u003e`default_role`\u003c/span\u003e is the role assigned to a user if they join an organization and no other role is assigned to them. It is also the fallback role in the instance their role is deleted from the configuration without a replacement.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FRolesAndPermissionsPermission:RolesAndPermissionsPermission"},"description":"A list of permissions that are specific to your application and can be assigned to individual roles.\n"},"roleHierarchies":{"type":"array","items":{"type":"string"},"description":"A list of roles in order of hierarchy. The first role in the list is the highest role and the last role is the lowest role. This is only relevant if \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is false. If \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is true, the roles that a role can manage is defined by the \u003cspan pulumi-lang-nodejs=\"`rolesCanManage`\" pulumi-lang-dotnet=\"`RolesCanManage`\" pulumi-lang-go=\"`rolesCanManage`\" pulumi-lang-python=\"`roles_can_manage`\" pulumi-lang-yaml=\"`rolesCanManage`\" pulumi-lang-java=\"`rolesCanManage`\"\u003e`roles_can_manage`\u003c/span\u003e field on each individual role definition.\n"},"roles":{"type":"object","additionalProperties":{"$ref":"#/types/propelauth:index%2FRolesAndPermissionsRoles:RolesAndPermissionsRoles"}}},"requiredInputs":["defaultOwnerRole","defaultRole","roles"],"stateInputs":{"description":"Input properties used for looking up and filtering RolesAndPermissions resources.\n","properties":{"defaultOwnerRole":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`defaultOwnerRole`\" pulumi-lang-dotnet=\"`DefaultOwnerRole`\" pulumi-lang-go=\"`defaultOwnerRole`\" pulumi-lang-python=\"`default_owner_role`\" pulumi-lang-yaml=\"`defaultOwnerRole`\" pulumi-lang-java=\"`defaultOwnerRole`\"\u003e`default_owner_role`\u003c/span\u003e is the role automatically assigned to the user who creates the organization.\n"},"defaultRole":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`defaultRole`\" pulumi-lang-dotnet=\"`DefaultRole`\" pulumi-lang-go=\"`defaultRole`\" pulumi-lang-python=\"`default_role`\" pulumi-lang-yaml=\"`defaultRole`\" pulumi-lang-java=\"`defaultRole`\"\u003e`default_role`\u003c/span\u003e is the role assigned to a user if they join an organization and no other role is assigned to them. It is also the fallback role in the instance their role is deleted from the configuration without a replacement.\n"},"multipleRolesPerUser":{"type":"boolean","description":"If true, than each member of an organization can have multiple roles and their is no hierarchy between roles. Instead, the relationship between roles is defined by the \u003cspan pulumi-lang-nodejs=\"`rolesCanManage`\" pulumi-lang-dotnet=\"`RolesCanManage`\" pulumi-lang-go=\"`rolesCanManage`\" pulumi-lang-python=\"`roles_can_manage`\" pulumi-lang-yaml=\"`rolesCanManage`\" pulumi-lang-java=\"`rolesCanManage`\"\u003e`roles_can_manage`\u003c/span\u003e field on each individual role definition. A single-role project can be migrated to multi-role, but not the other way around. Because of this, this can only be set in the PropelAuth dashboard.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FRolesAndPermissionsPermission:RolesAndPermissionsPermission"},"description":"A list of permissions that are specific to your application and can be assigned to individual roles.\n"},"roleHierarchies":{"type":"array","items":{"type":"string"},"description":"A list of roles in order of hierarchy. The first role in the list is the highest role and the last role is the lowest role. This is only relevant if \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is false. If \u003cspan pulumi-lang-nodejs=\"`multipleRolesPerUser`\" pulumi-lang-dotnet=\"`MultipleRolesPerUser`\" pulumi-lang-go=\"`multipleRolesPerUser`\" pulumi-lang-python=\"`multiple_roles_per_user`\" pulumi-lang-yaml=\"`multipleRolesPerUser`\" pulumi-lang-java=\"`multipleRolesPerUser`\"\u003e`multiple_roles_per_user`\u003c/span\u003e is true, the roles that a role can manage is defined by the \u003cspan pulumi-lang-nodejs=\"`rolesCanManage`\" pulumi-lang-dotnet=\"`RolesCanManage`\" pulumi-lang-go=\"`rolesCanManage`\" pulumi-lang-python=\"`roles_can_manage`\" pulumi-lang-yaml=\"`rolesCanManage`\" pulumi-lang-java=\"`rolesCanManage`\"\u003e`roles_can_manage`\u003c/span\u003e field on each individual role definition.\n"},"roles":{"type":"object","additionalProperties":{"$ref":"#/types/propelauth:index%2FRolesAndPermissionsRoles:RolesAndPermissionsRoles"}}},"type":"object"}},"propelauth:index/socialLogin:SocialLogin":{"description":"Backend API Key resource. This is for configuring the basic BE API key information in PropelAuth.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\nconst config = new pulumi.Config();\nconst githubClientSecret = config.require(\"githubClientSecret\");\nconst githubSso = new propelauth.SocialLogin(\"github_sso\", {\n    socialProvider: \"GitHub\",\n    clientId: \"my-client-id\",\n    clientSecret: githubClientSecret,\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\nconfig = pulumi.Config()\ngithub_client_secret = config.require(\"githubClientSecret\")\ngithub_sso = propelauth.SocialLogin(\"github_sso\",\n    social_provider=\"GitHub\",\n    client_id=\"my-client-id\",\n    client_secret=github_client_secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var githubClientSecret = config.Require(\"githubClientSecret\");\n    var githubSso = new Propelauth.SocialLogin(\"github_sso\", new()\n    {\n        SocialProvider = \"GitHub\",\n        ClientId = \"my-client-id\",\n        ClientSecret = githubClientSecret,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgithubClientSecret := cfg.Require(\"githubClientSecret\")\n\t\t_, err := propelauth.NewSocialLogin(ctx, \"github_sso\", \u0026propelauth.SocialLoginArgs{\n\t\t\tSocialProvider: pulumi.String(\"GitHub\"),\n\t\t\tClientId:       pulumi.String(\"my-client-id\"),\n\t\t\tClientSecret:   pulumi.String(githubClientSecret),\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.propelauth.SocialLogin;\nimport com.pulumi.propelauth.SocialLoginArgs;\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 config = ctx.config();\n        final var githubClientSecret = config.get(\"githubClientSecret\");\n        var githubSso = new SocialLogin(\"githubSso\", SocialLoginArgs.builder()\n            .socialProvider(\"GitHub\")\n            .clientId(\"my-client-id\")\n            .clientSecret(githubClientSecret)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  githubClientSecret:\n    type: string\nresources:\n  githubSso:\n    type: propelauth:SocialLogin\n    name: github_sso\n    properties:\n      socialProvider: GitHub\n      clientId: my-client-id\n      clientSecret: ${githubClientSecret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport an existing social login integration by the social_provider name\n\n```sh\n$ pulumi import propelauth:index/socialLogin:SocialLogin github_sso GitHub\n```\n\nor\n\n```sh\n$ pulumi import propelauth:index/socialLogin:SocialLogin mircosoft_sso Microsoft\n```\n\n","properties":{"clientId":{"type":"string","description":"The client ID. This is a unique identifier for the oauth client that can be retrieved from the OIDC provider.\n"},"clientSecret":{"type":"string","description":"The client secret for the oauth client that can be retrieved from the OIDC provider.\n","secret":true},"socialProvider":{"type":"string","description":"The OIDC provider for the Social Login you're configuring. This is only for internal dislay purposes.Accepted values are `Google`, `Microsoft`, `GitHub`, `Slack`, `LinkedIn`, `Atlassian`, `Apple`, `Salesforce`, `QuickBooks`, `Xero`, `Salesloft`, and `Outreach`.\n"}},"type":"object","required":["clientId","clientSecret","socialProvider"],"inputProperties":{"clientId":{"type":"string","description":"The client ID. This is a unique identifier for the oauth client that can be retrieved from the OIDC provider.\n"},"clientSecret":{"type":"string","description":"The client secret for the oauth client that can be retrieved from the OIDC provider.\n","secret":true},"socialProvider":{"type":"string","description":"The OIDC provider for the Social Login you're configuring. This is only for internal dislay purposes.Accepted values are `Google`, `Microsoft`, `GitHub`, `Slack`, `LinkedIn`, `Atlassian`, `Apple`, `Salesforce`, `QuickBooks`, `Xero`, `Salesloft`, and `Outreach`.\n"}},"requiredInputs":["clientId","clientSecret","socialProvider"],"stateInputs":{"description":"Input properties used for looking up and filtering SocialLogin resources.\n","properties":{"clientId":{"type":"string","description":"The client ID. This is a unique identifier for the oauth client that can be retrieved from the OIDC provider.\n"},"clientSecret":{"type":"string","description":"The client secret for the oauth client that can be retrieved from the OIDC provider.\n","secret":true},"socialProvider":{"type":"string","description":"The OIDC provider for the Social Login you're configuring. This is only for internal dislay purposes.Accepted values are `Google`, `Microsoft`, `GitHub`, `Slack`, `LinkedIn`, `Atlassian`, `Apple`, `Salesforce`, `QuickBooks`, `Xero`, `Salesloft`, and `Outreach`.\n"}},"type":"object"}},"propelauth:index/theme:Theme":{"description":"Hosted Pages Look \u0026 Feel. This is for configuring the look and feel of your PropelAuth hosted pages\n\n## Import\n\nAs there is only one theme per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/theme:Theme but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/theme:Theme example arbitrary_string_here\n```\n\nNote: The propelauth_theme resource has many default values for attributes set by the provider\n\nif you do not provide them. Carefully review the plan for any unexpected changes before applying.\n\n","properties":{"bodyFont":{"type":"string","description":"The font used for all body text in your hosted pages. This includes both login and management pages. The available options are the same as for \u003cspan pulumi-lang-nodejs=\"`headerFont`\" pulumi-lang-dotnet=\"`HeaderFont`\" pulumi-lang-go=\"`headerFont`\" pulumi-lang-python=\"`header_font`\" pulumi-lang-yaml=\"`headerFont`\" pulumi-lang-java=\"`headerFont`\"\u003e`header_font`\u003c/span\u003e. The default value is `Inter`\n"},"displayProjectName":{"type":"boolean","description":"If true, the project name is displayed in the header of the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"headerFont":{"type":"string","description":"The font used for all headings in your hosted pages written in PascalCase. This includes both login and management pages. Options include `Roboto`, `Inter`, `OpenSans`, `Montserrat`, `Lato`, `Poppins`, `Raleway`, `Jost`, `Fraunces`, `Caveat`, `PlusJakartaSans`, etcThe default value is `Inter`\n"},"loginPageTheme":{"$ref":"#/types/propelauth:index%2FThemeLoginPageTheme:ThemeLoginPageTheme","description":"The theme for the login page\n"},"managementPagesTheme":{"$ref":"#/types/propelauth:index%2FThemeManagementPagesTheme:ThemeManagementPagesTheme","description":"The theme for the account and organization management pages\n"}},"type":"object","required":["bodyFont","displayProjectName","headerFont","loginPageTheme","managementPagesTheme"],"inputProperties":{"bodyFont":{"type":"string","description":"The font used for all body text in your hosted pages. This includes both login and management pages. The available options are the same as for \u003cspan pulumi-lang-nodejs=\"`headerFont`\" pulumi-lang-dotnet=\"`HeaderFont`\" pulumi-lang-go=\"`headerFont`\" pulumi-lang-python=\"`header_font`\" pulumi-lang-yaml=\"`headerFont`\" pulumi-lang-java=\"`headerFont`\"\u003e`header_font`\u003c/span\u003e. The default value is `Inter`\n"},"displayProjectName":{"type":"boolean","description":"If true, the project name is displayed in the header of the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"headerFont":{"type":"string","description":"The font used for all headings in your hosted pages written in PascalCase. This includes both login and management pages. Options include `Roboto`, `Inter`, `OpenSans`, `Montserrat`, `Lato`, `Poppins`, `Raleway`, `Jost`, `Fraunces`, `Caveat`, `PlusJakartaSans`, etcThe default value is `Inter`\n"},"loginPageTheme":{"$ref":"#/types/propelauth:index%2FThemeLoginPageTheme:ThemeLoginPageTheme","description":"The theme for the login page\n"},"managementPagesTheme":{"$ref":"#/types/propelauth:index%2FThemeManagementPagesTheme:ThemeManagementPagesTheme","description":"The theme for the account and organization management pages\n"}},"requiredInputs":["loginPageTheme","managementPagesTheme"],"stateInputs":{"description":"Input properties used for looking up and filtering Theme resources.\n","properties":{"bodyFont":{"type":"string","description":"The font used for all body text in your hosted pages. This includes both login and management pages. The available options are the same as for \u003cspan pulumi-lang-nodejs=\"`headerFont`\" pulumi-lang-dotnet=\"`HeaderFont`\" pulumi-lang-go=\"`headerFont`\" pulumi-lang-python=\"`header_font`\" pulumi-lang-yaml=\"`headerFont`\" pulumi-lang-java=\"`headerFont`\"\u003e`header_font`\u003c/span\u003e. The default value is `Inter`\n"},"displayProjectName":{"type":"boolean","description":"If true, the project name is displayed in the header of the login page. The default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"headerFont":{"type":"string","description":"The font used for all headings in your hosted pages written in PascalCase. This includes both login and management pages. Options include `Roboto`, `Inter`, `OpenSans`, `Montserrat`, `Lato`, `Poppins`, `Raleway`, `Jost`, `Fraunces`, `Caveat`, `PlusJakartaSans`, etcThe default value is `Inter`\n"},"loginPageTheme":{"$ref":"#/types/propelauth:index%2FThemeLoginPageTheme:ThemeLoginPageTheme","description":"The theme for the login page\n"},"managementPagesTheme":{"$ref":"#/types/propelauth:index%2FThemeManagementPagesTheme:ThemeManagementPagesTheme","description":"The theme for the account and organization management pages\n"}},"type":"object"}},"propelauth:index/userPropertySettings:UserPropertySettings":{"description":"User Property Settings. User properties are fields that you can use to store information about your users. You can use them to collect information about your users on sign up, like their name or how they heard about your product. You can also use them to store information about your users as they use your product, like their subscription status, external IDs, or just arbitrary JSON data.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  # Configure all the properties that can be set on a user in your PropelAuth project.\n  example:\n    type: propelauth:UserPropertySettings\n    properties:\n      nameProperty:\n        inJwt: false\n      metadataProperty:\n        inJwt: true\n      usernameProperty:\n        inJwt: true\n        displayName: Account Name\n      phoneNumberProperty:\n        inJwt: false\n        required: true\n        requiredBy: 0\n        showInAccount: true\n        collectViaSaml: true\n        userWritable: Write\n      tosProperty:\n        inJwt: false\n        required: true\n        requiredBy: 0\n        userWritable: Write\n        tosLinks:\n          - url: https://example.com/tos\n            name: Terms of Service\n          - url: https://example.com/privacy\n            name: Privacy Policy\n      referralSourceProperty:\n        inJwt: false\n        displayName: How did you find my awesome app?\n        required: true\n        requiredBy: 0\n        userWritable: WriteIfUnset\n        options:\n          - Google\n          - Facebook\n          - Twitter\n          - LinkedIn\n          - Other\n      customProperties:\n        - name: birthday\n          displayName: Birthday\n          fieldType: Date\n          inJwt: true\n          required: false\n          userWritable: Write\n        - name: favorite_ice_cream_flavor\n          displayName: Favorite Ice Cream Flavor\n          fieldType: Enum\n          enumValues:\n            - Vanilla\n            - Chocolate\n            - Strawberry\n            - Mint Chocolate Chip\n            - Other\n          inJwt: true\n          required: true\n          requiredBy: 0\n          userWritable: Write\n        - name: favorite_color\n          displayName: Favorite Color\n          fieldType: Text\n          inJwt: false\n          required: false\n          userWritable: Write\n        - name: receive_newsletter\n          displayName: I want to receive the newsletter\n          fieldType: Toggle\n          userWritable: Write\n          showInAccount: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAs there is only one user_property_settings per project there's no need to specify the id,\n\n```sh\n$ pulumi import propelauth:index/userPropertySettings:UserPropertySettings but requires an id to be specified, so we can use an arbitrary string here.\n```\n\n```sh\n$ pulumi import propelauth:index/userPropertySettings:UserPropertySettings example arbitrary_string_here\n```\n\n","properties":{"customProperties":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsCustomProperty:UserPropertySettingsCustomProperty"},"description":"Custom properties for the user. If no blocks are provided, no custom properties will be enabled. Note: Custom properties are only available on some pricing plans.\n"},"metadataProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsMetadataProperty:UserPropertySettingsMetadataProperty","description":"Settings for the user's metadata property. If no block is provided, the metadata property will be disabled.\n"},"nameProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsNameProperty:UserPropertySettingsNameProperty","description":"Settings for the user's name property. If no block is provided, the name property will be disabled.\n"},"phoneNumberProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsPhoneNumberProperty:UserPropertySettingsPhoneNumberProperty","description":"Settings for the user's phone number property. If no block is provided, the phone number property will be disabled.\n"},"pictureUrlProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsPictureUrlProperty:UserPropertySettingsPictureUrlProperty","description":"Settings for the user's picture URL property. If no block is provided, the picture URL property will be disabled.\n"},"referralSourceProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsReferralSourceProperty:UserPropertySettingsReferralSourceProperty","description":"Settings for the user's referral source property. If no block is provided, the referral source property will be disabled.\n"},"tosProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsTosProperty:UserPropertySettingsTosProperty","description":"Settings for the user's Terms of Service property. If no block is provided, the terms of service property will be disabled.\n"},"usernameProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsUsernameProperty:UserPropertySettingsUsernameProperty","description":"Settings for the user's username property. If no block is provided, the username property will be disabled.\n"}},"type":"object","inputProperties":{"customProperties":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsCustomProperty:UserPropertySettingsCustomProperty"},"description":"Custom properties for the user. If no blocks are provided, no custom properties will be enabled. Note: Custom properties are only available on some pricing plans.\n"},"metadataProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsMetadataProperty:UserPropertySettingsMetadataProperty","description":"Settings for the user's metadata property. If no block is provided, the metadata property will be disabled.\n"},"nameProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsNameProperty:UserPropertySettingsNameProperty","description":"Settings for the user's name property. If no block is provided, the name property will be disabled.\n"},"phoneNumberProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsPhoneNumberProperty:UserPropertySettingsPhoneNumberProperty","description":"Settings for the user's phone number property. If no block is provided, the phone number property will be disabled.\n"},"pictureUrlProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsPictureUrlProperty:UserPropertySettingsPictureUrlProperty","description":"Settings for the user's picture URL property. If no block is provided, the picture URL property will be disabled.\n"},"referralSourceProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsReferralSourceProperty:UserPropertySettingsReferralSourceProperty","description":"Settings for the user's referral source property. If no block is provided, the referral source property will be disabled.\n"},"tosProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsTosProperty:UserPropertySettingsTosProperty","description":"Settings for the user's Terms of Service property. If no block is provided, the terms of service property will be disabled.\n"},"usernameProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsUsernameProperty:UserPropertySettingsUsernameProperty","description":"Settings for the user's username property. If no block is provided, the username property will be disabled.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserPropertySettings resources.\n","properties":{"customProperties":{"type":"array","items":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsCustomProperty:UserPropertySettingsCustomProperty"},"description":"Custom properties for the user. If no blocks are provided, no custom properties will be enabled. Note: Custom properties are only available on some pricing plans.\n"},"metadataProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsMetadataProperty:UserPropertySettingsMetadataProperty","description":"Settings for the user's metadata property. If no block is provided, the metadata property will be disabled.\n"},"nameProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsNameProperty:UserPropertySettingsNameProperty","description":"Settings for the user's name property. If no block is provided, the name property will be disabled.\n"},"phoneNumberProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsPhoneNumberProperty:UserPropertySettingsPhoneNumberProperty","description":"Settings for the user's phone number property. If no block is provided, the phone number property will be disabled.\n"},"pictureUrlProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsPictureUrlProperty:UserPropertySettingsPictureUrlProperty","description":"Settings for the user's picture URL property. If no block is provided, the picture URL property will be disabled.\n"},"referralSourceProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsReferralSourceProperty:UserPropertySettingsReferralSourceProperty","description":"Settings for the user's referral source property. If no block is provided, the referral source property will be disabled.\n"},"tosProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsTosProperty:UserPropertySettingsTosProperty","description":"Settings for the user's Terms of Service property. If no block is provided, the terms of service property will be disabled.\n"},"usernameProperty":{"$ref":"#/types/propelauth:index%2FUserPropertySettingsUsernameProperty:UserPropertySettingsUsernameProperty","description":"Settings for the user's username property. If no block is provided, the username property will be disabled.\n"}},"type":"object"}}},"functions":{"propelauth:index/getBeIntegration:getBeIntegration":{"description":"Retrieve the parameters for a backend integration with one of your PropelAuth environments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as propelauth from \"@pulumi/propelauth\";\n\n// Retrieve the details of a Back-end Integration to PropelAuth by environment.\nconst example = propelauth.getBeIntegration({\n    environment: \"Test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_propelauth as propelauth\n\n# Retrieve the details of a Back-end Integration to PropelAuth by environment.\nexample = propelauth.get_be_integration(environment=\"Test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Propelauth = Pulumi.Propelauth;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve the details of a Back-end Integration to PropelAuth by environment.\n    var example = Propelauth.GetBeIntegration.Invoke(new()\n    {\n        Environment = \"Test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/propelauth/propelauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve the details of a Back-end Integration to PropelAuth by environment.\n\t\t_, err := propelauth.GetBeIntegration(ctx, \u0026propelauth.GetBeIntegrationArgs{\n\t\t\tEnvironment: \"Test\",\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.propelauth.PropelauthFunctions;\nimport com.pulumi.propelauth.inputs.GetBeIntegrationArgs;\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        // Retrieve the details of a Back-end Integration to PropelAuth by environment.\n        final var example = PropelauthFunctions.getBeIntegration(GetBeIntegrationArgs.builder()\n            .environment(\"Test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve the details of a Back-end Integration to PropelAuth by environment.\n  example:\n    fn::invoke:\n      function: propelauth:getBeIntegration\n      arguments:\n        environment: Test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBeIntegration.\n","properties":{"environment":{"type":"string","description":"The environment for which you are configuring the backend integration. Accepted values are `Test`, `Staging`, and `Prod`.\n"}},"type":"object","required":["environment"]},"outputs":{"description":"A collection of values returned by getBeIntegration.\n","properties":{"authUrl":{"description":"The URL to the authentication endpoint for the environment. This is needed in PropelAuth backend libraries.\n","type":"string"},"environment":{"description":"The environment for which you are configuring the backend integration. Accepted values are `Test`, `Staging`, and `Prod`.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"issuer":{"description":"A value that we verify in the access token. This is optional in our backend libraries, and if unspecified, the libraries will fetch it for you.\n","type":"string"},"publicKey":{"description":"Your public key that can be used to verify access tokens. This is optional in our backend libraries, and if unspecified, the libraries will fetch it for you.\n","type":"string"}},"required":["authUrl","environment","id","issuer","publicKey"],"type":"object"}},"propelauth:index/getSocialLoginRedirect:getSocialLoginRedirect":{"description":"Retrieves the redirect url needed for configuring an OIDC provider for a Social Login in PropelAuth.\n\n","inputs":{"description":"A collection of arguments for invoking getSocialLoginRedirect.\n","properties":{"environment":{"type":"string","description":"The environment for which you are configuring the social login. Accepted values are `Test`, `Staging`, and `Prod`.\n"},"socialProvider":{"type":"string","description":"The social login provider for which you are configuring and need the redirect URL. Accepted values are `Google`, `Microsoft`, `GitHub`, `Slack`, `LinkedIn`, `Atlassian`, `Apple`, `Salesforce`, `QuickBooks`, `Xero`, `Salesloft`, and `Outreach`.\n"}},"type":"object","required":["environment","socialProvider"]},"outputs":{"description":"A collection of values returned by getSocialLoginRedirect.\n","properties":{"environment":{"description":"The environment for which you are configuring the social login. Accepted values are `Test`, `Staging`, and `Prod`.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"redirectUrl":{"description":"The redirect URL to be white-listed in the OIDC configuration of the social login provider.\n","type":"string"},"socialProvider":{"description":"The social login provider for which you are configuring and need the redirect URL. Accepted values are `Google`, `Microsoft`, `GitHub`, `Slack`, `LinkedIn`, `Atlassian`, `Apple`, `Salesforce`, `QuickBooks`, `Xero`, `Salesloft`, and `Outreach`.\n","type":"string"}},"required":["environment","id","redirectUrl","socialProvider"],"type":"object"}},"pulumi:providers:propelauth/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:propelauth"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL3Byb3BlbGF1dGgvcHJvcGVsYXV0aCIsInZlcnNpb24iOiIwLjUuMCJ9fQ=="}}