{"name":"platform","version":"2.2.8","description":"A Pulumi provider dynamically bridged from platform.","attribution":"This Pulumi package is based on the [`platform` Terraform Provider](https://github.com/jfrog/terraform-provider-platform).","repository":"https://github.com/jfrog/terraform-provider-platform","publisher":"jfrog","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"platform"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from platform.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/jfrog/terraform-provider-platform)\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-platform` repo](https://github.com/jfrog/terraform-provider-platform/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/jfrog/terraform-provider-platform)\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-platform` repo](https://github.com/jfrog/terraform-provider-platform/issues).","respectSchemaVersion":true}},"config":{"variables":{"accessToken":{"type":"string","description":"This is a access token that can be given to you by your admin under `Platform Configuration \u003e User Management \u003e Access Tokens`. This can also be sourced from the `JFROG_ACCESS_TOKEN` environment variable.","secret":true},"oidcProviderName":{"type":"string","description":"OIDC provider name. See [Configure an OIDC Integration](https://jfrog.com/help/r/jfrog-platform-administration-documentation/configure-an-oidc-integration) for more details."},"tfcCredentialTagName":{"type":"string"},"url":{"type":"string","description":"JFrog Platform URL. This can also be sourced from the `JFROG_URL` environment variable."}}},"types":{"platform:index/LifecycleCategory:LifecycleCategory":{"properties":{"category":{"type":"string","description":"The category name (code or promote).\n"},"stages":{"type":"array","items":{"$ref":"#/types/platform:index%2FLifecycleCategoryStage:LifecycleCategoryStage"},"description":"An ordered list of stages within a particular category.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["category","stages"]}}},"platform:index/LifecycleCategoryStage:LifecycleCategoryStage":{"properties":{"name":{"type":"string","description":"The stage name (for example, DEV or QA).\n"},"scope":{"type":"string","description":"The scope at which the stage exists (global or project).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","scope"]}}},"platform:index/OidcIdentityMappingTokenSpec:OidcIdentityMappingTokenSpec":{"properties":{"audience":{"type":"string","description":"Sets of (space separated) the JFrog services to which the mapping applies. Default value is `*@*`, which applies to all services.\n"},"expiresIn":{"type":"number","description":"Token expiry time in seconds. Default value is 60.\n"},"groupsPattern":{"type":"string","description":"Provide a pattern which is used to map OIDC groups to Artifactory groups.\n"},"scope":{"type":"string","description":"Scope of the token. Must start with `applied-permissions/user`, `applied-permissions/admin`, `applied-permissions/roles:`, or `applied-permissions/groups:`. Group names must be comma-separated, double quotes wrapped, e.g. `applied-permissions/groups:\\\"readers\\\",\\\"my-group\\\",` Role permissions are only applicable when in project scope and must be comma-separated, double quotes wrapped, e.g. `applied-permissions:roles:\u003cproject-key\u003e:\"Developer\",\"Viewer\".\u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e is also required when setting role permission.\n"},"username":{"type":"string","description":"User name of the OIDC user. Not applicable when \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e is set to `applied-permissions/groups`. Must be set when \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e is set to `applied-permissions/roles`.\n"},"usernamePattern":{"type":"string","description":"Provide a pattern which is used to map OIDC user to Artifactory user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["audience","expiresIn"]}}},"platform:index/PermissionArtifact:PermissionArtifact":{"properties":{"actions":{"$ref":"#/types/platform:index%2FPermissionArtifactActions:PermissionArtifactActions","description":"Either one of \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e attribute must be set.\n"},"targets":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionArtifactTarget:PermissionArtifactTarget"},"description":"When \u003cspan pulumi-lang-nodejs=\"`artifact`\" pulumi-lang-dotnet=\"`Artifact`\" pulumi-lang-go=\"`artifact`\" pulumi-lang-python=\"`artifact`\" pulumi-lang-yaml=\"`artifact`\" pulumi-lang-java=\"`artifact`\"\u003e`artifact`\u003c/span\u003e is specified, \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e must contain at least one target. Empty targets are not allowed.\n"}},"type":"object","required":["targets"]},"platform:index/PermissionArtifactActions:PermissionArtifactActions":{"properties":{"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionArtifactActionsGroup:PermissionArtifactActionsGroup"}},"users":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionArtifactActionsUser:PermissionArtifactActionsUser"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["groups","users"]}}},"platform:index/PermissionArtifactActionsGroup:PermissionArtifactActionsGroup":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: Downloads artifacts and reads the metadata.\n**ANNOTATE**: Annotates artifacts and folders with metadata and properties.\n**WRITE**: Deploys artifacts \u0026 deploys to remote repository caches.\n**DELETE**: Deletes or overwrites artifacts.\n**SCAN**: Triggers Xray scans on artifacts in repositories. Creates and deletes custom issues and license.\n**MANAGE**: Allows changing the permission settings for other users in this permission target. It does not permit adding/removing resources to the permission target.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionArtifactActionsUser:PermissionArtifactActionsUser":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: Downloads artifacts and reads the metadata.\n**ANNOTATE**: Annotates artifacts and folders with metadata and properties.\n**WRITE**: Deploys artifacts \u0026 deploys to remote repository caches.\n**DELETE**: Deletes or overwrites artifacts.\n**SCAN**: Triggers Xray scans on artifacts in repositories. Creates and deletes custom issues and license.\n**MANAGE**: Allows changing the permission settings for other users in this permission target. It does not permit adding/removing resources to the permission target.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionArtifactTarget:PermissionArtifactTarget":{"properties":{"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Simple comma separated wildcard patterns for **existing and future** repository artifact paths (with no leading slash). Ant-style path expressions are supported (*, **, ?). For example: `org/apache/**`\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Simple comma separated wildcard patterns for **existing and future** repository artifact paths (with no leading slash). Ant-style path expressions are supported (*, **, ?). For example: `org/apache/**`\n"},"name":{"type":"string","description":"Specify repository key as name. Use `ANY LOCAL`, `ANY REMOTE`, or `ANY DISTRIBUTION` for any repository type.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["includePatterns","name"]}}},"platform:index/PermissionBuild:PermissionBuild":{"properties":{"actions":{"$ref":"#/types/platform:index%2FPermissionBuildActions:PermissionBuildActions","description":"Either one of \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e attribute must be set.\n"},"targets":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionBuildTarget:PermissionBuildTarget"},"description":"When \u003cspan pulumi-lang-nodejs=\"`build`\" pulumi-lang-dotnet=\"`Build`\" pulumi-lang-go=\"`build`\" pulumi-lang-python=\"`build`\" pulumi-lang-yaml=\"`build`\" pulumi-lang-java=\"`build`\"\u003e`build`\u003c/span\u003e is specified, \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e must contain exactly one target. Multiple targets are not allowed.\n"}},"type":"object","required":["targets"]},"platform:index/PermissionBuildActions:PermissionBuildActions":{"properties":{"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionBuildActionsGroup:PermissionBuildActionsGroup"}},"users":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionBuildActionsUser:PermissionBuildActionsUser"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["groups","users"]}}},"platform:index/PermissionBuildActionsGroup:PermissionBuildActionsGroup":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: View and downloads build info artifacts from the artifactory-build-info default repository and reads the corresponding build in the Builds page.\n**ANNOTATE**: Annotates build info artifacts and folders with metadata and properties.\n**WRITE**: Allows uploading and promoting build info artifacts.\n**DELETE**: Deletes build info artifacts.\n**SCAN**: Triggers Xray scans on builds. Creates and deletes custom issues and license.\n**MANAGE**: Allows changing build info permission settings for other users in this permission target. It does not permit adding/removing resources to the permission target.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionBuildActionsUser:PermissionBuildActionsUser":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: View and downloads build info artifacts from the artifactory-build-info default repository and reads the corresponding build in the Builds page.\n**ANNOTATE**: Annotates build info artifacts and folders with metadata and properties.\n**WRITE**: Allows uploading and promoting build info artifacts.\n**DELETE**: Deletes build info artifacts.\n**SCAN**: Triggers Xray scans on builds. Creates and deletes custom issues and license.\n**MANAGE**: Allows changing build info permission settings for other users in this permission target. It does not permit adding/removing resources to the permission target.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionBuildTarget:PermissionBuildTarget":{"properties":{"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Use Ant-style wildcard patterns to specify **existing and future** build names (i.e. artifact paths) in the build info repository (without a leading slash) that will be excluded from this permission target. Ant-style path expressions are supported (*, **, ?). For example, an `apache/**` pattern will exclude the \"apache\" build info from the permission.\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Use Ant-style wildcard patterns to specify **existing and future** build names (i.e. artifact paths) in the build info repository (without a leading slash) that will be included in this permission target. Ant-style path expressions are supported (*, **, ?). For example, an `apache/**` pattern will include the \"apache\" build info in the permission.\n"},"name":{"type":"string","description":"Specify build info repository name. Any custom build info repository name is allowed (e.g. `artifactory-build-info` or a custom repository). Specify build name as part of the \u003cspan pulumi-lang-nodejs=\"`includePatterns`\" pulumi-lang-dotnet=\"`IncludePatterns`\" pulumi-lang-go=\"`includePatterns`\" pulumi-lang-python=\"`include_patterns`\" pulumi-lang-yaml=\"`includePatterns`\" pulumi-lang-java=\"`includePatterns`\"\u003e`include_patterns`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`excludePatterns`\" pulumi-lang-dotnet=\"`ExcludePatterns`\" pulumi-lang-go=\"`excludePatterns`\" pulumi-lang-python=\"`exclude_patterns`\" pulumi-lang-yaml=\"`excludePatterns`\" pulumi-lang-java=\"`excludePatterns`\"\u003e`exclude_patterns`\u003c/span\u003e.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["includePatterns","name"]}}},"platform:index/PermissionDestination:PermissionDestination":{"properties":{"actions":{"$ref":"#/types/platform:index%2FPermissionDestinationActions:PermissionDestinationActions","description":"Either one of \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e attribute must be set.\n"},"targets":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionDestinationTarget:PermissionDestinationTarget"},"description":"When \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e is specified, \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e must contain at least one target. Empty targets are not allowed.\n"}},"type":"object","required":["targets"]},"platform:index/PermissionDestinationActions:PermissionDestinationActions":{"properties":{"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionDestinationActionsGroup:PermissionDestinationActionsGroup"}},"users":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionDestinationActionsUser:PermissionDestinationActionsUser"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["groups","users"]}}},"platform:index/PermissionDestinationActionsGroup:PermissionDestinationActionsGroup":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**EXECUTE**: Distributes Release Bundles according to their destination permissions.\n**DELETE**: Deletes Release Bundles from the selected destinations.\n**MANAGE**: Adds and deletes users who can distribute Release Bundles on assigned destinations.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionDestinationActionsUser:PermissionDestinationActionsUser":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**EXECUTE**: Distributes Release Bundles according to their destination permissions.\n**DELETE**: Deletes Release Bundles from the selected destinations.\n**MANAGE**: Adds and deletes users who can distribute Release Bundles on assigned destinations.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionDestinationTarget:PermissionDestinationTarget":{"properties":{"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Simple wildcard patterns for existing and future JPD or city names. Ant-style path expressions are supported (*, **, ?). For example: `site_*` or `New*`\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Simple wildcard patterns for existing and future JPD or city names. Ant-style path expressions are supported (*, **, ?). For example: `site_*` or `New*`\n"},"name":{"type":"string","description":"Specify destination name as name. Use `*` to include all destinations.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["includePatterns","name"]}}},"platform:index/PermissionPipelineSource:PermissionPipelineSource":{"properties":{"actions":{"$ref":"#/types/platform:index%2FPermissionPipelineSourceActions:PermissionPipelineSourceActions","description":"Either one of \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e attribute must be set.\n"},"targets":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionPipelineSourceTarget:PermissionPipelineSourceTarget"},"description":"When \u003cspan pulumi-lang-nodejs=\"`pipelineSource`\" pulumi-lang-dotnet=\"`PipelineSource`\" pulumi-lang-go=\"`pipelineSource`\" pulumi-lang-python=\"`pipeline_source`\" pulumi-lang-yaml=\"`pipelineSource`\" pulumi-lang-java=\"`pipelineSource`\"\u003e`pipeline_source`\u003c/span\u003e is specified, \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e must contain at least one target. Empty targets are not allowed.\n"}},"type":"object","required":["targets"]},"platform:index/PermissionPipelineSourceActions:PermissionPipelineSourceActions":{"properties":{"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionPipelineSourceActionsGroup:PermissionPipelineSourceActionsGroup"}},"users":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionPipelineSourceActionsUser:PermissionPipelineSourceActionsUser"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["groups","users"]}}},"platform:index/PermissionPipelineSourceActionsGroup:PermissionPipelineSourceActionsGroup":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: View the available pipeline sources.\n**EXECUTE**: Manually trigger execution of steps.\n**MANAGE**: Create and edit pipeline sources.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionPipelineSourceActionsUser:PermissionPipelineSourceActionsUser":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: View the available pipeline sources.\n**EXECUTE**: Manually trigger execution of steps.\n**MANAGE**: Create and edit pipeline sources.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionPipelineSourceTarget:PermissionPipelineSourceTarget":{"properties":{"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Use Ant-style wildcard patterns to specify the full repository name of the **existing and future** pipeline sources that will be excluded from this permission. The pattern should have the following format: `{FULL_REPOSITORY_NAME_PATTERN}/**`. Ant-style path expressions are supported (*, **, ?). For example, the pattern `*/*test*/**` will exclude all repositories that contain the word \"test\" regardless of the repository owner.\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Use Ant-style wildcard patterns to specify the full repository name of the **existing and future** pipeline sources that will be included in this permission. The pattern should have the following format: `{FULL_REPOSITORY_NAME_PATTERN}/**`. Ant-style path expressions are supported (*, **, ?). For example, the pattern `*/*test*/**` will include all repositories that contain the word \"test\" regardless of the repository owner.\n"},"name":{"type":"string","description":"Specify pipeline source name as name. Use `*` to include all pipeline sources.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["includePatterns","name"]}}},"platform:index/PermissionReleaseBundle:PermissionReleaseBundle":{"properties":{"actions":{"$ref":"#/types/platform:index%2FPermissionReleaseBundleActions:PermissionReleaseBundleActions","description":"Either one of \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e attribute must be set.\n"},"targets":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionReleaseBundleTarget:PermissionReleaseBundleTarget"},"description":"When \u003cspan pulumi-lang-nodejs=\"`releaseBundle`\" pulumi-lang-dotnet=\"`ReleaseBundle`\" pulumi-lang-go=\"`releaseBundle`\" pulumi-lang-python=\"`release_bundle`\" pulumi-lang-yaml=\"`releaseBundle`\" pulumi-lang-java=\"`releaseBundle`\"\u003e`release_bundle`\u003c/span\u003e is specified, \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e must contain at least one target. Empty targets are not allowed.\n"}},"type":"object","required":["targets"]},"platform:index/PermissionReleaseBundleActions:PermissionReleaseBundleActions":{"properties":{"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionReleaseBundleActionsGroup:PermissionReleaseBundleActionsGroup"}},"users":{"type":"array","items":{"$ref":"#/types/platform:index%2FPermissionReleaseBundleActionsUser:PermissionReleaseBundleActionsUser"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["groups","users"]}}},"platform:index/PermissionReleaseBundleActionsGroup:PermissionReleaseBundleActionsGroup":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: Views and downloads Release Bundle artifacts from the relevant Release Bundle repository and reads the corresponding Release Bundles in the Distribution page.\n**ANNOTATE**: Annotates Release Bundle artifacts and folder with metadata and properties.\n**WRITE**: Creates Release Bundles.\n**EXECUTE**: Allows users to promote Release Bundles v2 to a selected target environment and is a prerequisite for distributing Release Bundles (v1 \u0026 v2) to Distribution Edge nodes.\n**DELETE**: Deletes Release Bundles.\n**SCAN** Xray Metadata: Triggers Xray scans on Release Bundles. Creates and deletes custom issues and license.\n**MANAGE**: Allows changing Release Bundle permission settings for other users in this permission target. It does not permit adding/removing resources to the permission target.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionReleaseBundleActionsUser:PermissionReleaseBundleActionsUser":{"properties":{"name":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"},"description":"**READ**: Views and downloads Release Bundle artifacts from the relevant Release Bundle repository and reads the corresponding Release Bundles in the Distribution page.\n**ANNOTATE**: Annotates Release Bundle artifacts and folder with metadata and properties.\n**WRITE**: Creates Release Bundles.\n**EXECUTE**: Allows users to promote Release Bundles v2 to a selected target environment and is a prerequisite for distributing Release Bundles (v1 \u0026 v2) to Distribution Edge nodes.\n**DELETE**: Deletes Release Bundles.\n**SCAN** Xray Metadata: Triggers Xray scans on Release Bundles. Creates and deletes custom issues and license.\n**MANAGE**: Allows changing Release Bundle permission settings for other users in this permission target. It does not permit adding/removing resources to the permission target.\n"}},"type":"object","required":["name","permissions"]},"platform:index/PermissionReleaseBundleTarget:PermissionReleaseBundleTarget":{"properties":{"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Simple wildcard patterns for **existing and future** Release Bundle names. Ant-style path expressions are supported (*, **, ?). For example: `product_*/**`\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Simple wildcard patterns for **existing and future** Release Bundle names. Ant-style path expressions are supported (*, **, ?). For example: `product_*/**`\n"},"name":{"type":"string","description":"Specify release bundle repository key as name.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["includePatterns","name"]}}},"platform:index/ScimGroupMember:ScimGroupMember":{"properties":{"display":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["display","value"]},"platform:index/ScimUserEmail:ScimUserEmail":{"properties":{"primary":{"type":"boolean"},"value":{"type":"string"}},"type":"object","required":["primary","value"]},"platform:index/ScimUserGroup:ScimUserGroup":{"properties":{"value":{"type":"string"}},"type":"object","required":["value"]},"platform:index/WorkersServiceFilterCriteria:WorkersServiceFilterCriteria":{"properties":{"artifactFilterCriteria":{"$ref":"#/types/platform:index%2FWorkersServiceFilterCriteriaArtifactFilterCriteria:WorkersServiceFilterCriteriaArtifactFilterCriteria"}},"type":"object","required":["artifactFilterCriteria"]},"platform:index/WorkersServiceFilterCriteriaArtifactFilterCriteria:WorkersServiceFilterCriteriaArtifactFilterCriteria":{"properties":{"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker.\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker.\n"},"repoKeys":{"type":"array","items":{"type":"string"},"description":"Defines which repositories are used when an action event occurs to trigger the worker.\n"}},"type":"object","required":["repoKeys"]},"platform:index/WorkersServiceSecret:WorkersServiceSecret":{"properties":{"key":{"type":"string","description":"The name of the secret.\n"},"value":{"type":"string","description":"The name of the secret.\n"}},"type":"object","required":["key","value"]}},"provider":{"description":"The provider type for the platform 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":{"accessToken":{"type":"string","description":"This is a access token that can be given to you by your admin under `Platform Configuration \u003e User Management \u003e Access Tokens`. This can also be sourced from the `JFROG_ACCESS_TOKEN` environment variable.","secret":true},"oidcProviderName":{"type":"string","description":"OIDC provider name. See [Configure an OIDC Integration](https://jfrog.com/help/r/jfrog-platform-administration-documentation/configure-an-oidc-integration) for more details."},"tfcCredentialTagName":{"type":"string"},"url":{"type":"string","description":"JFrog Platform URL. This can also be sourced from the `JFROG_URL` environment variable."}},"type":"object","inputProperties":{"accessToken":{"type":"string","description":"This is a access token that can be given to you by your admin under `Platform Configuration \u003e User Management \u003e Access Tokens`. This can also be sourced from the `JFROG_ACCESS_TOKEN` environment variable.","secret":true},"oidcProviderName":{"type":"string","description":"OIDC provider name. See [Configure an OIDC Integration](https://jfrog.com/help/r/jfrog-platform-administration-documentation/configure-an-oidc-integration) for more details."},"tfcCredentialTagName":{"type":"string"},"url":{"type":"string","description":"JFrog Platform URL. This can also be sourced from the `JFROG_URL` environment variable."}},"methods":{"terraformConfig":"pulumi:providers:platform/terraformConfig"}},"resources":{"platform:index/awsIamRole:AwsIamRole":{"description":"Provides a resource to manage AWS IAM roles for JFrog platform users. You can use the AWS IAM roles for passwordless access to Amazon EKS. For more information, see [Passwordless Access for Amazon EKS](https://jfrog.com/help/r/jfrog-installation-setup-documentation/passwordless-access-for-amazon-eks).\n\n-\u003eOnly available for Artifactory 7.90.10 or later.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst myuser_aws_iam_role = new platform.AwsIamRole(\"myuser-aws-iam-role\", {\n    username: \"myuser\",\n    iamRole: \"arn:aws:iam::000000000000:role/example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmyuser_aws_iam_role = platform.AwsIamRole(\"myuser-aws-iam-role\",\n    username=\"myuser\",\n    iam_role=\"arn:aws:iam::000000000000:role/example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myuser_aws_iam_role = new Platform.AwsIamRole(\"myuser-aws-iam-role\", new()\n    {\n        Username = \"myuser\",\n        IamRole = \"arn:aws:iam::000000000000:role/example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewAwsIamRole(ctx, \"myuser-aws-iam-role\", \u0026platform.AwsIamRoleArgs{\n\t\t\tUsername: pulumi.String(\"myuser\"),\n\t\t\tIamRole:  pulumi.String(\"arn:aws:iam::000000000000:role/example\"),\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.platform.AwsIamRole;\nimport com.pulumi.platform.AwsIamRoleArgs;\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 myuser_aws_iam_role = new AwsIamRole(\"myuser-aws-iam-role\", AwsIamRoleArgs.builder()\n            .username(\"myuser\")\n            .iamRole(\"arn:aws:iam::000000000000:role/example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myuser-aws-iam-role:\n    type: platform:AwsIamRole\n    properties:\n      username: myuser\n      iamRole: arn:aws:iam::000000000000:role/example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/awsIamRole:AwsIamRole myuser-aws-iam-role myuser\n```\n\n","properties":{"iamRole":{"type":"string","description":"The AWS IAM role. Must follow the regex, \"^arn:aws:iam::\\d{12}:role/[\\w+=,.@:-]+$\"\n"},"username":{"type":"string","description":"The JFrog Platform user name.\n"}},"type":"object","required":["iamRole","username"],"inputProperties":{"iamRole":{"type":"string","description":"The AWS IAM role. Must follow the regex, \"^arn:aws:iam::\\d{12}:role/[\\w+=,.@:-]+$\"\n"},"username":{"type":"string","description":"The JFrog Platform user name.\n"}},"requiredInputs":["iamRole","username"],"stateInputs":{"description":"Input properties used for looking up and filtering AwsIamRole resources.\n","properties":{"iamRole":{"type":"string","description":"The AWS IAM role. Must follow the regex, \"^arn:aws:iam::\\d{12}:role/[\\w+=,.@:-]+$\"\n"},"username":{"type":"string","description":"The JFrog Platform user name.\n"}},"type":"object"}},"platform:index/crowdSettings:CrowdSettings":{"description":"Provides a JFrog [Crowd Settings](https://jfrog.com/help/r/jfrog-platform-administration-documentation/atlassian-crowd-and-jira-integration) resource. This allows you to delegate authentication requests to Atlassian Crowd/JIRA, use authenticated Crowd/JIRA users and have the JPD participate in a transparent SSO environment managed by Crowd/JIRA.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_crowd_settings = new platform.CrowdSettings(\"my-crowd-settings\", {\n    enable: true,\n    serverUrl: \"http://tempurl.org\",\n    applicationName: \"my-crowd-settings\",\n    password: \"my-password\",\n    sessionValidationInterval: 5,\n    useDefaultProxy: false,\n    autoUserCreation: true,\n    allowUserToAccessProfile: false,\n    directAuthentication: true,\n    overrideAllGroupsUponLogin: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_crowd_settings = platform.CrowdSettings(\"my-crowd-settings\",\n    enable=True,\n    server_url=\"http://tempurl.org\",\n    application_name=\"my-crowd-settings\",\n    password=\"my-password\",\n    session_validation_interval=5,\n    use_default_proxy=False,\n    auto_user_creation=True,\n    allow_user_to_access_profile=False,\n    direct_authentication=True,\n    override_all_groups_upon_login=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_crowd_settings = new Platform.CrowdSettings(\"my-crowd-settings\", new()\n    {\n        Enable = true,\n        ServerUrl = \"http://tempurl.org\",\n        ApplicationName = \"my-crowd-settings\",\n        Password = \"my-password\",\n        SessionValidationInterval = 5,\n        UseDefaultProxy = false,\n        AutoUserCreation = true,\n        AllowUserToAccessProfile = false,\n        DirectAuthentication = true,\n        OverrideAllGroupsUponLogin = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewCrowdSettings(ctx, \"my-crowd-settings\", \u0026platform.CrowdSettingsArgs{\n\t\t\tEnable:                     pulumi.Bool(true),\n\t\t\tServerUrl:                  pulumi.String(\"http://tempurl.org\"),\n\t\t\tApplicationName:            pulumi.String(\"my-crowd-settings\"),\n\t\t\tPassword:                   pulumi.String(\"my-password\"),\n\t\t\tSessionValidationInterval:  pulumi.Float64(5),\n\t\t\tUseDefaultProxy:            pulumi.Bool(false),\n\t\t\tAutoUserCreation:           pulumi.Bool(true),\n\t\t\tAllowUserToAccessProfile:   pulumi.Bool(false),\n\t\t\tDirectAuthentication:       pulumi.Bool(true),\n\t\t\tOverrideAllGroupsUponLogin: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.platform.CrowdSettings;\nimport com.pulumi.platform.CrowdSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_crowd_settings = new CrowdSettings(\"my-crowd-settings\", CrowdSettingsArgs.builder()\n            .enable(true)\n            .serverUrl(\"http://tempurl.org\")\n            .applicationName(\"my-crowd-settings\")\n            .password(\"my-password\")\n            .sessionValidationInterval(5.0)\n            .useDefaultProxy(false)\n            .autoUserCreation(true)\n            .allowUserToAccessProfile(false)\n            .directAuthentication(true)\n            .overrideAllGroupsUponLogin(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-crowd-settings:\n    type: platform:CrowdSettings\n    properties:\n      enable: true\n      serverUrl: http://tempurl.org\n      applicationName: my-crowd-settings\n      password: my-password\n      sessionValidationInterval: 5\n      useDefaultProxy: false\n      autoUserCreation: true\n      allowUserToAccessProfile: false\n      directAuthentication: true\n      overrideAllGroupsUponLogin: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/crowdSettings:CrowdSettings my-crowd-settings my-crowd-settings\n```\n\n","properties":{"allowUserToAccessProfile":{"type":"boolean","description":"Auto created users will have access to their profile page and will be able to perform actions such as generating an API key. 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"},"applicationName":{"type":"string","description":"The application name configured for JPD in Crowd/JIRA.\n"},"autoUserCreation":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from a Crowd user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user in Artifactory to manage user permissions not attached to their default groups. 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"},"directAuthentication":{"type":"boolean","description":"This corresponds to 'Users Management Server' option in Artifactory UI (\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 = JIRA, \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 = Crowd). 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"},"enable":{"type":"boolean","description":"Use this to enable security integration with Atlassian Crowd or JIRA.\n"},"overrideAllGroupsUponLogin":{"type":"boolean","description":"When a user logs in with CROWD, only groups retrieved from CROWD will be associated with the user. 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"},"password":{"type":"string","description":"The application password configured for JPD in Crowd/JIRA.\n","secret":true},"serverUrl":{"type":"string","description":"The full URL of the server to use.\n"},"sessionValidationInterval":{"type":"number","description":"The time window (min) during which the session does not need to be validated. If set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the token expires only when the session expires.\n"},"useDefaultProxy":{"type":"boolean","description":"If a default proxy definition exists, it is used to pass through to the Crowd Server. 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"}},"type":"object","required":["allowUserToAccessProfile","applicationName","autoUserCreation","directAuthentication","enable","overrideAllGroupsUponLogin","password","serverUrl","sessionValidationInterval","useDefaultProxy"],"inputProperties":{"allowUserToAccessProfile":{"type":"boolean","description":"Auto created users will have access to their profile page and will be able to perform actions such as generating an API key. 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"},"applicationName":{"type":"string","description":"The application name configured for JPD in Crowd/JIRA.\n"},"autoUserCreation":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from a Crowd user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user in Artifactory to manage user permissions not attached to their default groups. 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"},"directAuthentication":{"type":"boolean","description":"This corresponds to 'Users Management Server' option in Artifactory UI (\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 = JIRA, \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 = Crowd). 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"},"enable":{"type":"boolean","description":"Use this to enable security integration with Atlassian Crowd or JIRA.\n"},"overrideAllGroupsUponLogin":{"type":"boolean","description":"When a user logs in with CROWD, only groups retrieved from CROWD will be associated with the user. 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"},"password":{"type":"string","description":"The application password configured for JPD in Crowd/JIRA.\n","secret":true},"serverUrl":{"type":"string","description":"The full URL of the server to use.\n"},"sessionValidationInterval":{"type":"number","description":"The time window (min) during which the session does not need to be validated. If set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the token expires only when the session expires.\n"},"useDefaultProxy":{"type":"boolean","description":"If a default proxy definition exists, it is used to pass through to the Crowd Server. 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"}},"requiredInputs":["applicationName","enable","password","serverUrl","sessionValidationInterval"],"stateInputs":{"description":"Input properties used for looking up and filtering CrowdSettings resources.\n","properties":{"allowUserToAccessProfile":{"type":"boolean","description":"Auto created users will have access to their profile page and will be able to perform actions such as generating an API key. 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"},"applicationName":{"type":"string","description":"The application name configured for JPD in Crowd/JIRA.\n"},"autoUserCreation":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from a Crowd user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user in Artifactory to manage user permissions not attached to their default groups. 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"},"directAuthentication":{"type":"boolean","description":"This corresponds to 'Users Management Server' option in Artifactory UI (\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 = JIRA, \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 = Crowd). 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"},"enable":{"type":"boolean","description":"Use this to enable security integration with Atlassian Crowd or JIRA.\n"},"overrideAllGroupsUponLogin":{"type":"boolean","description":"When a user logs in with CROWD, only groups retrieved from CROWD will be associated with the user. 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"},"password":{"type":"string","description":"The application password configured for JPD in Crowd/JIRA.\n","secret":true},"serverUrl":{"type":"string","description":"The full URL of the server to use.\n"},"sessionValidationInterval":{"type":"number","description":"The time window (min) during which the session does not need to be validated. If set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the token expires only when the session expires.\n"},"useDefaultProxy":{"type":"boolean","description":"If a default proxy definition exists, it is used to pass through to the Crowd Server. 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"}},"type":"object"}},"platform:index/globalRole:GlobalRole":{"description":"Provides a JFrog [global role](https://jfrog.com/help/r/jfrog-platform-administration-documentation/global-and-project-role-types) resource to manage custom global roles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_global_role = new platform.GlobalRole(\"my-global-role\", {\n    name: \"my-global-role\",\n    description: \"My custom global role\",\n    type: \"CUSTOM_GLOBAL\",\n    environments: [\n        \"DEV\",\n        \"PROD\",\n    ],\n    actions: [\n        \"READ_REPOSITORY\",\n        \"READ_BUILD\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_global_role = platform.GlobalRole(\"my-global-role\",\n    name=\"my-global-role\",\n    description=\"My custom global role\",\n    type=\"CUSTOM_GLOBAL\",\n    environments=[\n        \"DEV\",\n        \"PROD\",\n    ],\n    actions=[\n        \"READ_REPOSITORY\",\n        \"READ_BUILD\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_global_role = new Platform.GlobalRole(\"my-global-role\", new()\n    {\n        Name = \"my-global-role\",\n        Description = \"My custom global role\",\n        Type = \"CUSTOM_GLOBAL\",\n        Environments = new[]\n        {\n            \"DEV\",\n            \"PROD\",\n        },\n        Actions = new[]\n        {\n            \"READ_REPOSITORY\",\n            \"READ_BUILD\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewGlobalRole(ctx, \"my-global-role\", \u0026platform.GlobalRoleArgs{\n\t\t\tName:        pulumi.String(\"my-global-role\"),\n\t\t\tDescription: pulumi.String(\"My custom global role\"),\n\t\t\tType:        pulumi.String(\"CUSTOM_GLOBAL\"),\n\t\t\tEnvironments: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DEV\"),\n\t\t\t\tpulumi.String(\"PROD\"),\n\t\t\t},\n\t\t\tActions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"READ_REPOSITORY\"),\n\t\t\t\tpulumi.String(\"READ_BUILD\"),\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.platform.GlobalRole;\nimport com.pulumi.platform.GlobalRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_global_role = new GlobalRole(\"my-global-role\", GlobalRoleArgs.builder()\n            .name(\"my-global-role\")\n            .description(\"My custom global role\")\n            .type(\"CUSTOM_GLOBAL\")\n            .environments(            \n                \"DEV\",\n                \"PROD\")\n            .actions(            \n                \"READ_REPOSITORY\",\n                \"READ_BUILD\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-global-role:\n    type: platform:GlobalRole\n    properties:\n      name: my-global-role\n      description: My custom global role\n      type: CUSTOM_GLOBAL\n      environments:\n        - DEV\n        - PROD\n      actions:\n        - READ_REPOSITORY\n        - READ_BUILD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/globalRole:GlobalRole my-global-role my-global-role\n```\n\n","properties":{"actions":{"type":"array","items":{"type":"string"},"description":"List of actions. Allowed values: READ*REPOSITORY, ANNOTATE*REPOSITORY, DEPLOY*CACHE*REPOSITORY, DELETE*OVERWRITE*REPOSITORY, MANAGE*XRAY*MD*REPOSITORY, READ*RELEASE*BUNDLE, ANNOTATE*RELEASE*BUNDLE, CREATE*RELEASE*BUNDLE, DISTRIBUTE*RELEASE*BUNDLE, DELETE*RELEASE*BUNDLE, MANAGE*XRAY*MD*RELEASE*BUNDLE, READ*BUILD, ANNOTATE*BUILD, DEPLOY*BUILD, DELETE*BUILD, MANAGE*XRAY*MD*BUILD, READ*SOURCES*PIPELINE, TRIGGER*PIPELINE, READ*INTEGRATIONS*PIPELINE, READ*POOLS*PIPELINE, REPORTS*SECURITY, WATCHES*SECURITY, POLICIES*SECURITY, RULES*SECURITY, READ*POLICIES_SECURITY\n"},"description":{"type":"string","description":"Description of the role\n"},"environments":{"type":"array","items":{"type":"string"},"description":"List of global or custom environments. A repository can be available in different environments. Members with roles defined in the set environment will have access to the repository.\n"},"name":{"type":"string","description":"Name of the role\n"},"type":{"type":"string","description":"Type of the role. Allowed values: ADMIN, CUSTOM_GLOBAL, PREDEFINED\n"}},"type":"object","required":["actions","environments","name","type"],"inputProperties":{"actions":{"type":"array","items":{"type":"string"},"description":"List of actions. Allowed values: READ*REPOSITORY, ANNOTATE*REPOSITORY, DEPLOY*CACHE*REPOSITORY, DELETE*OVERWRITE*REPOSITORY, MANAGE*XRAY*MD*REPOSITORY, READ*RELEASE*BUNDLE, ANNOTATE*RELEASE*BUNDLE, CREATE*RELEASE*BUNDLE, DISTRIBUTE*RELEASE*BUNDLE, DELETE*RELEASE*BUNDLE, MANAGE*XRAY*MD*RELEASE*BUNDLE, READ*BUILD, ANNOTATE*BUILD, DEPLOY*BUILD, DELETE*BUILD, MANAGE*XRAY*MD*BUILD, READ*SOURCES*PIPELINE, TRIGGER*PIPELINE, READ*INTEGRATIONS*PIPELINE, READ*POOLS*PIPELINE, REPORTS*SECURITY, WATCHES*SECURITY, POLICIES*SECURITY, RULES*SECURITY, READ*POLICIES_SECURITY\n"},"description":{"type":"string","description":"Description of the role\n"},"environments":{"type":"array","items":{"type":"string"},"description":"List of global or custom environments. A repository can be available in different environments. Members with roles defined in the set environment will have access to the repository.\n"},"name":{"type":"string","description":"Name of the role\n"},"type":{"type":"string","description":"Type of the role. Allowed values: ADMIN, CUSTOM_GLOBAL, PREDEFINED\n"}},"requiredInputs":["actions","environments","type"],"stateInputs":{"description":"Input properties used for looking up and filtering GlobalRole resources.\n","properties":{"actions":{"type":"array","items":{"type":"string"},"description":"List of actions. Allowed values: READ*REPOSITORY, ANNOTATE*REPOSITORY, DEPLOY*CACHE*REPOSITORY, DELETE*OVERWRITE*REPOSITORY, MANAGE*XRAY*MD*REPOSITORY, READ*RELEASE*BUNDLE, ANNOTATE*RELEASE*BUNDLE, CREATE*RELEASE*BUNDLE, DISTRIBUTE*RELEASE*BUNDLE, DELETE*RELEASE*BUNDLE, MANAGE*XRAY*MD*RELEASE*BUNDLE, READ*BUILD, ANNOTATE*BUILD, DEPLOY*BUILD, DELETE*BUILD, MANAGE*XRAY*MD*BUILD, READ*SOURCES*PIPELINE, TRIGGER*PIPELINE, READ*INTEGRATIONS*PIPELINE, READ*POOLS*PIPELINE, REPORTS*SECURITY, WATCHES*SECURITY, POLICIES*SECURITY, RULES*SECURITY, READ*POLICIES_SECURITY\n"},"description":{"type":"string","description":"Description of the role\n"},"environments":{"type":"array","items":{"type":"string"},"description":"List of global or custom environments. A repository can be available in different environments. Members with roles defined in the set environment will have access to the repository.\n"},"name":{"type":"string","description":"Name of the role\n"},"type":{"type":"string","description":"Type of the role. Allowed values: ADMIN, CUSTOM_GLOBAL, PREDEFINED\n"}},"type":"object"}},"platform:index/group:Group":{"description":"Provides a group resource to create and manage groups, and manages membership. A group represents a role and is used with RBAC (Role-Based Access Control) rules. See [JFrog documentation](https://jfrog.com/help/r/jfrog-platform-administration-documentation/create-and-edit-groups) for more details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_group = new platform.Group(\"my-group\", {\n    name: \"my-group\",\n    description: \"My group\",\n    externalId: \"My Azure ID\",\n    autoJoin: true,\n    adminPrivileges: false,\n    members: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_group = platform.Group(\"my-group\",\n    name=\"my-group\",\n    description=\"My group\",\n    external_id=\"My Azure ID\",\n    auto_join=True,\n    admin_privileges=False,\n    members=[\"admin\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_group = new Platform.Group(\"my-group\", new()\n    {\n        Name = \"my-group\",\n        Description = \"My group\",\n        ExternalId = \"My Azure ID\",\n        AutoJoin = true,\n        AdminPrivileges = false,\n        Members = new[]\n        {\n            \"admin\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewGroup(ctx, \"my-group\", \u0026platform.GroupArgs{\n\t\t\tName:            pulumi.String(\"my-group\"),\n\t\t\tDescription:     pulumi.String(\"My group\"),\n\t\t\tExternalId:      pulumi.String(\"My Azure ID\"),\n\t\t\tAutoJoin:        pulumi.Bool(true),\n\t\t\tAdminPrivileges: pulumi.Bool(false),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\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.platform.Group;\nimport com.pulumi.platform.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_group = new Group(\"my-group\", GroupArgs.builder()\n            .name(\"my-group\")\n            .description(\"My group\")\n            .externalId(\"My Azure ID\")\n            .autoJoin(true)\n            .adminPrivileges(false)\n            .members(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-group:\n    type: platform:Group\n    properties:\n      name: my-group\n      description: My group\n      externalId: My Azure ID\n      autoJoin: true\n      adminPrivileges: false\n      members:\n        - admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/group:Group my-group my-group\n```\n\n","properties":{"adminPrivileges":{"type":"boolean","description":"Any users added to this group will automatically be assigned with admin privileges in the system.\n"},"autoJoin":{"type":"boolean","description":"When this parameter is set, any new users defined in the system are automatically assigned to this group.\n"},"description":{"type":"string","description":"A description for the group.\n"},"externalId":{"type":"string","description":"New external group ID used to configure the corresponding group in Azure AD.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of users assigned to the group.\n","deprecationMessage":"Deprecated"},"name":{"type":"string","description":"Name of the group.\n"},"realm":{"type":"string","description":"The realm for the group.\n"},"realmAttributes":{"type":"string","description":"The realm for the group.\n"},"useGroupMembersResource":{"type":"boolean","description":"When set to \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, this resource will ignore the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e attributes and allow memberships to be managed by \u003cspan pulumi-lang-nodejs=\"`platform.GroupMembers`\" pulumi-lang-dotnet=\"`platform.GroupMembers`\" pulumi-lang-go=\"`GroupMembers`\" pulumi-lang-python=\"`GroupMembers`\" pulumi-lang-yaml=\"`platform.GroupMembers`\" pulumi-lang-java=\"`platform.GroupMembers`\"\u003e`platform.GroupMembers`\u003c/span\u003e resource instead. 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","required":["adminPrivileges","autoJoin","name","realm","realmAttributes","useGroupMembersResource"],"inputProperties":{"adminPrivileges":{"type":"boolean","description":"Any users added to this group will automatically be assigned with admin privileges in the system.\n"},"autoJoin":{"type":"boolean","description":"When this parameter is set, any new users defined in the system are automatically assigned to this group.\n"},"description":{"type":"string","description":"A description for the group.\n"},"externalId":{"type":"string","description":"New external group ID used to configure the corresponding group in Azure AD.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of users assigned to the group.\n","deprecationMessage":"Deprecated"},"name":{"type":"string","description":"Name of the group.\n"},"useGroupMembersResource":{"type":"boolean","description":"When set to \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, this resource will ignore the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e attributes and allow memberships to be managed by \u003cspan pulumi-lang-nodejs=\"`platform.GroupMembers`\" pulumi-lang-dotnet=\"`platform.GroupMembers`\" pulumi-lang-go=\"`GroupMembers`\" pulumi-lang-python=\"`GroupMembers`\" pulumi-lang-yaml=\"`platform.GroupMembers`\" pulumi-lang-java=\"`platform.GroupMembers`\"\u003e`platform.GroupMembers`\u003c/span\u003e resource instead. 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"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"adminPrivileges":{"type":"boolean","description":"Any users added to this group will automatically be assigned with admin privileges in the system.\n"},"autoJoin":{"type":"boolean","description":"When this parameter is set, any new users defined in the system are automatically assigned to this group.\n"},"description":{"type":"string","description":"A description for the group.\n"},"externalId":{"type":"string","description":"New external group ID used to configure the corresponding group in Azure AD.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of users assigned to the group.\n","deprecationMessage":"Deprecated"},"name":{"type":"string","description":"Name of the group.\n"},"realm":{"type":"string","description":"The realm for the group.\n"},"realmAttributes":{"type":"string","description":"The realm for the group.\n"},"useGroupMembersResource":{"type":"boolean","description":"When set to \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, this resource will ignore the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e attributes and allow memberships to be managed by \u003cspan pulumi-lang-nodejs=\"`platform.GroupMembers`\" pulumi-lang-dotnet=\"`platform.GroupMembers`\" pulumi-lang-go=\"`GroupMembers`\" pulumi-lang-python=\"`GroupMembers`\" pulumi-lang-yaml=\"`platform.GroupMembers`\" pulumi-lang-java=\"`platform.GroupMembers`\"\u003e`platform.GroupMembers`\u003c/span\u003e resource instead. 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"}},"platform:index/groupMembers:GroupMembers":{"description":"Provides a resource to manage group membership. See [JFrog documentation](https://jfrog.com/help/r/jfrog-platform-administration-documentation/assign-users-to-groups) for more details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_group = new platform.Group(\"my-group\", {\n    name: \"my-group\",\n    description: \"My group\",\n    externalId: \"My Azure ID\",\n    autoJoin: true,\n    adminPrivileges: false,\n});\nconst my_group_members = new platform.GroupMembers(\"my-group-members\", {\n    name: my_group.name,\n    members: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_group = platform.Group(\"my-group\",\n    name=\"my-group\",\n    description=\"My group\",\n    external_id=\"My Azure ID\",\n    auto_join=True,\n    admin_privileges=False)\nmy_group_members = platform.GroupMembers(\"my-group-members\",\n    name=my_group.name,\n    members=[\"admin\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_group = new Platform.Group(\"my-group\", new()\n    {\n        Name = \"my-group\",\n        Description = \"My group\",\n        ExternalId = \"My Azure ID\",\n        AutoJoin = true,\n        AdminPrivileges = false,\n    });\n\n    var my_group_members = new Platform.GroupMembers(\"my-group-members\", new()\n    {\n        Name = my_group.Name,\n        Members = new[]\n        {\n            \"admin\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_group, err := platform.NewGroup(ctx, \"my-group\", \u0026platform.GroupArgs{\n\t\t\tName:            pulumi.String(\"my-group\"),\n\t\t\tDescription:     pulumi.String(\"My group\"),\n\t\t\tExternalId:      pulumi.String(\"My Azure ID\"),\n\t\t\tAutoJoin:        pulumi.Bool(true),\n\t\t\tAdminPrivileges: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = platform.NewGroupMembers(ctx, \"my-group-members\", \u0026platform.GroupMembersArgs{\n\t\t\tName: my_group.Name,\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\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.platform.Group;\nimport com.pulumi.platform.GroupArgs;\nimport com.pulumi.platform.GroupMembers;\nimport com.pulumi.platform.GroupMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_group = new Group(\"my-group\", GroupArgs.builder()\n            .name(\"my-group\")\n            .description(\"My group\")\n            .externalId(\"My Azure ID\")\n            .autoJoin(true)\n            .adminPrivileges(false)\n            .build());\n\n        var my_group_members = new GroupMembers(\"my-group-members\", GroupMembersArgs.builder()\n            .name(my_group.name())\n            .members(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-group:\n    type: platform:Group\n    properties:\n      name: my-group\n      description: My group\n      externalId: My Azure ID\n      autoJoin: true\n      adminPrivileges: false\n  my-group-members:\n    type: platform:GroupMembers\n    properties:\n      name: ${[\"my-group\"].name}\n      members:\n        - admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/groupMembers:GroupMembers my-group my-group\n```\n\n","properties":{"members":{"type":"array","items":{"type":"string"},"description":"List of users assigned to the group.\n"},"name":{"type":"string","description":"Name of the group.\n"}},"type":"object","required":["members","name"],"inputProperties":{"members":{"type":"array","items":{"type":"string"},"description":"List of users assigned to the group.\n"},"name":{"type":"string","description":"Name of the group.\n"}},"requiredInputs":["members"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupMembers resources.\n","properties":{"members":{"type":"array","items":{"type":"string"},"description":"List of users assigned to the group.\n"},"name":{"type":"string","description":"Name of the group.\n"}},"type":"object"}},"platform:index/httpSsoSettings:HttpSsoSettings":{"description":"Provides a JFrog [HTTP SSO Settings](https://jfrog.com/help/r/jfrog-platform-administration-documentation/http-sso) resource. This allows you to reuse existing HTTP-based SSO infrastructures with the JFrog Platform Unit (JPD), such as the SSO modules offered by Apache HTTPd.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_http_sso_settings = new platform.HttpSsoSettings(\"my-http-sso-settings\", {\n    proxied: true,\n    autoCreateUser: true,\n    allowUserToAccessProfile: true,\n    remoteUserRequestVariable: \"MY_REMOTE_USER\",\n    syncLdapGroups: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_http_sso_settings = platform.HttpSsoSettings(\"my-http-sso-settings\",\n    proxied=True,\n    auto_create_user=True,\n    allow_user_to_access_profile=True,\n    remote_user_request_variable=\"MY_REMOTE_USER\",\n    sync_ldap_groups=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_http_sso_settings = new Platform.HttpSsoSettings(\"my-http-sso-settings\", new()\n    {\n        Proxied = true,\n        AutoCreateUser = true,\n        AllowUserToAccessProfile = true,\n        RemoteUserRequestVariable = \"MY_REMOTE_USER\",\n        SyncLdapGroups = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewHttpSsoSettings(ctx, \"my-http-sso-settings\", \u0026platform.HttpSsoSettingsArgs{\n\t\t\tProxied:                   pulumi.Bool(true),\n\t\t\tAutoCreateUser:            pulumi.Bool(true),\n\t\t\tAllowUserToAccessProfile:  pulumi.Bool(true),\n\t\t\tRemoteUserRequestVariable: pulumi.String(\"MY_REMOTE_USER\"),\n\t\t\tSyncLdapGroups:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.platform.HttpSsoSettings;\nimport com.pulumi.platform.HttpSsoSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_http_sso_settings = new HttpSsoSettings(\"my-http-sso-settings\", HttpSsoSettingsArgs.builder()\n            .proxied(true)\n            .autoCreateUser(true)\n            .allowUserToAccessProfile(true)\n            .remoteUserRequestVariable(\"MY_REMOTE_USER\")\n            .syncLdapGroups(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-http-sso-settings:\n    type: platform:HttpSsoSettings\n    properties:\n      proxied: true\n      autoCreateUser: true\n      allowUserToAccessProfile: true\n      remoteUserRequestVariable: MY_REMOTE_USER\n      syncLdapGroups: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/httpSsoSettings:HttpSsoSettings my-http-sso-settings my-http-sso-settings\n```\n\n","properties":{"allowUserToAccessProfile":{"type":"boolean","description":"Auto created users will have access to their profile page and will be able to perform actions such as generating an API key. Default to \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"},"autoCreateUser":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from an SSO user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user inside Artifactory to manage user permissions not attached to their default groups. Default to \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"},"proxied":{"type":"boolean","description":"When set, Artifactory trusts incoming requests and reuses the remote user originally set on the request by the SSO of the HTTP server. This is useful if you want to use existing enterprise SSO integrations, such as the powerful authentication schemes provided by Apache (mod*auth*ldap, mod*auth*ntlm, mod*auth*kerb, etc.). When Artifactory is deployed as a webapp on Tomcat behind Apache: If using mod_jk, be sure to use the `JkEnvVar REMOTE_USER` directive in Apache's configuration.\n"},"remoteUserRequestVariable":{"type":"string","description":"The name of the HTTP request variable to use for extracting the user identity. Default to `REMOTE_USER`.\n"},"syncLdapGroups":{"type":"boolean","description":"When set, the user will be associated with the groups returned in the LDAP login response. Note that the user's association with the returned groups is persistent if the \u003cspan pulumi-lang-nodejs=\"`autoCreateUser`\" pulumi-lang-dotnet=\"`AutoCreateUser`\" pulumi-lang-go=\"`autoCreateUser`\" pulumi-lang-python=\"`auto_create_user`\" pulumi-lang-yaml=\"`autoCreateUser`\" pulumi-lang-java=\"`autoCreateUser`\"\u003e`auto_create_user`\u003c/span\u003e is set. Default to \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"}},"type":"object","required":["allowUserToAccessProfile","autoCreateUser","proxied","remoteUserRequestVariable","syncLdapGroups"],"inputProperties":{"allowUserToAccessProfile":{"type":"boolean","description":"Auto created users will have access to their profile page and will be able to perform actions such as generating an API key. Default to \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"},"autoCreateUser":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from an SSO user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user inside Artifactory to manage user permissions not attached to their default groups. Default to \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"},"proxied":{"type":"boolean","description":"When set, Artifactory trusts incoming requests and reuses the remote user originally set on the request by the SSO of the HTTP server. This is useful if you want to use existing enterprise SSO integrations, such as the powerful authentication schemes provided by Apache (mod*auth*ldap, mod*auth*ntlm, mod*auth*kerb, etc.). When Artifactory is deployed as a webapp on Tomcat behind Apache: If using mod_jk, be sure to use the `JkEnvVar REMOTE_USER` directive in Apache's configuration.\n"},"remoteUserRequestVariable":{"type":"string","description":"The name of the HTTP request variable to use for extracting the user identity. Default to `REMOTE_USER`.\n"},"syncLdapGroups":{"type":"boolean","description":"When set, the user will be associated with the groups returned in the LDAP login response. Note that the user's association with the returned groups is persistent if the \u003cspan pulumi-lang-nodejs=\"`autoCreateUser`\" pulumi-lang-dotnet=\"`AutoCreateUser`\" pulumi-lang-go=\"`autoCreateUser`\" pulumi-lang-python=\"`auto_create_user`\" pulumi-lang-yaml=\"`autoCreateUser`\" pulumi-lang-java=\"`autoCreateUser`\"\u003e`auto_create_user`\u003c/span\u003e is set. Default to \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"}},"requiredInputs":["proxied"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpSsoSettings resources.\n","properties":{"allowUserToAccessProfile":{"type":"boolean","description":"Auto created users will have access to their profile page and will be able to perform actions such as generating an API key. Default to \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"},"autoCreateUser":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from an SSO user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user inside Artifactory to manage user permissions not attached to their default groups. Default to \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"},"proxied":{"type":"boolean","description":"When set, Artifactory trusts incoming requests and reuses the remote user originally set on the request by the SSO of the HTTP server. This is useful if you want to use existing enterprise SSO integrations, such as the powerful authentication schemes provided by Apache (mod*auth*ldap, mod*auth*ntlm, mod*auth*kerb, etc.). When Artifactory is deployed as a webapp on Tomcat behind Apache: If using mod_jk, be sure to use the `JkEnvVar REMOTE_USER` directive in Apache's configuration.\n"},"remoteUserRequestVariable":{"type":"string","description":"The name of the HTTP request variable to use for extracting the user identity. Default to `REMOTE_USER`.\n"},"syncLdapGroups":{"type":"boolean","description":"When set, the user will be associated with the groups returned in the LDAP login response. Note that the user's association with the returned groups is persistent if the \u003cspan pulumi-lang-nodejs=\"`autoCreateUser`\" pulumi-lang-dotnet=\"`AutoCreateUser`\" pulumi-lang-go=\"`autoCreateUser`\" pulumi-lang-python=\"`auto_create_user`\" pulumi-lang-yaml=\"`autoCreateUser`\" pulumi-lang-java=\"`autoCreateUser`\"\u003e`auto_create_user`\u003c/span\u003e is set. Default to \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"}},"type":"object"}},"platform:index/license:License":{"description":"Provides a JFrog [license](https://jfrog.com/help/r/jfrog-platform-administration-documentation/managing-licenses) resource to install/update license.\n\n~\u003eOnly available for self-hosted instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_ent_license = new platform.License(\"my-ent-license\", {\n    name: \"my-enterprise-license\",\n    key: `bGljZ\n...\n09Cg==\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_ent_license = platform.License(\"my-ent-license\",\n    name=\"my-enterprise-license\",\n    key=\"\"\"bGljZ\n...\n09Cg==\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_ent_license = new Platform.License(\"my-ent-license\", new()\n    {\n        Name = \"my-enterprise-license\",\n        Key = @\"bGljZ\n...\n09Cg==\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewLicense(ctx, \"my-ent-license\", \u0026platform.LicenseArgs{\n\t\t\tName: pulumi.String(\"my-enterprise-license\"),\n\t\t\tKey:  pulumi.String(\"bGljZ\\n...\\n09Cg==\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.platform.License;\nimport com.pulumi.platform.LicenseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_ent_license = new License(\"my-ent-license\", LicenseArgs.builder()\n            .name(\"my-enterprise-license\")\n            .key(\"\"\"\nbGljZ\n...\n09Cg==\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-ent-license:\n    type: platform:License\n    properties:\n      name: my-enterprise-license\n      key: |\n        bGljZ\n        ...\n        09Cg==\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"key":{"type":"string","description":"License key. Any newline characters must be represented by escape sequence `\n`\n"},"licensedTo":{"type":"string","description":"Customer name the license belongs to.\n"},"name":{"type":"string","description":"Name of the license\n"},"type":{"type":"string","description":"Type of the license.\n"},"validThrough":{"type":"string","description":"Date of the license is valid through.\n"}},"type":"object","required":["key","licensedTo","name","type","validThrough"],"inputProperties":{"key":{"type":"string","description":"License key. Any newline characters must be represented by escape sequence `\n`\n"},"name":{"type":"string","description":"Name of the license\n"}},"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering License resources.\n","properties":{"key":{"type":"string","description":"License key. Any newline characters must be represented by escape sequence `\n`\n"},"licensedTo":{"type":"string","description":"Customer name the license belongs to.\n"},"name":{"type":"string","description":"Name of the license\n"},"type":{"type":"string","description":"Type of the license.\n"},"validThrough":{"type":"string","description":"Date of the license is valid through.\n"}},"type":"object"}},"platform:index/lifecycle:Lifecycle":{"description":"Provides a lifecycle resource to manage the lifecycle configuration for a project or globally. The lifecycle defines the ordered stages through which software progresses. See [JFrog documentation](https://jfrog.com/help/r/jfrog-platform-administration-documentation/stages-lifecycle) for more details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\n// First, create the lifecycle stages\nconst dev = new platform.LifecycleStage(\"dev\", {\n    name: \"dev\",\n    category: \"promote\",\n});\nconst qa = new platform.LifecycleStage(\"qa\", {\n    name: \"qa\",\n    category: \"promote\",\n});\n// Global lifecycle\n// Note: PROD, PR, and COMMIT are system-managed stages and should not be included in promote_stages\nconst global = new platform.Lifecycle(\"global\", {promoteStages: [\n    dev.name,\n    qa.name,\n]});\n// Project-level lifecycle\n// Note: Project-scoped stages must be prefixed with project_key\nconst projectDev = new platform.LifecycleStage(\"project_dev\", {\n    name: \"my-project-dev\",\n    projectKey: \"my-project\",\n    category: \"promote\",\n});\nconst projectStaging = new platform.LifecycleStage(\"project_staging\", {\n    name: \"my-project-staging\",\n    projectKey: \"my-project\",\n    category: \"promote\",\n});\nconst project = new platform.Lifecycle(\"project\", {\n    projectKey: \"my-project\",\n    promoteStages: [\n        projectDev.name,\n        projectStaging.name,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\n# First, create the lifecycle stages\ndev = platform.LifecycleStage(\"dev\",\n    name=\"dev\",\n    category=\"promote\")\nqa = platform.LifecycleStage(\"qa\",\n    name=\"qa\",\n    category=\"promote\")\n# Global lifecycle\n# Note: PROD, PR, and COMMIT are system-managed stages and should not be included in promote_stages\nglobal_ = platform.Lifecycle(\"global\", promote_stages=[\n    dev.name,\n    qa.name,\n])\n# Project-level lifecycle\n# Note: Project-scoped stages must be prefixed with project_key\nproject_dev = platform.LifecycleStage(\"project_dev\",\n    name=\"my-project-dev\",\n    project_key=\"my-project\",\n    category=\"promote\")\nproject_staging = platform.LifecycleStage(\"project_staging\",\n    name=\"my-project-staging\",\n    project_key=\"my-project\",\n    category=\"promote\")\nproject = platform.Lifecycle(\"project\",\n    project_key=\"my-project\",\n    promote_stages=[\n        project_dev.name,\n        project_staging.name,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // First, create the lifecycle stages\n    var dev = new Platform.LifecycleStage(\"dev\", new()\n    {\n        Name = \"dev\",\n        Category = \"promote\",\n    });\n\n    var qa = new Platform.LifecycleStage(\"qa\", new()\n    {\n        Name = \"qa\",\n        Category = \"promote\",\n    });\n\n    // Global lifecycle\n    // Note: PROD, PR, and COMMIT are system-managed stages and should not be included in promote_stages\n    var @global = new Platform.Lifecycle(\"global\", new()\n    {\n        PromoteStages = new[]\n        {\n            dev.Name,\n            qa.Name,\n        },\n    });\n\n    // Project-level lifecycle\n    // Note: Project-scoped stages must be prefixed with project_key\n    var projectDev = new Platform.LifecycleStage(\"project_dev\", new()\n    {\n        Name = \"my-project-dev\",\n        ProjectKey = \"my-project\",\n        Category = \"promote\",\n    });\n\n    var projectStaging = new Platform.LifecycleStage(\"project_staging\", new()\n    {\n        Name = \"my-project-staging\",\n        ProjectKey = \"my-project\",\n        Category = \"promote\",\n    });\n\n    var project = new Platform.Lifecycle(\"project\", new()\n    {\n        ProjectKey = \"my-project\",\n        PromoteStages = new[]\n        {\n            projectDev.Name,\n            projectStaging.Name,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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// First, create the lifecycle stages\n\t\tdev, err := platform.NewLifecycleStage(ctx, \"dev\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:     pulumi.String(\"dev\"),\n\t\t\tCategory: pulumi.String(\"promote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqa, err := platform.NewLifecycleStage(ctx, \"qa\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:     pulumi.String(\"qa\"),\n\t\t\tCategory: pulumi.String(\"promote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Global lifecycle\n\t\t// Note: PROD, PR, and COMMIT are system-managed stages and should not be included in promote_stages\n\t\t_, err = platform.NewLifecycle(ctx, \"global\", \u0026platform.LifecycleArgs{\n\t\t\tPromoteStages: pulumi.StringArray{\n\t\t\t\tdev.Name,\n\t\t\t\tqa.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Project-level lifecycle\n\t\t// Note: Project-scoped stages must be prefixed with project_key\n\t\tprojectDev, err := platform.NewLifecycleStage(ctx, \"project_dev\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:       pulumi.String(\"my-project-dev\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tCategory:   pulumi.String(\"promote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprojectStaging, err := platform.NewLifecycleStage(ctx, \"project_staging\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:       pulumi.String(\"my-project-staging\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tCategory:   pulumi.String(\"promote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = platform.NewLifecycle(ctx, \"project\", \u0026platform.LifecycleArgs{\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tPromoteStages: pulumi.StringArray{\n\t\t\t\tprojectDev.Name,\n\t\t\t\tprojectStaging.Name,\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.platform.LifecycleStage;\nimport com.pulumi.platform.LifecycleStageArgs;\nimport com.pulumi.platform.Lifecycle;\nimport com.pulumi.platform.LifecycleArgs;\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        // First, create the lifecycle stages\n        var dev = new LifecycleStage(\"dev\", LifecycleStageArgs.builder()\n            .name(\"dev\")\n            .category(\"promote\")\n            .build());\n\n        var qa = new LifecycleStage(\"qa\", LifecycleStageArgs.builder()\n            .name(\"qa\")\n            .category(\"promote\")\n            .build());\n\n        // Global lifecycle\n        // Note: PROD, PR, and COMMIT are system-managed stages and should not be included in promote_stages\n        var global = new Lifecycle(\"global\", LifecycleArgs.builder()\n            .promoteStages(            \n                dev.name(),\n                qa.name())\n            .build());\n\n        // Project-level lifecycle\n        // Note: Project-scoped stages must be prefixed with project_key\n        var projectDev = new LifecycleStage(\"projectDev\", LifecycleStageArgs.builder()\n            .name(\"my-project-dev\")\n            .projectKey(\"my-project\")\n            .category(\"promote\")\n            .build());\n\n        var projectStaging = new LifecycleStage(\"projectStaging\", LifecycleStageArgs.builder()\n            .name(\"my-project-staging\")\n            .projectKey(\"my-project\")\n            .category(\"promote\")\n            .build());\n\n        var project = new Lifecycle(\"project\", LifecycleArgs.builder()\n            .projectKey(\"my-project\")\n            .promoteStages(            \n                projectDev.name(),\n                projectStaging.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # First, create the lifecycle stages\n  dev:\n    type: platform:LifecycleStage\n    properties:\n      name: dev\n      category: promote\n  qa:\n    type: platform:LifecycleStage\n    properties:\n      name: qa\n      category: promote\n  # Global lifecycle\n  # Note: PROD, PR, and COMMIT are system-managed stages and should not be included in promote_stages\n  global:\n    type: platform:Lifecycle\n    properties:\n      promoteStages:\n        - ${dev.name}\n        - ${qa.name}\n  # Project-level lifecycle\n  # Note: Project-scoped stages must be prefixed with project_key\n  projectDev:\n    type: platform:LifecycleStage\n    name: project_dev\n    properties:\n      name: my-project-dev\n      projectKey: my-project\n      category: promote\n  projectStaging:\n    type: platform:LifecycleStage\n    name: project_staging\n    properties:\n      name: my-project-staging\n      projectKey: my-project\n      category: promote\n  project:\n    type: platform:Lifecycle\n    properties:\n      projectKey: my-project\n      promoteStages:\n        - ${projectDev.name}\n        - ${projectStaging.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/bin/bash\n\nImport a global lifecycle\n\n```sh\n$ pulumi import platform:index/lifecycle:Lifecycle global \"\"\n```\n\nImport a project-level lifecycle\n\n```sh\n$ pulumi import platform:index/lifecycle:Lifecycle project my-project\n```\n\n","properties":{"categories":{"type":"array","items":{"$ref":"#/types/platform:index%2FLifecycleCategory:LifecycleCategory"},"description":"An ordered list of lifecycle categories and stages.\n"},"projectKey":{"type":"string","description":"The project key for which to manage the lifecycle. If not set, manages the global lifecycle.\n"},"promoteStages":{"type":"array","items":{"type":"string"},"description":"The new, ordered list of stage names that comprise the lifecycle. Global stages, such as PR, COMMIT, and PROD, cannot be modified and should not be included in the request.\n"},"releaseStage":{"type":"string","description":"Name of the release stage (for example, PROD).\n"}},"type":"object","required":["categories","promoteStages","releaseStage"],"inputProperties":{"projectKey":{"type":"string","description":"The project key for which to manage the lifecycle. If not set, manages the global lifecycle.\n"},"promoteStages":{"type":"array","items":{"type":"string"},"description":"The new, ordered list of stage names that comprise the lifecycle. Global stages, such as PR, COMMIT, and PROD, cannot be modified and should not be included in the request.\n"}},"requiredInputs":["promoteStages"],"stateInputs":{"description":"Input properties used for looking up and filtering Lifecycle resources.\n","properties":{"categories":{"type":"array","items":{"$ref":"#/types/platform:index%2FLifecycleCategory:LifecycleCategory"},"description":"An ordered list of lifecycle categories and stages.\n"},"projectKey":{"type":"string","description":"The project key for which to manage the lifecycle. If not set, manages the global lifecycle.\n"},"promoteStages":{"type":"array","items":{"type":"string"},"description":"The new, ordered list of stage names that comprise the lifecycle. Global stages, such as PR, COMMIT, and PROD, cannot be modified and should not be included in the request.\n"},"releaseStage":{"type":"string","description":"Name of the release stage (for example, PROD).\n"}},"type":"object"}},"platform:index/lifecycleStage:LifecycleStage":{"description":"Provides a lifecycle stage resource to create and manage lifecycle stages. A lifecycle stage represents a step in the software development lifecycle. See [JFrog documentation](https://jfrog.com/help/r/jfrog-platform-administration-documentation/stages-lifecycle) for more details.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\n// Global lifecycle stage\nconst dev = new platform.LifecycleStage(\"dev\", {\n    name: \"dev\",\n    category: \"promote\",\n});\n// Project-level lifecycle stage\n// Note: Project-scoped stage names must be prefixed with the project_key\nconst staging = new platform.LifecycleStage(\"staging\", {\n    name: \"my-project-staging\",\n    projectKey: \"my-project\",\n    category: \"promote\",\n});\n// Code category stage\nconst qa = new platform.LifecycleStage(\"qa\", {\n    name: \"my-project-qa\",\n    projectKey: \"my-project\",\n    category: \"code\",\n});\n// Minimal example (category defaults to \"promote\")\nconst test = new platform.LifecycleStage(\"test\", {\n    name: \"my-project-test\",\n    projectKey: \"my-project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\n# Global lifecycle stage\ndev = platform.LifecycleStage(\"dev\",\n    name=\"dev\",\n    category=\"promote\")\n# Project-level lifecycle stage\n# Note: Project-scoped stage names must be prefixed with the project_key\nstaging = platform.LifecycleStage(\"staging\",\n    name=\"my-project-staging\",\n    project_key=\"my-project\",\n    category=\"promote\")\n# Code category stage\nqa = platform.LifecycleStage(\"qa\",\n    name=\"my-project-qa\",\n    project_key=\"my-project\",\n    category=\"code\")\n# Minimal example (category defaults to \"promote\")\ntest = platform.LifecycleStage(\"test\",\n    name=\"my-project-test\",\n    project_key=\"my-project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Global lifecycle stage\n    var dev = new Platform.LifecycleStage(\"dev\", new()\n    {\n        Name = \"dev\",\n        Category = \"promote\",\n    });\n\n    // Project-level lifecycle stage\n    // Note: Project-scoped stage names must be prefixed with the project_key\n    var staging = new Platform.LifecycleStage(\"staging\", new()\n    {\n        Name = \"my-project-staging\",\n        ProjectKey = \"my-project\",\n        Category = \"promote\",\n    });\n\n    // Code category stage\n    var qa = new Platform.LifecycleStage(\"qa\", new()\n    {\n        Name = \"my-project-qa\",\n        ProjectKey = \"my-project\",\n        Category = \"code\",\n    });\n\n    // Minimal example (category defaults to \"promote\")\n    var test = new Platform.LifecycleStage(\"test\", new()\n    {\n        Name = \"my-project-test\",\n        ProjectKey = \"my-project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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// Global lifecycle stage\n\t\t_, err := platform.NewLifecycleStage(ctx, \"dev\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:     pulumi.String(\"dev\"),\n\t\t\tCategory: pulumi.String(\"promote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Project-level lifecycle stage\n\t\t// Note: Project-scoped stage names must be prefixed with the project_key\n\t\t_, err = platform.NewLifecycleStage(ctx, \"staging\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:       pulumi.String(\"my-project-staging\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tCategory:   pulumi.String(\"promote\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Code category stage\n\t\t_, err = platform.NewLifecycleStage(ctx, \"qa\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:       pulumi.String(\"my-project-qa\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tCategory:   pulumi.String(\"code\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Minimal example (category defaults to \"promote\")\n\t\t_, err = platform.NewLifecycleStage(ctx, \"test\", \u0026platform.LifecycleStageArgs{\n\t\t\tName:       pulumi.String(\"my-project-test\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\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.platform.LifecycleStage;\nimport com.pulumi.platform.LifecycleStageArgs;\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        // Global lifecycle stage\n        var dev = new LifecycleStage(\"dev\", LifecycleStageArgs.builder()\n            .name(\"dev\")\n            .category(\"promote\")\n            .build());\n\n        // Project-level lifecycle stage\n        // Note: Project-scoped stage names must be prefixed with the project_key\n        var staging = new LifecycleStage(\"staging\", LifecycleStageArgs.builder()\n            .name(\"my-project-staging\")\n            .projectKey(\"my-project\")\n            .category(\"promote\")\n            .build());\n\n        // Code category stage\n        var qa = new LifecycleStage(\"qa\", LifecycleStageArgs.builder()\n            .name(\"my-project-qa\")\n            .projectKey(\"my-project\")\n            .category(\"code\")\n            .build());\n\n        // Minimal example (category defaults to \"promote\")\n        var test = new LifecycleStage(\"test\", LifecycleStageArgs.builder()\n            .name(\"my-project-test\")\n            .projectKey(\"my-project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Global lifecycle stage\n  dev:\n    type: platform:LifecycleStage\n    properties:\n      name: dev\n      category: promote\n  # Project-level lifecycle stage\n  # Note: Project-scoped stage names must be prefixed with the project_key\n  staging:\n    type: platform:LifecycleStage\n    properties:\n      name: my-project-staging\n      projectKey: my-project\n      category: promote\n  # Code category stage\n  qa:\n    type: platform:LifecycleStage\n    properties:\n      name: my-project-qa\n      projectKey: my-project\n      category: code\n  # Minimal example (category defaults to \"promote\")\n  test:\n    type: platform:LifecycleStage\n    properties:\n      name: my-project-test\n      projectKey: my-project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#!/bin/bash\n\nImport a global lifecycle stage\n\n```sh\n$ pulumi import platform:index/lifecycleStage:LifecycleStage production PROD\n```\n\nImport a project-level lifecycle stage\n\n```sh\n$ pulumi import platform:index/lifecycleStage:LifecycleStage staging staging-us-east:my-project\n```\n\n","properties":{"category":{"type":"string","description":"The category of the stage: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e (default: \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e).\n"},"created":{"type":"number","description":"The timestamp when the stage was created (milliseconds since epoch).\n"},"detachOnDestroy":{"type":"boolean","description":"If true, the stage will be detached from the lifecycle when the resource is destroyed. This is useful to prevent the stage from being deleted when the lifecycle is destroyed.\n"},"modified":{"type":"number","description":"The timestamp when the stage was last modified (milliseconds since epoch).\n"},"name":{"type":"string","description":"The unique name of the stage (for example, DEV, QA, PROD). For project-scoped stages, the name must be prefixed with the project*key (e.g., 'bookverse-deploy' if project*key is 'bookverse'). **Important:** Stage names are case-sensitive.\n"},"projectKey":{"type":"string","description":"[For project-level stages only] The project key associated with the stage. When set, the stage name must be prefixed with this value (e.g. 'bookverse-deploy' if\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003eis 'bookverse').\n"},"repositories":{"type":"array","items":{"type":"string"},"description":"A list of repository keys assigned to this stage. This is relevant only when the category is \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e. Repositories are managed by the API and returned in the response. Read-only.\n"},"scope":{"type":"string","description":"The scope of the stage: GLOBAL or PROJECT. This is determined by the API based on whether \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e is provided. Read-only.\n"},"totalRepositoryCount":{"type":"number","description":"The total number of repositories assigned to this stage. Read-only.\n"},"usedInLifecycles":{"type":"array","items":{"type":"string"},"description":"Lists the project keys that use this stage as part of its lifecycle.\n"}},"type":"object","required":["category","created","detachOnDestroy","modified","name","repositories","scope","totalRepositoryCount","usedInLifecycles"],"inputProperties":{"category":{"type":"string","description":"The category of the stage: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e (default: \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e).\n"},"detachOnDestroy":{"type":"boolean","description":"If true, the stage will be detached from the lifecycle when the resource is destroyed. This is useful to prevent the stage from being deleted when the lifecycle is destroyed.\n"},"name":{"type":"string","description":"The unique name of the stage (for example, DEV, QA, PROD). For project-scoped stages, the name must be prefixed with the project*key (e.g., 'bookverse-deploy' if project*key is 'bookverse'). **Important:** Stage names are case-sensitive.\n"},"projectKey":{"type":"string","description":"[For project-level stages only] The project key associated with the stage. When set, the stage name must be prefixed with this value (e.g. 'bookverse-deploy' if\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003eis 'bookverse').\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering LifecycleStage resources.\n","properties":{"category":{"type":"string","description":"The category of the stage: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e (default: \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e).\n"},"created":{"type":"number","description":"The timestamp when the stage was created (milliseconds since epoch).\n"},"detachOnDestroy":{"type":"boolean","description":"If true, the stage will be detached from the lifecycle when the resource is destroyed. This is useful to prevent the stage from being deleted when the lifecycle is destroyed.\n"},"modified":{"type":"number","description":"The timestamp when the stage was last modified (milliseconds since epoch).\n"},"name":{"type":"string","description":"The unique name of the stage (for example, DEV, QA, PROD). For project-scoped stages, the name must be prefixed with the project*key (e.g., 'bookverse-deploy' if project*key is 'bookverse'). **Important:** Stage names are case-sensitive.\n"},"projectKey":{"type":"string","description":"[For project-level stages only] The project key associated with the stage. When set, the stage name must be prefixed with this value (e.g. 'bookverse-deploy' if\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003eis 'bookverse').\n"},"repositories":{"type":"array","items":{"type":"string"},"description":"A list of repository keys assigned to this stage. This is relevant only when the category is \u003cspan pulumi-lang-nodejs=\"`promote`\" pulumi-lang-dotnet=\"`Promote`\" pulumi-lang-go=\"`promote`\" pulumi-lang-python=\"`promote`\" pulumi-lang-yaml=\"`promote`\" pulumi-lang-java=\"`promote`\"\u003e`promote`\u003c/span\u003e. Repositories are managed by the API and returned in the response. Read-only.\n"},"scope":{"type":"string","description":"The scope of the stage: GLOBAL or PROJECT. This is determined by the API based on whether \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e is provided. Read-only.\n"},"totalRepositoryCount":{"type":"number","description":"The total number of repositories assigned to this stage. Read-only.\n"},"usedInLifecycles":{"type":"array","items":{"type":"string"},"description":"Lists the project keys that use this stage as part of its lifecycle.\n"}},"type":"object"}},"platform:index/myjfrogIpAllowlist:MyjfrogIpAllowlist":{"description":"Provides a MyJFrog [IP allowlist](https://jfrog.com/help/r/jfrog-hosting-models-documentation/configure-the-ip/cidr-allowlist) resource to manage list of allow IP/CIDR addresses. To use this resource, you need an access token. Only a Primary Admin can generate MyJFrog tokens. For more information, see [Generate a Token in MyJFrog](https://jfrog.com/help/r/jfrog-hosting-models-documentation/generate-a-token-in-myjfrog).\n\n-\u003eThis resource is supported only on the Cloud (SaaS) platform.\n\n~\u003eThe rate limit is **5 times per hour** for actions that result in a successful outcome (for Create, Update, and Delete actions). See [Allowlist REST API](https://jfrog.com/help/r/jfrog-rest-apis/allowlist-rest-api) for full list of limitations.\n\n!\u003eThis resource is being deprecated and moved to the new provider jfrog/myjfrog. Use \u003cspan pulumi-lang-nodejs=\"`myjfrogIpAllowlist`\" pulumi-lang-dotnet=\"`MyjfrogIpAllowlist`\" pulumi-lang-go=\"`myjfrogIpAllowlist`\" pulumi-lang-python=\"`myjfrog_ip_allowlist`\" pulumi-lang-yaml=\"`myjfrogIpAllowlist`\" pulumi-lang-java=\"`myjfrogIpAllowlist`\"\u003e`myjfrog_ip_allowlist`\u003c/span\u003e resource there instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst myjfrog_ip_allowlist = new platform.MyjfrogIpAllowlist(\"myjfrog-ip-allowlist\", {\n    serverName: \"my-jpd-server-name\",\n    ips: [\n        \"1.1.1.7/1\",\n        \"2.2.2.7/1\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmyjfrog_ip_allowlist = platform.MyjfrogIpAllowlist(\"myjfrog-ip-allowlist\",\n    server_name=\"my-jpd-server-name\",\n    ips=[\n        \"1.1.1.7/1\",\n        \"2.2.2.7/1\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myjfrog_ip_allowlist = new Platform.MyjfrogIpAllowlist(\"myjfrog-ip-allowlist\", new()\n    {\n        ServerName = \"my-jpd-server-name\",\n        Ips = new[]\n        {\n            \"1.1.1.7/1\",\n            \"2.2.2.7/1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewMyjfrogIpAllowlist(ctx, \"myjfrog-ip-allowlist\", \u0026platform.MyjfrogIpAllowlistArgs{\n\t\t\tServerName: pulumi.String(\"my-jpd-server-name\"),\n\t\t\tIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.7/1\"),\n\t\t\t\tpulumi.String(\"2.2.2.7/1\"),\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.platform.MyjfrogIpAllowlist;\nimport com.pulumi.platform.MyjfrogIpAllowlistArgs;\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 myjfrog_ip_allowlist = new MyjfrogIpAllowlist(\"myjfrog-ip-allowlist\", MyjfrogIpAllowlistArgs.builder()\n            .serverName(\"my-jpd-server-name\")\n            .ips(            \n                \"1.1.1.7/1\",\n                \"2.2.2.7/1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myjfrog-ip-allowlist:\n    type: platform:MyjfrogIpAllowlist\n    properties:\n      serverName: my-jpd-server-name\n      ips:\n        - 1.1.1.7/1\n        - 2.2.2.7/1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/myjfrogIpAllowlist:MyjfrogIpAllowlist myjfrog-ip-allowlist jpd-server-name\n```\n\n","properties":{"ips":{"type":"array","items":{"type":"string"},"description":"List of IPs for the JPD allowlist\n"},"serverName":{"type":"string","description":"Name of the server. If your JFrog URL is `myserver.jfrog.io`, the \u003cspan pulumi-lang-nodejs=\"`serverName`\" pulumi-lang-dotnet=\"`ServerName`\" pulumi-lang-go=\"`serverName`\" pulumi-lang-python=\"`server_name`\" pulumi-lang-yaml=\"`serverName`\" pulumi-lang-java=\"`serverName`\"\u003e`server_name`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`myserver`\" pulumi-lang-dotnet=\"`Myserver`\" pulumi-lang-go=\"`myserver`\" pulumi-lang-python=\"`myserver`\" pulumi-lang-yaml=\"`myserver`\" pulumi-lang-java=\"`myserver`\"\u003e`myserver`\u003c/span\u003e.\n"}},"type":"object","required":["ips","serverName"],"inputProperties":{"ips":{"type":"array","items":{"type":"string"},"description":"List of IPs for the JPD allowlist\n"},"serverName":{"type":"string","description":"Name of the server. If your JFrog URL is `myserver.jfrog.io`, the \u003cspan pulumi-lang-nodejs=\"`serverName`\" pulumi-lang-dotnet=\"`ServerName`\" pulumi-lang-go=\"`serverName`\" pulumi-lang-python=\"`server_name`\" pulumi-lang-yaml=\"`serverName`\" pulumi-lang-java=\"`serverName`\"\u003e`server_name`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`myserver`\" pulumi-lang-dotnet=\"`Myserver`\" pulumi-lang-go=\"`myserver`\" pulumi-lang-python=\"`myserver`\" pulumi-lang-yaml=\"`myserver`\" pulumi-lang-java=\"`myserver`\"\u003e`myserver`\u003c/span\u003e.\n"}},"requiredInputs":["ips","serverName"],"stateInputs":{"description":"Input properties used for looking up and filtering MyjfrogIpAllowlist resources.\n","properties":{"ips":{"type":"array","items":{"type":"string"},"description":"List of IPs for the JPD allowlist\n"},"serverName":{"type":"string","description":"Name of the server. If your JFrog URL is `myserver.jfrog.io`, the \u003cspan pulumi-lang-nodejs=\"`serverName`\" pulumi-lang-dotnet=\"`ServerName`\" pulumi-lang-go=\"`serverName`\" pulumi-lang-python=\"`server_name`\" pulumi-lang-yaml=\"`serverName`\" pulumi-lang-java=\"`serverName`\"\u003e`server_name`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`myserver`\" pulumi-lang-dotnet=\"`Myserver`\" pulumi-lang-go=\"`myserver`\" pulumi-lang-python=\"`myserver`\" pulumi-lang-yaml=\"`myserver`\" pulumi-lang-java=\"`myserver`\"\u003e`myserver`\u003c/span\u003e.\n"}},"type":"object"}},"platform:index/oidcConfiguration:OidcConfiguration":{"description":"Manage OIDC configuration in JFrog platform. See the JFrog [OIDC configuration documentation](https://jfrog.com/help/r/jfrog-platform-administration-documentation/configure-an-oidc-integration) for more information.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_github_oidc_configuration = new platform.OidcConfiguration(\"my-github-oidc-configuration\", {\n    name: \"my-github-oidc-configuration\",\n    description: \"My GitHub OIDC configuration\",\n    issuerUrl: \"https://token.actions.githubusercontent.com\",\n    providerType: \"GitHub\",\n    organization: \"jfrog\",\n    audience: \"jfrog-github\",\n});\nconst my_github_oidc_enterprise_configuration = new platform.OidcConfiguration(\"my-github-oidc-enterprise-configuration\", {\n    name: \"my-github-oidc-enterprise-configuration\",\n    description: \"My GitHub OIDC enterprise configuration\",\n    issuerUrl: \"https://token.actions.githubusercontent.com/jfrog\",\n    providerType: \"GitHubEnterprise\",\n    organization: \"jfrog\",\n    audience: \"jfrog-github\",\n});\nconst my_generic_oidc_configuration = new platform.OidcConfiguration(\"my-generic-oidc-configuration\", {\n    name: \"my-generic-oidc-configuration\",\n    description: \"My generic OIDC configuration\",\n    issuerUrl: \"https://tempurl.org\",\n    providerType: \"generic\",\n    audience: \"jfrog-generic\",\n});\nconst my_azure_oidc_configuration = new platform.OidcConfiguration(\"my-azure-oidc-configuration\", {\n    name: \"{{ .name }}\",\n    description: \"My Azure OIDC configuration\",\n    issuerUrl: \"https://sts.windows.net/your-tenant-id/\",\n    providerType: \"Azure\",\n    audience: \"azure-audience\",\n    useDefaultProxy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_github_oidc_configuration = platform.OidcConfiguration(\"my-github-oidc-configuration\",\n    name=\"my-github-oidc-configuration\",\n    description=\"My GitHub OIDC configuration\",\n    issuer_url=\"https://token.actions.githubusercontent.com\",\n    provider_type=\"GitHub\",\n    organization=\"jfrog\",\n    audience=\"jfrog-github\")\nmy_github_oidc_enterprise_configuration = platform.OidcConfiguration(\"my-github-oidc-enterprise-configuration\",\n    name=\"my-github-oidc-enterprise-configuration\",\n    description=\"My GitHub OIDC enterprise configuration\",\n    issuer_url=\"https://token.actions.githubusercontent.com/jfrog\",\n    provider_type=\"GitHubEnterprise\",\n    organization=\"jfrog\",\n    audience=\"jfrog-github\")\nmy_generic_oidc_configuration = platform.OidcConfiguration(\"my-generic-oidc-configuration\",\n    name=\"my-generic-oidc-configuration\",\n    description=\"My generic OIDC configuration\",\n    issuer_url=\"https://tempurl.org\",\n    provider_type=\"generic\",\n    audience=\"jfrog-generic\")\nmy_azure_oidc_configuration = platform.OidcConfiguration(\"my-azure-oidc-configuration\",\n    name=\"{{ .name }}\",\n    description=\"My Azure OIDC configuration\",\n    issuer_url=\"https://sts.windows.net/your-tenant-id/\",\n    provider_type=\"Azure\",\n    audience=\"azure-audience\",\n    use_default_proxy=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_github_oidc_configuration = new Platform.OidcConfiguration(\"my-github-oidc-configuration\", new()\n    {\n        Name = \"my-github-oidc-configuration\",\n        Description = \"My GitHub OIDC configuration\",\n        IssuerUrl = \"https://token.actions.githubusercontent.com\",\n        ProviderType = \"GitHub\",\n        Organization = \"jfrog\",\n        Audience = \"jfrog-github\",\n    });\n\n    var my_github_oidc_enterprise_configuration = new Platform.OidcConfiguration(\"my-github-oidc-enterprise-configuration\", new()\n    {\n        Name = \"my-github-oidc-enterprise-configuration\",\n        Description = \"My GitHub OIDC enterprise configuration\",\n        IssuerUrl = \"https://token.actions.githubusercontent.com/jfrog\",\n        ProviderType = \"GitHubEnterprise\",\n        Organization = \"jfrog\",\n        Audience = \"jfrog-github\",\n    });\n\n    var my_generic_oidc_configuration = new Platform.OidcConfiguration(\"my-generic-oidc-configuration\", new()\n    {\n        Name = \"my-generic-oidc-configuration\",\n        Description = \"My generic OIDC configuration\",\n        IssuerUrl = \"https://tempurl.org\",\n        ProviderType = \"generic\",\n        Audience = \"jfrog-generic\",\n    });\n\n    var my_azure_oidc_configuration = new Platform.OidcConfiguration(\"my-azure-oidc-configuration\", new()\n    {\n        Name = \"{{ .name }}\",\n        Description = \"My Azure OIDC configuration\",\n        IssuerUrl = \"https://sts.windows.net/your-tenant-id/\",\n        ProviderType = \"Azure\",\n        Audience = \"azure-audience\",\n        UseDefaultProxy = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewOidcConfiguration(ctx, \"my-github-oidc-configuration\", \u0026platform.OidcConfigurationArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-configuration\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC configuration\"),\n\t\t\tIssuerUrl:    pulumi.String(\"https://token.actions.githubusercontent.com\"),\n\t\t\tProviderType: pulumi.String(\"GitHub\"),\n\t\t\tOrganization: pulumi.String(\"jfrog\"),\n\t\t\tAudience:     pulumi.String(\"jfrog-github\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = platform.NewOidcConfiguration(ctx, \"my-github-oidc-enterprise-configuration\", \u0026platform.OidcConfigurationArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-enterprise-configuration\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC enterprise configuration\"),\n\t\t\tIssuerUrl:    pulumi.String(\"https://token.actions.githubusercontent.com/jfrog\"),\n\t\t\tProviderType: pulumi.String(\"GitHubEnterprise\"),\n\t\t\tOrganization: pulumi.String(\"jfrog\"),\n\t\t\tAudience:     pulumi.String(\"jfrog-github\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = platform.NewOidcConfiguration(ctx, \"my-generic-oidc-configuration\", \u0026platform.OidcConfigurationArgs{\n\t\t\tName:         pulumi.String(\"my-generic-oidc-configuration\"),\n\t\t\tDescription:  pulumi.String(\"My generic OIDC configuration\"),\n\t\t\tIssuerUrl:    pulumi.String(\"https://tempurl.org\"),\n\t\t\tProviderType: pulumi.String(\"generic\"),\n\t\t\tAudience:     pulumi.String(\"jfrog-generic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = platform.NewOidcConfiguration(ctx, \"my-azure-oidc-configuration\", \u0026platform.OidcConfigurationArgs{\n\t\t\tName:            pulumi.String(\"{{ .name }}\"),\n\t\t\tDescription:     pulumi.String(\"My Azure OIDC configuration\"),\n\t\t\tIssuerUrl:       pulumi.String(\"https://sts.windows.net/your-tenant-id/\"),\n\t\t\tProviderType:    pulumi.String(\"Azure\"),\n\t\t\tAudience:        pulumi.String(\"azure-audience\"),\n\t\t\tUseDefaultProxy: 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.platform.OidcConfiguration;\nimport com.pulumi.platform.OidcConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_github_oidc_configuration = new OidcConfiguration(\"my-github-oidc-configuration\", OidcConfigurationArgs.builder()\n            .name(\"my-github-oidc-configuration\")\n            .description(\"My GitHub OIDC configuration\")\n            .issuerUrl(\"https://token.actions.githubusercontent.com\")\n            .providerType(\"GitHub\")\n            .organization(\"jfrog\")\n            .audience(\"jfrog-github\")\n            .build());\n\n        var my_github_oidc_enterprise_configuration = new OidcConfiguration(\"my-github-oidc-enterprise-configuration\", OidcConfigurationArgs.builder()\n            .name(\"my-github-oidc-enterprise-configuration\")\n            .description(\"My GitHub OIDC enterprise configuration\")\n            .issuerUrl(\"https://token.actions.githubusercontent.com/jfrog\")\n            .providerType(\"GitHubEnterprise\")\n            .organization(\"jfrog\")\n            .audience(\"jfrog-github\")\n            .build());\n\n        var my_generic_oidc_configuration = new OidcConfiguration(\"my-generic-oidc-configuration\", OidcConfigurationArgs.builder()\n            .name(\"my-generic-oidc-configuration\")\n            .description(\"My generic OIDC configuration\")\n            .issuerUrl(\"https://tempurl.org\")\n            .providerType(\"generic\")\n            .audience(\"jfrog-generic\")\n            .build());\n\n        var my_azure_oidc_configuration = new OidcConfiguration(\"my-azure-oidc-configuration\", OidcConfigurationArgs.builder()\n            .name(\"{{ .name }}\")\n            .description(\"My Azure OIDC configuration\")\n            .issuerUrl(\"https://sts.windows.net/your-tenant-id/\")\n            .providerType(\"Azure\")\n            .audience(\"azure-audience\")\n            .useDefaultProxy(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-github-oidc-configuration:\n    type: platform:OidcConfiguration\n    properties:\n      name: my-github-oidc-configuration\n      description: My GitHub OIDC configuration\n      issuerUrl: https://token.actions.githubusercontent.com\n      providerType: GitHub\n      organization: jfrog\n      audience: jfrog-github\n  my-github-oidc-enterprise-configuration:\n    type: platform:OidcConfiguration\n    properties:\n      name: my-github-oidc-enterprise-configuration\n      description: My GitHub OIDC enterprise configuration\n      issuerUrl: https://token.actions.githubusercontent.com/jfrog\n      providerType: GitHubEnterprise\n      organization: jfrog\n      audience: jfrog-github\n  my-generic-oidc-configuration:\n    type: platform:OidcConfiguration\n    properties:\n      name: my-generic-oidc-configuration\n      description: My generic OIDC configuration\n      issuerUrl: https://tempurl.org\n      providerType: generic\n      audience: jfrog-generic\n  my-azure-oidc-configuration:\n    type: platform:OidcConfiguration\n    properties:\n      name: '{{ .name }}'\n      description: My Azure OIDC configuration\n      issuerUrl: https://sts.windows.net/your-tenant-id/\n      providerType: Azure\n      audience: azure-audience\n      useDefaultProxy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/oidcConfiguration:OidcConfiguration my-oidc-configuration my-oidc-configuration\n```\n\n```sh\n$ pulumi import platform:index/oidcConfiguration:OidcConfiguration my-oidc-configuration my-oidc-configuration:myproj\n```\n\n","properties":{"audience":{"type":"string","description":"Informational field that you can use to include details of the audience that uses the OIDC configuration.\n"},"description":{"type":"string","description":"Description of the OIDC provider\n"},"enablePermissiveConfiguration":{"type":"boolean","description":"Only settable when \u003cspan pulumi-lang-nodejs=\"`providerType`\" pulumi-lang-dotnet=\"`ProviderType`\" pulumi-lang-go=\"`providerType`\" pulumi-lang-python=\"`provider_type`\" pulumi-lang-yaml=\"`providerType`\" pulumi-lang-java=\"`providerType`\"\u003e`provider_type`\u003c/span\u003e is GitHub or GitHubEnterprise. When set, Allows authentication without any restrictions. For security best practices, it is recommended to add restrictions to limit access and enforce stricter controls. Use with caution, as this may grant broader access.\n"},"issuerUrl":{"type":"string","description":"OIDC issuer URL. For GitHub actions, the URL must start with https://token.actions.githubusercontent.com.\n"},"name":{"type":"string","description":"Name of the OIDC provider\n"},"organization":{"type":"string","description":"This field is mandatory, when \u003cspan pulumi-lang-nodejs=\"`providerType`\" pulumi-lang-dotnet=\"`ProviderType`\" pulumi-lang-go=\"`providerType`\" pulumi-lang-python=\"`provider_type`\" pulumi-lang-yaml=\"`providerType`\" pulumi-lang-java=\"`providerType`\"\u003e`provider_type`\u003c/span\u003e is GitHub or GitHubEnterprise. Informational field that you can use to include details of the organization that uses the OIDC configuration.\n"},"projectKey":{"type":"string","description":"If set, this Identity Configuration will be available in the scope of the given project (editable by platform admin and project admin). If not set, this Identity Configuration will be global and only editable by platform admin. Once set, the projectKey cannot be changed.\n"},"providerType":{"type":"string","description":"Type of OIDC provider. Can be \u003cspan pulumi-lang-nodejs=\"`generic`\" pulumi-lang-dotnet=\"`Generic`\" pulumi-lang-go=\"`generic`\" pulumi-lang-python=\"`generic`\" pulumi-lang-yaml=\"`generic`\" pulumi-lang-java=\"`generic`\"\u003e`generic`\u003c/span\u003e, `GitHub`, `GitHubEnterprise` or `Azure`.\n"},"useDefaultProxy":{"type":"boolean","description":"This enables and disables the default proxy for OIDC integration. If enabled, the OIDC mechanism will utilize the default proxy for all OIDC requests. If disabled, the OIDC mechanism does not use any proxy for all OIDC requests. Before enabling this functionality you must configure the default proxy.\n"}},"type":"object","required":["issuerUrl","name","providerType","useDefaultProxy"],"inputProperties":{"audience":{"type":"string","description":"Informational field that you can use to include details of the audience that uses the OIDC configuration.\n"},"description":{"type":"string","description":"Description of the OIDC provider\n"},"enablePermissiveConfiguration":{"type":"boolean","description":"Only settable when \u003cspan pulumi-lang-nodejs=\"`providerType`\" pulumi-lang-dotnet=\"`ProviderType`\" pulumi-lang-go=\"`providerType`\" pulumi-lang-python=\"`provider_type`\" pulumi-lang-yaml=\"`providerType`\" pulumi-lang-java=\"`providerType`\"\u003e`provider_type`\u003c/span\u003e is GitHub or GitHubEnterprise. When set, Allows authentication without any restrictions. For security best practices, it is recommended to add restrictions to limit access and enforce stricter controls. Use with caution, as this may grant broader access.\n"},"issuerUrl":{"type":"string","description":"OIDC issuer URL. For GitHub actions, the URL must start with https://token.actions.githubusercontent.com.\n"},"name":{"type":"string","description":"Name of the OIDC provider\n"},"organization":{"type":"string","description":"This field is mandatory, when \u003cspan pulumi-lang-nodejs=\"`providerType`\" pulumi-lang-dotnet=\"`ProviderType`\" pulumi-lang-go=\"`providerType`\" pulumi-lang-python=\"`provider_type`\" pulumi-lang-yaml=\"`providerType`\" pulumi-lang-java=\"`providerType`\"\u003e`provider_type`\u003c/span\u003e is GitHub or GitHubEnterprise. Informational field that you can use to include details of the organization that uses the OIDC configuration.\n"},"projectKey":{"type":"string","description":"If set, this Identity Configuration will be available in the scope of the given project (editable by platform admin and project admin). If not set, this Identity Configuration will be global and only editable by platform admin. Once set, the projectKey cannot be changed.\n"},"providerType":{"type":"string","description":"Type of OIDC provider. Can be \u003cspan pulumi-lang-nodejs=\"`generic`\" pulumi-lang-dotnet=\"`Generic`\" pulumi-lang-go=\"`generic`\" pulumi-lang-python=\"`generic`\" pulumi-lang-yaml=\"`generic`\" pulumi-lang-java=\"`generic`\"\u003e`generic`\u003c/span\u003e, `GitHub`, `GitHubEnterprise` or `Azure`.\n"},"useDefaultProxy":{"type":"boolean","description":"This enables and disables the default proxy for OIDC integration. If enabled, the OIDC mechanism will utilize the default proxy for all OIDC requests. If disabled, the OIDC mechanism does not use any proxy for all OIDC requests. Before enabling this functionality you must configure the default proxy.\n"}},"requiredInputs":["issuerUrl","providerType"],"stateInputs":{"description":"Input properties used for looking up and filtering OidcConfiguration resources.\n","properties":{"audience":{"type":"string","description":"Informational field that you can use to include details of the audience that uses the OIDC configuration.\n"},"description":{"type":"string","description":"Description of the OIDC provider\n"},"enablePermissiveConfiguration":{"type":"boolean","description":"Only settable when \u003cspan pulumi-lang-nodejs=\"`providerType`\" pulumi-lang-dotnet=\"`ProviderType`\" pulumi-lang-go=\"`providerType`\" pulumi-lang-python=\"`provider_type`\" pulumi-lang-yaml=\"`providerType`\" pulumi-lang-java=\"`providerType`\"\u003e`provider_type`\u003c/span\u003e is GitHub or GitHubEnterprise. When set, Allows authentication without any restrictions. For security best practices, it is recommended to add restrictions to limit access and enforce stricter controls. Use with caution, as this may grant broader access.\n"},"issuerUrl":{"type":"string","description":"OIDC issuer URL. For GitHub actions, the URL must start with https://token.actions.githubusercontent.com.\n"},"name":{"type":"string","description":"Name of the OIDC provider\n"},"organization":{"type":"string","description":"This field is mandatory, when \u003cspan pulumi-lang-nodejs=\"`providerType`\" pulumi-lang-dotnet=\"`ProviderType`\" pulumi-lang-go=\"`providerType`\" pulumi-lang-python=\"`provider_type`\" pulumi-lang-yaml=\"`providerType`\" pulumi-lang-java=\"`providerType`\"\u003e`provider_type`\u003c/span\u003e is GitHub or GitHubEnterprise. Informational field that you can use to include details of the organization that uses the OIDC configuration.\n"},"projectKey":{"type":"string","description":"If set, this Identity Configuration will be available in the scope of the given project (editable by platform admin and project admin). If not set, this Identity Configuration will be global and only editable by platform admin. Once set, the projectKey cannot be changed.\n"},"providerType":{"type":"string","description":"Type of OIDC provider. Can be \u003cspan pulumi-lang-nodejs=\"`generic`\" pulumi-lang-dotnet=\"`Generic`\" pulumi-lang-go=\"`generic`\" pulumi-lang-python=\"`generic`\" pulumi-lang-yaml=\"`generic`\" pulumi-lang-java=\"`generic`\"\u003e`generic`\u003c/span\u003e, `GitHub`, `GitHubEnterprise` or `Azure`.\n"},"useDefaultProxy":{"type":"boolean","description":"This enables and disables the default proxy for OIDC integration. If enabled, the OIDC mechanism will utilize the default proxy for all OIDC requests. If disabled, the OIDC mechanism does not use any proxy for all OIDC requests. Before enabling this functionality you must configure the default proxy.\n"}},"type":"object"}},"platform:index/oidcIdentityMapping:OidcIdentityMapping":{"description":"Manage OIDC identity mapping for an OIDC configuration in JFrog platform. See the JFrog [OIDC identity mappings documentation](https://jfrog.com/help/r/jfrog-platform-administration-documentation/configure-identity-mappings) for more information.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_github_oidc_user_identity_mapping = new platform.OidcIdentityMapping(\"my-github-oidc-user-identity-mapping\", {\n    name: \"my-github-oidc-user-identity-mapping\",\n    description: \"My GitHub OIDC user identity mapping\",\n    providerName: \"my-github-oidc-configuration\",\n    priority: 1,\n    claimsJson: JSON.stringify({\n        sub: \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        workflow_ref: \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    tokenSpec: {\n        username: \"my-user\",\n        scope: \"applied-permissions/user\",\n        audience: \"*@*\",\n        expiresIn: 7200,\n    },\n});\nconst my_github_oidc_group_identity_mapping = new platform.OidcIdentityMapping(\"my-github-oidc-group-identity-mapping\", {\n    name: \"my-github-oidc-group-identity-mapping\",\n    description: \"My GitHub OIDC group identity mapping\",\n    providerName: \"my-github-oidc-configuration\",\n    priority: 1,\n    claimsJson: JSON.stringify({\n        sub: \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        workflow_ref: \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    tokenSpec: {\n        scope: \"applied-permissions/groups:\\\"readers\\\",\\\"my-group\\\"\",\n        audience: \"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\",\n        expiresIn: 7200,\n    },\n});\nconst my_github_oidc_project_roles_identity_mapping = new platform.OidcIdentityMapping(\"my-github-oidc-project-roles-identity-mapping\", {\n    name: \"my-github-oidc-project-role-identity-mapping\",\n    description: \"My GitHub OIDC Project role identity mapping\",\n    providerName: \"my-github-oidc-configuration\",\n    priority: 1,\n    claimsJson: JSON.stringify({\n        sub: \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        workflow_ref: \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    tokenSpec: {\n        scope: \"applied-permissions/roles:my-project:\\\"Project Admin\\\",\\\"Developer\\\"\",\n        audience: \"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\",\n        expiresIn: 7200,\n    },\n    projectKey: \"my-project\",\n});\nconst my_github_oidc_username_pattern_identity_mapping = new platform.OidcIdentityMapping(\"my-github-oidc-username-pattern-identity-mapping\", {\n    name: \"my-github-oidc-username-pattern-identity-mapping\",\n    description: \"My GitHub OIDC username pattern identity mapping\",\n    providerName: \"my-github-oidc-configuration\",\n    priority: 1,\n    claimsJson: JSON.stringify({\n        sub: \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        workflow_ref: \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    tokenSpec: {\n        usernamePattern: \"{{user}}\",\n        audience: \"*@*\",\n        expiresIn: 7200,\n    },\n});\nconst my_github_oidc_groups_pattern_identity_mapping = new platform.OidcIdentityMapping(\"my-github-oidc-groups-pattern-identity-mapping\", {\n    name: \"my-github-oidc-groups-pattern-identity-mapping\",\n    description: \"My GitHub OIDC groups pattern identity mapping\",\n    providerName: \"my-github-oidc-configuration\",\n    priority: 1,\n    claimsJson: JSON.stringify({\n        sub: \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        workflow_ref: \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    tokenSpec: {\n        groupsPattern: \"{{group}}\",\n        audience: \"*@*\",\n        expiresIn: 7200,\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_platform as platform\n\nmy_github_oidc_user_identity_mapping = platform.OidcIdentityMapping(\"my-github-oidc-user-identity-mapping\",\n    name=\"my-github-oidc-user-identity-mapping\",\n    description=\"My GitHub OIDC user identity mapping\",\n    provider_name=\"my-github-oidc-configuration\",\n    priority=1,\n    claims_json=json.dumps({\n        \"sub\": \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        \"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    token_spec={\n        \"username\": \"my-user\",\n        \"scope\": \"applied-permissions/user\",\n        \"audience\": \"*@*\",\n        \"expires_in\": 7200,\n    })\nmy_github_oidc_group_identity_mapping = platform.OidcIdentityMapping(\"my-github-oidc-group-identity-mapping\",\n    name=\"my-github-oidc-group-identity-mapping\",\n    description=\"My GitHub OIDC group identity mapping\",\n    provider_name=\"my-github-oidc-configuration\",\n    priority=1,\n    claims_json=json.dumps({\n        \"sub\": \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        \"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    token_spec={\n        \"scope\": \"applied-permissions/groups:\\\"readers\\\",\\\"my-group\\\"\",\n        \"audience\": \"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\",\n        \"expires_in\": 7200,\n    })\nmy_github_oidc_project_roles_identity_mapping = platform.OidcIdentityMapping(\"my-github-oidc-project-roles-identity-mapping\",\n    name=\"my-github-oidc-project-role-identity-mapping\",\n    description=\"My GitHub OIDC Project role identity mapping\",\n    provider_name=\"my-github-oidc-configuration\",\n    priority=1,\n    claims_json=json.dumps({\n        \"sub\": \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        \"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    token_spec={\n        \"scope\": \"applied-permissions/roles:my-project:\\\"Project Admin\\\",\\\"Developer\\\"\",\n        \"audience\": \"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\",\n        \"expires_in\": 7200,\n    },\n    project_key=\"my-project\")\nmy_github_oidc_username_pattern_identity_mapping = platform.OidcIdentityMapping(\"my-github-oidc-username-pattern-identity-mapping\",\n    name=\"my-github-oidc-username-pattern-identity-mapping\",\n    description=\"My GitHub OIDC username pattern identity mapping\",\n    provider_name=\"my-github-oidc-configuration\",\n    priority=1,\n    claims_json=json.dumps({\n        \"sub\": \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        \"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    token_spec={\n        \"username_pattern\": \"{{user}}\",\n        \"audience\": \"*@*\",\n        \"expires_in\": 7200,\n    })\nmy_github_oidc_groups_pattern_identity_mapping = platform.OidcIdentityMapping(\"my-github-oidc-groups-pattern-identity-mapping\",\n    name=\"my-github-oidc-groups-pattern-identity-mapping\",\n    description=\"My GitHub OIDC groups pattern identity mapping\",\n    provider_name=\"my-github-oidc-configuration\",\n    priority=1,\n    claims_json=json.dumps({\n        \"sub\": \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n        \"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n    }),\n    token_spec={\n        \"groups_pattern\": \"{{group}}\",\n        \"audience\": \"*@*\",\n        \"expires_in\": 7200,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_github_oidc_user_identity_mapping = new Platform.OidcIdentityMapping(\"my-github-oidc-user-identity-mapping\", new()\n    {\n        Name = \"my-github-oidc-user-identity-mapping\",\n        Description = \"My GitHub OIDC user identity mapping\",\n        ProviderName = \"my-github-oidc-configuration\",\n        Priority = 1,\n        ClaimsJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sub\"] = \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n            [\"workflow_ref\"] = \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n        }),\n        TokenSpec = new Platform.Inputs.OidcIdentityMappingTokenSpecArgs\n        {\n            Username = \"my-user\",\n            Scope = \"applied-permissions/user\",\n            Audience = \"*@*\",\n            ExpiresIn = 7200,\n        },\n    });\n\n    var my_github_oidc_group_identity_mapping = new Platform.OidcIdentityMapping(\"my-github-oidc-group-identity-mapping\", new()\n    {\n        Name = \"my-github-oidc-group-identity-mapping\",\n        Description = \"My GitHub OIDC group identity mapping\",\n        ProviderName = \"my-github-oidc-configuration\",\n        Priority = 1,\n        ClaimsJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sub\"] = \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n            [\"workflow_ref\"] = \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n        }),\n        TokenSpec = new Platform.Inputs.OidcIdentityMappingTokenSpecArgs\n        {\n            Scope = \"applied-permissions/groups:\\\"readers\\\",\\\"my-group\\\"\",\n            Audience = \"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\",\n            ExpiresIn = 7200,\n        },\n    });\n\n    var my_github_oidc_project_roles_identity_mapping = new Platform.OidcIdentityMapping(\"my-github-oidc-project-roles-identity-mapping\", new()\n    {\n        Name = \"my-github-oidc-project-role-identity-mapping\",\n        Description = \"My GitHub OIDC Project role identity mapping\",\n        ProviderName = \"my-github-oidc-configuration\",\n        Priority = 1,\n        ClaimsJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sub\"] = \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n            [\"workflow_ref\"] = \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n        }),\n        TokenSpec = new Platform.Inputs.OidcIdentityMappingTokenSpecArgs\n        {\n            Scope = \"applied-permissions/roles:my-project:\\\"Project Admin\\\",\\\"Developer\\\"\",\n            Audience = \"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\",\n            ExpiresIn = 7200,\n        },\n        ProjectKey = \"my-project\",\n    });\n\n    var my_github_oidc_username_pattern_identity_mapping = new Platform.OidcIdentityMapping(\"my-github-oidc-username-pattern-identity-mapping\", new()\n    {\n        Name = \"my-github-oidc-username-pattern-identity-mapping\",\n        Description = \"My GitHub OIDC username pattern identity mapping\",\n        ProviderName = \"my-github-oidc-configuration\",\n        Priority = 1,\n        ClaimsJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sub\"] = \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n            [\"workflow_ref\"] = \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n        }),\n        TokenSpec = new Platform.Inputs.OidcIdentityMappingTokenSpecArgs\n        {\n            UsernamePattern = \"{{user}}\",\n            Audience = \"*@*\",\n            ExpiresIn = 7200,\n        },\n    });\n\n    var my_github_oidc_groups_pattern_identity_mapping = new Platform.OidcIdentityMapping(\"my-github-oidc-groups-pattern-identity-mapping\", new()\n    {\n        Name = \"my-github-oidc-groups-pattern-identity-mapping\",\n        Description = \"My GitHub OIDC groups pattern identity mapping\",\n        ProviderName = \"my-github-oidc-configuration\",\n        Priority = 1,\n        ClaimsJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sub\"] = \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n            [\"workflow_ref\"] = \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n        }),\n        TokenSpec = new Platform.Inputs.OidcIdentityMappingTokenSpecArgs\n        {\n            GroupsPattern = \"{{group}}\",\n            Audience = \"*@*\",\n            ExpiresIn = 7200,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sub\":          \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n\t\t\t\"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = platform.NewOidcIdentityMapping(ctx, \"my-github-oidc-user-identity-mapping\", \u0026platform.OidcIdentityMappingArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-user-identity-mapping\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC user identity mapping\"),\n\t\t\tProviderName: pulumi.String(\"my-github-oidc-configuration\"),\n\t\t\tPriority:     pulumi.Float64(1),\n\t\t\tClaimsJson:   pulumi.String(json0),\n\t\t\tTokenSpec: \u0026platform.OidcIdentityMappingTokenSpecArgs{\n\t\t\t\tUsername:  pulumi.String(\"my-user\"),\n\t\t\t\tScope:     pulumi.String(\"applied-permissions/user\"),\n\t\t\t\tAudience:  pulumi.String(\"*@*\"),\n\t\t\t\tExpiresIn: pulumi.Float64(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sub\":          \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n\t\t\t\"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = platform.NewOidcIdentityMapping(ctx, \"my-github-oidc-group-identity-mapping\", \u0026platform.OidcIdentityMappingArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-group-identity-mapping\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC group identity mapping\"),\n\t\t\tProviderName: pulumi.String(\"my-github-oidc-configuration\"),\n\t\t\tPriority:     pulumi.Float64(1),\n\t\t\tClaimsJson:   pulumi.String(json1),\n\t\t\tTokenSpec: \u0026platform.OidcIdentityMappingTokenSpecArgs{\n\t\t\t\tScope:     pulumi.String(\"applied-permissions/groups:\\\"readers\\\",\\\"my-group\\\"\"),\n\t\t\t\tAudience:  pulumi.String(\"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\"),\n\t\t\t\tExpiresIn: pulumi.Float64(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sub\":          \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n\t\t\t\"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\t_, err = platform.NewOidcIdentityMapping(ctx, \"my-github-oidc-project-roles-identity-mapping\", \u0026platform.OidcIdentityMappingArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-project-role-identity-mapping\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC Project role identity mapping\"),\n\t\t\tProviderName: pulumi.String(\"my-github-oidc-configuration\"),\n\t\t\tPriority:     pulumi.Float64(1),\n\t\t\tClaimsJson:   pulumi.String(json2),\n\t\t\tTokenSpec: \u0026platform.OidcIdentityMappingTokenSpecArgs{\n\t\t\t\tScope:     pulumi.String(\"applied-permissions/roles:my-project:\\\"Project Admin\\\",\\\"Developer\\\"\"),\n\t\t\t\tAudience:  pulumi.String(\"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\"),\n\t\t\t\tExpiresIn: pulumi.Float64(7200),\n\t\t\t},\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON3, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sub\":          \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n\t\t\t\"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson3 := string(tmpJSON3)\n\t\t_, err = platform.NewOidcIdentityMapping(ctx, \"my-github-oidc-username-pattern-identity-mapping\", \u0026platform.OidcIdentityMappingArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-username-pattern-identity-mapping\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC username pattern identity mapping\"),\n\t\t\tProviderName: pulumi.String(\"my-github-oidc-configuration\"),\n\t\t\tPriority:     pulumi.Float64(1),\n\t\t\tClaimsJson:   pulumi.String(json3),\n\t\t\tTokenSpec: \u0026platform.OidcIdentityMappingTokenSpecArgs{\n\t\t\t\tUsernamePattern: pulumi.String(\"{{user}}\"),\n\t\t\t\tAudience:        pulumi.String(\"*@*\"),\n\t\t\t\tExpiresIn:       pulumi.Float64(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON4, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sub\":          \"repo:humpty/access-oidc-poc:ref:refs/heads/main\",\n\t\t\t\"workflow_ref\": \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson4 := string(tmpJSON4)\n\t\t_, err = platform.NewOidcIdentityMapping(ctx, \"my-github-oidc-groups-pattern-identity-mapping\", \u0026platform.OidcIdentityMappingArgs{\n\t\t\tName:         pulumi.String(\"my-github-oidc-groups-pattern-identity-mapping\"),\n\t\t\tDescription:  pulumi.String(\"My GitHub OIDC groups pattern identity mapping\"),\n\t\t\tProviderName: pulumi.String(\"my-github-oidc-configuration\"),\n\t\t\tPriority:     pulumi.Float64(1),\n\t\t\tClaimsJson:   pulumi.String(json4),\n\t\t\tTokenSpec: \u0026platform.OidcIdentityMappingTokenSpecArgs{\n\t\t\t\tGroupsPattern: pulumi.String(\"{{group}}\"),\n\t\t\t\tAudience:      pulumi.String(\"*@*\"),\n\t\t\t\tExpiresIn:     pulumi.Float64(7200),\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.platform.OidcIdentityMapping;\nimport com.pulumi.platform.OidcIdentityMappingArgs;\nimport com.pulumi.platform.inputs.OidcIdentityMappingTokenSpecArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_github_oidc_user_identity_mapping = new OidcIdentityMapping(\"my-github-oidc-user-identity-mapping\", OidcIdentityMappingArgs.builder()\n            .name(\"my-github-oidc-user-identity-mapping\")\n            .description(\"My GitHub OIDC user identity mapping\")\n            .providerName(\"my-github-oidc-configuration\")\n            .priority(1.0)\n            .claimsJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sub\", \"repo:humpty/access-oidc-poc:ref:refs/heads/main\"),\n                    jsonProperty(\"workflow_ref\", \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\")\n                )))\n            .tokenSpec(OidcIdentityMappingTokenSpecArgs.builder()\n                .username(\"my-user\")\n                .scope(\"applied-permissions/user\")\n                .audience(\"*@*\")\n                .expiresIn(7200.0)\n                .build())\n            .build());\n\n        var my_github_oidc_group_identity_mapping = new OidcIdentityMapping(\"my-github-oidc-group-identity-mapping\", OidcIdentityMappingArgs.builder()\n            .name(\"my-github-oidc-group-identity-mapping\")\n            .description(\"My GitHub OIDC group identity mapping\")\n            .providerName(\"my-github-oidc-configuration\")\n            .priority(1.0)\n            .claimsJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sub\", \"repo:humpty/access-oidc-poc:ref:refs/heads/main\"),\n                    jsonProperty(\"workflow_ref\", \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\")\n                )))\n            .tokenSpec(OidcIdentityMappingTokenSpecArgs.builder()\n                .scope(\"applied-permissions/groups:\\\"readers\\\",\\\"my-group\\\"\")\n                .audience(\"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\")\n                .expiresIn(7200.0)\n                .build())\n            .build());\n\n        var my_github_oidc_project_roles_identity_mapping = new OidcIdentityMapping(\"my-github-oidc-project-roles-identity-mapping\", OidcIdentityMappingArgs.builder()\n            .name(\"my-github-oidc-project-role-identity-mapping\")\n            .description(\"My GitHub OIDC Project role identity mapping\")\n            .providerName(\"my-github-oidc-configuration\")\n            .priority(1.0)\n            .claimsJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sub\", \"repo:humpty/access-oidc-poc:ref:refs/heads/main\"),\n                    jsonProperty(\"workflow_ref\", \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\")\n                )))\n            .tokenSpec(OidcIdentityMappingTokenSpecArgs.builder()\n                .scope(\"applied-permissions/roles:my-project:\\\"Project Admin\\\",\\\"Developer\\\"\")\n                .audience(\"jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\")\n                .expiresIn(7200.0)\n                .build())\n            .projectKey(\"my-project\")\n            .build());\n\n        var my_github_oidc_username_pattern_identity_mapping = new OidcIdentityMapping(\"my-github-oidc-username-pattern-identity-mapping\", OidcIdentityMappingArgs.builder()\n            .name(\"my-github-oidc-username-pattern-identity-mapping\")\n            .description(\"My GitHub OIDC username pattern identity mapping\")\n            .providerName(\"my-github-oidc-configuration\")\n            .priority(1.0)\n            .claimsJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sub\", \"repo:humpty/access-oidc-poc:ref:refs/heads/main\"),\n                    jsonProperty(\"workflow_ref\", \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\")\n                )))\n            .tokenSpec(OidcIdentityMappingTokenSpecArgs.builder()\n                .usernamePattern(\"{{user}}\")\n                .audience(\"*@*\")\n                .expiresIn(7200.0)\n                .build())\n            .build());\n\n        var my_github_oidc_groups_pattern_identity_mapping = new OidcIdentityMapping(\"my-github-oidc-groups-pattern-identity-mapping\", OidcIdentityMappingArgs.builder()\n            .name(\"my-github-oidc-groups-pattern-identity-mapping\")\n            .description(\"My GitHub OIDC groups pattern identity mapping\")\n            .providerName(\"my-github-oidc-configuration\")\n            .priority(1.0)\n            .claimsJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sub\", \"repo:humpty/access-oidc-poc:ref:refs/heads/main\"),\n                    jsonProperty(\"workflow_ref\", \"humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\")\n                )))\n            .tokenSpec(OidcIdentityMappingTokenSpecArgs.builder()\n                .groupsPattern(\"{{group}}\")\n                .audience(\"*@*\")\n                .expiresIn(7200.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-github-oidc-user-identity-mapping:\n    type: platform:OidcIdentityMapping\n    properties:\n      name: my-github-oidc-user-identity-mapping\n      description: My GitHub OIDC user identity mapping\n      providerName: my-github-oidc-configuration\n      priority: 1\n      claimsJson:\n        fn::toJSON:\n          sub: repo:humpty/access-oidc-poc:ref:refs/heads/main\n          workflow_ref: humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\n      tokenSpec:\n        username: my-user\n        scope: applied-permissions/user\n        audience: '*@*'\n        expiresIn: 7200\n  my-github-oidc-group-identity-mapping:\n    type: platform:OidcIdentityMapping\n    properties:\n      name: my-github-oidc-group-identity-mapping\n      description: My GitHub OIDC group identity mapping\n      providerName: my-github-oidc-configuration\n      priority: 1\n      claimsJson:\n        fn::toJSON:\n          sub: repo:humpty/access-oidc-poc:ref:refs/heads/main\n          workflow_ref: humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\n      tokenSpec:\n        scope: applied-permissions/groups:\"readers\",\"my-group\"\n        audience: jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\n        expiresIn: 7200\n  my-github-oidc-project-roles-identity-mapping:\n    type: platform:OidcIdentityMapping\n    properties:\n      name: my-github-oidc-project-role-identity-mapping\n      description: My GitHub OIDC Project role identity mapping\n      providerName: my-github-oidc-configuration\n      priority: 1\n      claimsJson:\n        fn::toJSON:\n          sub: repo:humpty/access-oidc-poc:ref:refs/heads/main\n          workflow_ref: humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\n      tokenSpec:\n        scope: applied-permissions/roles:my-project:\"Project Admin\",\"Developer\"\n        audience: jfrt@* jfac@* jfmc@* jfmd@* jfevt@* jfxfer@* jflnk@* jfint@* jfwks@*\n        expiresIn: 7200\n      projectKey: my-project\n  my-github-oidc-username-pattern-identity-mapping:\n    type: platform:OidcIdentityMapping\n    properties:\n      name: my-github-oidc-username-pattern-identity-mapping\n      description: My GitHub OIDC username pattern identity mapping\n      providerName: my-github-oidc-configuration\n      priority: 1\n      claimsJson:\n        fn::toJSON:\n          sub: repo:humpty/access-oidc-poc:ref:refs/heads/main\n          workflow_ref: humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\n      tokenSpec:\n        usernamePattern: '{{user}}'\n        audience: '*@*'\n        expiresIn: 7200\n  my-github-oidc-groups-pattern-identity-mapping:\n    type: platform:OidcIdentityMapping\n    properties:\n      name: my-github-oidc-groups-pattern-identity-mapping\n      description: My GitHub OIDC groups pattern identity mapping\n      providerName: my-github-oidc-configuration\n      priority: 1\n      claimsJson:\n        fn::toJSON:\n          sub: repo:humpty/access-oidc-poc:ref:refs/heads/main\n          workflow_ref: humpty/access-oidc-poc/.github/workflows/job.yaml@refs/heads/main\n      tokenSpec:\n        groupsPattern: '{{group}}'\n        audience: '*@*'\n        expiresIn: 7200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/oidcIdentityMapping:OidcIdentityMapping my-oidc-identity-mapping my-oidc-identity-mapping:my-oidc-configuration\n```\n\n```sh\n$ pulumi import platform:index/oidcIdentityMapping:OidcIdentityMapping my-oidc-identity-mapping my-oidc-identity-mapping:my-oidc-configuration:myproj\n```\n\n","properties":{"claimsJson":{"type":"string"},"description":{"type":"string","description":"Description of the OIDC mapping\n"},"name":{"type":"string","description":"Name of the OIDC identity mapping\n"},"priority":{"type":"number","description":"Priority of the identity mapping. The priority should be a number. The higher priority is set for the lower number. If you do not enter a value, the identity mapping is assigned the lowest priority. We recommend that you assign the highest priority (1) to the strongest permission gate. Set the lowest priority to the weakest permission for a logical and effective access control setup.\n"},"projectKey":{"type":"string","description":"If set, this Identity Mapping will be available in the scope of the given project (editable by platform admin and project admin). If not set, this Identity Mapping will be global and only editable by platform admin. Once set, the projectKey cannot be changed.\n"},"providerName":{"type":"string","description":"Name of the OIDC configuration\n"},"tokenSpec":{"$ref":"#/types/platform:index%2FOidcIdentityMappingTokenSpec:OidcIdentityMappingTokenSpec","description":"Specifications of the token. In case of success, a token with the following details will be generated and passed to OIDC Provider.\n"}},"type":"object","required":["claimsJson","name","priority","providerName","tokenSpec"],"inputProperties":{"claimsJson":{"type":"string"},"description":{"type":"string","description":"Description of the OIDC mapping\n"},"name":{"type":"string","description":"Name of the OIDC identity mapping\n"},"priority":{"type":"number","description":"Priority of the identity mapping. The priority should be a number. The higher priority is set for the lower number. If you do not enter a value, the identity mapping is assigned the lowest priority. We recommend that you assign the highest priority (1) to the strongest permission gate. Set the lowest priority to the weakest permission for a logical and effective access control setup.\n"},"projectKey":{"type":"string","description":"If set, this Identity Mapping will be available in the scope of the given project (editable by platform admin and project admin). If not set, this Identity Mapping will be global and only editable by platform admin. Once set, the projectKey cannot be changed.\n"},"providerName":{"type":"string","description":"Name of the OIDC configuration\n"},"tokenSpec":{"$ref":"#/types/platform:index%2FOidcIdentityMappingTokenSpec:OidcIdentityMappingTokenSpec","description":"Specifications of the token. In case of success, a token with the following details will be generated and passed to OIDC Provider.\n"}},"requiredInputs":["claimsJson","priority","providerName","tokenSpec"],"stateInputs":{"description":"Input properties used for looking up and filtering OidcIdentityMapping resources.\n","properties":{"claimsJson":{"type":"string"},"description":{"type":"string","description":"Description of the OIDC mapping\n"},"name":{"type":"string","description":"Name of the OIDC identity mapping\n"},"priority":{"type":"number","description":"Priority of the identity mapping. The priority should be a number. The higher priority is set for the lower number. If you do not enter a value, the identity mapping is assigned the lowest priority. We recommend that you assign the highest priority (1) to the strongest permission gate. Set the lowest priority to the weakest permission for a logical and effective access control setup.\n"},"projectKey":{"type":"string","description":"If set, this Identity Mapping will be available in the scope of the given project (editable by platform admin and project admin). If not set, this Identity Mapping will be global and only editable by platform admin. Once set, the projectKey cannot be changed.\n"},"providerName":{"type":"string","description":"Name of the OIDC configuration\n"},"tokenSpec":{"$ref":"#/types/platform:index%2FOidcIdentityMappingTokenSpec:OidcIdentityMappingTokenSpec","description":"Specifications of the token. In case of success, a token with the following details will be generated and passed to OIDC Provider.\n"}},"type":"object"}},"platform:index/permission:Permission":{"description":"Provides a JFrog [permission](https://jfrog.com/help/r/jfrog-platform-administration-documentation/permissions) resource to manage how users and groups access JFrog resources. This resource is applicable for the next-generation permissions model and fully backwards compatible with the legacy \u003cspan pulumi-lang-nodejs=\"`artifactoryPermissionTarget`\" pulumi-lang-dotnet=\"`ArtifactoryPermissionTarget`\" pulumi-lang-go=\"`artifactoryPermissionTarget`\" pulumi-lang-python=\"`artifactory_permission_target`\" pulumi-lang-yaml=\"`artifactoryPermissionTarget`\" pulumi-lang-java=\"`artifactoryPermissionTarget`\"\u003e`artifactory_permission_target`\u003c/span\u003e resource in Artifactory provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_permission = new platform.Permission(\"my-permission\", {\n    name: \"my-permission-name\",\n    artifact: {\n        actions: {\n            users: [{\n                name: \"my-user\",\n                permissions: [\n                    \"READ\",\n                    \"WRITE\",\n                ],\n            }],\n        },\n        targets: [\n            {\n                name: \"my-docker-local\",\n                includePatterns: [\"**\"],\n            },\n            {\n                name: \"ALL-LOCAL\",\n                includePatterns: [\n                    \"**\",\n                    \"*.js\",\n                ],\n            },\n            {\n                name: \"ALL-REMOTE\",\n                includePatterns: [\n                    \"**\",\n                    \"*.js\",\n                ],\n            },\n            {\n                name: \"ALL-DISTRIBUTION\",\n                includePatterns: [\n                    \"**\",\n                    \"*.js\",\n                ],\n            },\n        ],\n    },\n    build: {\n        targets: [{\n            name: \"artifactory-build-info\",\n            includePatterns: [\"**\"],\n            excludePatterns: [\"*.js\"],\n        }],\n    },\n    releaseBundle: {\n        actions: {\n            users: [{\n                name: \"my-user\",\n                permissions: [\n                    \"READ\",\n                    \"WRITE\",\n                ],\n            }],\n            groups: [{\n                name: \"my-group\",\n                permissions: [\n                    \"READ\",\n                    \"ANNOTATE\",\n                ],\n            }],\n        },\n        targets: [{\n            name: \"release-bundle\",\n            includePatterns: [\"**\"],\n        }],\n    },\n    destination: {\n        actions: {\n            groups: [{\n                name: \"my-group\",\n                permissions: [\n                    \"READ\",\n                    \"ANNOTATE\",\n                ],\n            }],\n        },\n        targets: [{\n            name: \"*\",\n            includePatterns: [\"**\"],\n        }],\n    },\n    pipelineSource: {\n        actions: {\n            groups: [{\n                name: \"my-group\",\n                permissions: [\n                    \"READ\",\n                    \"ANNOTATE\",\n                ],\n            }],\n        },\n        targets: [{\n            name: \"*\",\n            includePatterns: [\"**\"],\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_permission = platform.Permission(\"my-permission\",\n    name=\"my-permission-name\",\n    artifact={\n        \"actions\": {\n            \"users\": [{\n                \"name\": \"my-user\",\n                \"permissions\": [\n                    \"READ\",\n                    \"WRITE\",\n                ],\n            }],\n        },\n        \"targets\": [\n            {\n                \"name\": \"my-docker-local\",\n                \"include_patterns\": [\"**\"],\n            },\n            {\n                \"name\": \"ALL-LOCAL\",\n                \"include_patterns\": [\n                    \"**\",\n                    \"*.js\",\n                ],\n            },\n            {\n                \"name\": \"ALL-REMOTE\",\n                \"include_patterns\": [\n                    \"**\",\n                    \"*.js\",\n                ],\n            },\n            {\n                \"name\": \"ALL-DISTRIBUTION\",\n                \"include_patterns\": [\n                    \"**\",\n                    \"*.js\",\n                ],\n            },\n        ],\n    },\n    build={\n        \"targets\": [{\n            \"name\": \"artifactory-build-info\",\n            \"include_patterns\": [\"**\"],\n            \"exclude_patterns\": [\"*.js\"],\n        }],\n    },\n    release_bundle={\n        \"actions\": {\n            \"users\": [{\n                \"name\": \"my-user\",\n                \"permissions\": [\n                    \"READ\",\n                    \"WRITE\",\n                ],\n            }],\n            \"groups\": [{\n                \"name\": \"my-group\",\n                \"permissions\": [\n                    \"READ\",\n                    \"ANNOTATE\",\n                ],\n            }],\n        },\n        \"targets\": [{\n            \"name\": \"release-bundle\",\n            \"include_patterns\": [\"**\"],\n        }],\n    },\n    destination={\n        \"actions\": {\n            \"groups\": [{\n                \"name\": \"my-group\",\n                \"permissions\": [\n                    \"READ\",\n                    \"ANNOTATE\",\n                ],\n            }],\n        },\n        \"targets\": [{\n            \"name\": \"*\",\n            \"include_patterns\": [\"**\"],\n        }],\n    },\n    pipeline_source={\n        \"actions\": {\n            \"groups\": [{\n                \"name\": \"my-group\",\n                \"permissions\": [\n                    \"READ\",\n                    \"ANNOTATE\",\n                ],\n            }],\n        },\n        \"targets\": [{\n            \"name\": \"*\",\n            \"include_patterns\": [\"**\"],\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_permission = new Platform.Permission(\"my-permission\", new()\n    {\n        Name = \"my-permission-name\",\n        Artifact = new Platform.Inputs.PermissionArtifactArgs\n        {\n            Actions = new Platform.Inputs.PermissionArtifactActionsArgs\n            {\n                Users = new[]\n                {\n                    new Platform.Inputs.PermissionArtifactActionsUserArgs\n                    {\n                        Name = \"my-user\",\n                        Permissions = new[]\n                        {\n                            \"READ\",\n                            \"WRITE\",\n                        },\n                    },\n                },\n            },\n            Targets = new[]\n            {\n                new Platform.Inputs.PermissionArtifactTargetArgs\n                {\n                    Name = \"my-docker-local\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                    },\n                },\n                new Platform.Inputs.PermissionArtifactTargetArgs\n                {\n                    Name = \"ALL-LOCAL\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                        \"*.js\",\n                    },\n                },\n                new Platform.Inputs.PermissionArtifactTargetArgs\n                {\n                    Name = \"ALL-REMOTE\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                        \"*.js\",\n                    },\n                },\n                new Platform.Inputs.PermissionArtifactTargetArgs\n                {\n                    Name = \"ALL-DISTRIBUTION\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                        \"*.js\",\n                    },\n                },\n            },\n        },\n        Build = new Platform.Inputs.PermissionBuildArgs\n        {\n            Targets = new[]\n            {\n                new Platform.Inputs.PermissionBuildTargetArgs\n                {\n                    Name = \"artifactory-build-info\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                    },\n                    ExcludePatterns = new[]\n                    {\n                        \"*.js\",\n                    },\n                },\n            },\n        },\n        ReleaseBundle = new Platform.Inputs.PermissionReleaseBundleArgs\n        {\n            Actions = new Platform.Inputs.PermissionReleaseBundleActionsArgs\n            {\n                Users = new[]\n                {\n                    new Platform.Inputs.PermissionReleaseBundleActionsUserArgs\n                    {\n                        Name = \"my-user\",\n                        Permissions = new[]\n                        {\n                            \"READ\",\n                            \"WRITE\",\n                        },\n                    },\n                },\n                Groups = new[]\n                {\n                    new Platform.Inputs.PermissionReleaseBundleActionsGroupArgs\n                    {\n                        Name = \"my-group\",\n                        Permissions = new[]\n                        {\n                            \"READ\",\n                            \"ANNOTATE\",\n                        },\n                    },\n                },\n            },\n            Targets = new[]\n            {\n                new Platform.Inputs.PermissionReleaseBundleTargetArgs\n                {\n                    Name = \"release-bundle\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                    },\n                },\n            },\n        },\n        Destination = new Platform.Inputs.PermissionDestinationArgs\n        {\n            Actions = new Platform.Inputs.PermissionDestinationActionsArgs\n            {\n                Groups = new[]\n                {\n                    new Platform.Inputs.PermissionDestinationActionsGroupArgs\n                    {\n                        Name = \"my-group\",\n                        Permissions = new[]\n                        {\n                            \"READ\",\n                            \"ANNOTATE\",\n                        },\n                    },\n                },\n            },\n            Targets = new[]\n            {\n                new Platform.Inputs.PermissionDestinationTargetArgs\n                {\n                    Name = \"*\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                    },\n                },\n            },\n        },\n        PipelineSource = new Platform.Inputs.PermissionPipelineSourceArgs\n        {\n            Actions = new Platform.Inputs.PermissionPipelineSourceActionsArgs\n            {\n                Groups = new[]\n                {\n                    new Platform.Inputs.PermissionPipelineSourceActionsGroupArgs\n                    {\n                        Name = \"my-group\",\n                        Permissions = new[]\n                        {\n                            \"READ\",\n                            \"ANNOTATE\",\n                        },\n                    },\n                },\n            },\n            Targets = new[]\n            {\n                new Platform.Inputs.PermissionPipelineSourceTargetArgs\n                {\n                    Name = \"*\",\n                    IncludePatterns = new[]\n                    {\n                        \"**\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewPermission(ctx, \"my-permission\", \u0026platform.PermissionArgs{\n\t\t\tName: pulumi.String(\"my-permission-name\"),\n\t\t\tArtifact: \u0026platform.PermissionArtifactArgs{\n\t\t\t\tActions: \u0026platform.PermissionArtifactActionsArgs{\n\t\t\t\t\tUsers: platform.PermissionArtifactActionsUserArray{\n\t\t\t\t\t\t\u0026platform.PermissionArtifactActionsUserArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"my-user\"),\n\t\t\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTargets: platform.PermissionArtifactTargetArray{\n\t\t\t\t\t\u0026platform.PermissionArtifactTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"my-docker-local\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026platform.PermissionArtifactTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"ALL-LOCAL\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t\tpulumi.String(\"*.js\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026platform.PermissionArtifactTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"ALL-REMOTE\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t\tpulumi.String(\"*.js\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026platform.PermissionArtifactTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"ALL-DISTRIBUTION\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t\tpulumi.String(\"*.js\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBuild: \u0026platform.PermissionBuildArgs{\n\t\t\t\tTargets: platform.PermissionBuildTargetArray{\n\t\t\t\t\t\u0026platform.PermissionBuildTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"artifactory-build-info\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"*.js\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tReleaseBundle: \u0026platform.PermissionReleaseBundleArgs{\n\t\t\t\tActions: \u0026platform.PermissionReleaseBundleActionsArgs{\n\t\t\t\t\tUsers: platform.PermissionReleaseBundleActionsUserArray{\n\t\t\t\t\t\t\u0026platform.PermissionReleaseBundleActionsUserArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"my-user\"),\n\t\t\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"WRITE\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tGroups: platform.PermissionReleaseBundleActionsGroupArray{\n\t\t\t\t\t\t\u0026platform.PermissionReleaseBundleActionsGroupArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"my-group\"),\n\t\t\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"ANNOTATE\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTargets: platform.PermissionReleaseBundleTargetArray{\n\t\t\t\t\t\u0026platform.PermissionReleaseBundleTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"release-bundle\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestination: \u0026platform.PermissionDestinationArgs{\n\t\t\t\tActions: \u0026platform.PermissionDestinationActionsArgs{\n\t\t\t\t\tGroups: platform.PermissionDestinationActionsGroupArray{\n\t\t\t\t\t\t\u0026platform.PermissionDestinationActionsGroupArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"my-group\"),\n\t\t\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"ANNOTATE\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTargets: platform.PermissionDestinationTargetArray{\n\t\t\t\t\t\u0026platform.PermissionDestinationTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"*\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPipelineSource: \u0026platform.PermissionPipelineSourceArgs{\n\t\t\t\tActions: \u0026platform.PermissionPipelineSourceActionsArgs{\n\t\t\t\t\tGroups: platform.PermissionPipelineSourceActionsGroupArray{\n\t\t\t\t\t\t\u0026platform.PermissionPipelineSourceActionsGroupArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"my-group\"),\n\t\t\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"READ\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"ANNOTATE\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTargets: platform.PermissionPipelineSourceTargetArray{\n\t\t\t\t\t\u0026platform.PermissionPipelineSourceTargetArgs{\n\t\t\t\t\t\tName: pulumi.String(\"*\"),\n\t\t\t\t\t\tIncludePatterns: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"**\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.platform.Permission;\nimport com.pulumi.platform.PermissionArgs;\nimport com.pulumi.platform.inputs.PermissionArtifactArgs;\nimport com.pulumi.platform.inputs.PermissionArtifactActionsArgs;\nimport com.pulumi.platform.inputs.PermissionBuildArgs;\nimport com.pulumi.platform.inputs.PermissionReleaseBundleArgs;\nimport com.pulumi.platform.inputs.PermissionReleaseBundleActionsArgs;\nimport com.pulumi.platform.inputs.PermissionDestinationArgs;\nimport com.pulumi.platform.inputs.PermissionDestinationActionsArgs;\nimport com.pulumi.platform.inputs.PermissionPipelineSourceArgs;\nimport com.pulumi.platform.inputs.PermissionPipelineSourceActionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_permission = new Permission(\"my-permission\", PermissionArgs.builder()\n            .name(\"my-permission-name\")\n            .artifact(PermissionArtifactArgs.builder()\n                .actions(PermissionArtifactActionsArgs.builder()\n                    .users(PermissionArtifactActionsUserArgs.builder()\n                        .name(\"my-user\")\n                        .permissions(                        \n                            \"READ\",\n                            \"WRITE\")\n                        .build())\n                    .build())\n                .targets(                \n                    PermissionArtifactTargetArgs.builder()\n                        .name(\"my-docker-local\")\n                        .includePatterns(\"**\")\n                        .build(),\n                    PermissionArtifactTargetArgs.builder()\n                        .name(\"ALL-LOCAL\")\n                        .includePatterns(                        \n                            \"**\",\n                            \"*.js\")\n                        .build(),\n                    PermissionArtifactTargetArgs.builder()\n                        .name(\"ALL-REMOTE\")\n                        .includePatterns(                        \n                            \"**\",\n                            \"*.js\")\n                        .build(),\n                    PermissionArtifactTargetArgs.builder()\n                        .name(\"ALL-DISTRIBUTION\")\n                        .includePatterns(                        \n                            \"**\",\n                            \"*.js\")\n                        .build())\n                .build())\n            .build(PermissionBuildArgs.builder()\n                .targets(PermissionBuildTargetArgs.builder()\n                    .name(\"artifactory-build-info\")\n                    .includePatterns(\"**\")\n                    .excludePatterns(\"*.js\")\n                    .build())\n                .build())\n            .releaseBundle(PermissionReleaseBundleArgs.builder()\n                .actions(PermissionReleaseBundleActionsArgs.builder()\n                    .users(PermissionReleaseBundleActionsUserArgs.builder()\n                        .name(\"my-user\")\n                        .permissions(                        \n                            \"READ\",\n                            \"WRITE\")\n                        .build())\n                    .groups(PermissionReleaseBundleActionsGroupArgs.builder()\n                        .name(\"my-group\")\n                        .permissions(                        \n                            \"READ\",\n                            \"ANNOTATE\")\n                        .build())\n                    .build())\n                .targets(PermissionReleaseBundleTargetArgs.builder()\n                    .name(\"release-bundle\")\n                    .includePatterns(\"**\")\n                    .build())\n                .build())\n            .destination(PermissionDestinationArgs.builder()\n                .actions(PermissionDestinationActionsArgs.builder()\n                    .groups(PermissionDestinationActionsGroupArgs.builder()\n                        .name(\"my-group\")\n                        .permissions(                        \n                            \"READ\",\n                            \"ANNOTATE\")\n                        .build())\n                    .build())\n                .targets(PermissionDestinationTargetArgs.builder()\n                    .name(\"*\")\n                    .includePatterns(\"**\")\n                    .build())\n                .build())\n            .pipelineSource(PermissionPipelineSourceArgs.builder()\n                .actions(PermissionPipelineSourceActionsArgs.builder()\n                    .groups(PermissionPipelineSourceActionsGroupArgs.builder()\n                        .name(\"my-group\")\n                        .permissions(                        \n                            \"READ\",\n                            \"ANNOTATE\")\n                        .build())\n                    .build())\n                .targets(PermissionPipelineSourceTargetArgs.builder()\n                    .name(\"*\")\n                    .includePatterns(\"**\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-permission:\n    type: platform:Permission\n    properties:\n      name: my-permission-name\n      artifact:\n        actions:\n          users:\n            - name: my-user\n              permissions:\n                - READ\n                - WRITE\n        targets:\n          - name: my-docker-local\n            includePatterns:\n              - '**'\n          - name: ALL-LOCAL\n            includePatterns:\n              - '**'\n              - '*.js'\n          - name: ALL-REMOTE\n            includePatterns:\n              - '**'\n              - '*.js'\n          - name: ALL-DISTRIBUTION\n            includePatterns:\n              - '**'\n              - '*.js'\n      build:\n        targets:\n          - name: artifactory-build-info\n            includePatterns:\n              - '**'\n            excludePatterns:\n              - '*.js'\n      releaseBundle:\n        actions:\n          users:\n            - name: my-user\n              permissions:\n                - READ\n                - WRITE\n          groups:\n            - name: my-group\n              permissions:\n                - READ\n                - ANNOTATE\n        targets:\n          - name: release-bundle\n            includePatterns:\n              - '**'\n      destination:\n        actions:\n          groups:\n            - name: my-group\n              permissions:\n                - READ\n                - ANNOTATE\n        targets:\n          - name: '*'\n            includePatterns:\n              - '**'\n      pipelineSource:\n        actions:\n          groups:\n            - name: my-group\n              permissions:\n                - READ\n                - ANNOTATE\n        targets:\n          - name: '*'\n            includePatterns:\n              - '**'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/permission:Permission my-permission my-permission-name\n```\n\n","properties":{"artifact":{"$ref":"#/types/platform:index%2FPermissionArtifact:PermissionArtifact","description":"Defines the repositories to be used or excluded.\n"},"build":{"$ref":"#/types/platform:index%2FPermissionBuild:PermissionBuild","description":"Defines the builds to be used or excluded.\n"},"destination":{"$ref":"#/types/platform:index%2FPermissionDestination:PermissionDestination","description":"Defines the destinations to be used or excluded.\n"},"name":{"type":"string","description":"Permission name\n"},"pipelineSource":{"$ref":"#/types/platform:index%2FPermissionPipelineSource:PermissionPipelineSource","description":"Defines the pipeline sources to be used or excluded.\n"},"releaseBundle":{"$ref":"#/types/platform:index%2FPermissionReleaseBundle:PermissionReleaseBundle","description":"Defines the release bundles to be used or excluded.\n"}},"type":"object","required":["name"],"inputProperties":{"artifact":{"$ref":"#/types/platform:index%2FPermissionArtifact:PermissionArtifact","description":"Defines the repositories to be used or excluded.\n"},"build":{"$ref":"#/types/platform:index%2FPermissionBuild:PermissionBuild","description":"Defines the builds to be used or excluded.\n"},"destination":{"$ref":"#/types/platform:index%2FPermissionDestination:PermissionDestination","description":"Defines the destinations to be used or excluded.\n"},"name":{"type":"string","description":"Permission name\n"},"pipelineSource":{"$ref":"#/types/platform:index%2FPermissionPipelineSource:PermissionPipelineSource","description":"Defines the pipeline sources to be used or excluded.\n"},"releaseBundle":{"$ref":"#/types/platform:index%2FPermissionReleaseBundle:PermissionReleaseBundle","description":"Defines the release bundles to be used or excluded.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Permission resources.\n","properties":{"artifact":{"$ref":"#/types/platform:index%2FPermissionArtifact:PermissionArtifact","description":"Defines the repositories to be used or excluded.\n"},"build":{"$ref":"#/types/platform:index%2FPermissionBuild:PermissionBuild","description":"Defines the builds to be used or excluded.\n"},"destination":{"$ref":"#/types/platform:index%2FPermissionDestination:PermissionDestination","description":"Defines the destinations to be used or excluded.\n"},"name":{"type":"string","description":"Permission name\n"},"pipelineSource":{"$ref":"#/types/platform:index%2FPermissionPipelineSource:PermissionPipelineSource","description":"Defines the pipeline sources to be used or excluded.\n"},"releaseBundle":{"$ref":"#/types/platform:index%2FPermissionReleaseBundle:PermissionReleaseBundle","description":"Defines the release bundles to be used or excluded.\n"}},"type":"object"}},"platform:index/reverseProxy:ReverseProxy":{"description":"Provides a JFrog [Reverse Proxy](https://jfrog.com/help/r/jfrog-artifactory-documentation/reverse-proxy-settings) resource.\n\n~\u003eOnly available for self-hosted instances.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  my-reverse-proxy:\n    type: platform:ReverseProxy\n    properties:\n      dockerReverseProxyMethod: SUBDOMAIN\n      serverNameExpression: '*.jfrog.com'\n      serverProvider: NGINX\n      publicServerName: jfrog.com\n      internalHostname: localhost\n      useHttps: true\n      httpPort: 80\n      httpsPort: 443\n      sslKeyPath: /etc/ssl/private/myserver.key\n      sslCertificatePath: /etc/ssl/certs/myserver.crt\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/reverseProxy:ReverseProxy my-reverse-proxy DIRECT\n```\n\n","properties":{"dockerReverseProxyMethod":{"type":"string","description":"Docker access method. The default value is SUBDOMAIN. Supported values: SUBDOMAIN, REPOPATHPREFIX, PORTPERREPO.\n"},"httpPort":{"type":"number","description":"The port for access via HTTP. The default value is 80. Only settable when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"httpsPort":{"type":"number","description":"The port for access via HTTPS. The default value is 443. Only settable when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"internalHostname":{"type":"string","description":"The internal server name for Artifactory which will be used by the web server to access the Artifactory machine. If the web server is installed on the same machine as Artifactory you can use localhost, otherwise use the IP or hostname. Must be set when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"publicServerName":{"type":"string","description":"The server name that will be used to access Artifactory. Should be correlated with the base URL value. Must be set when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"serverProvider":{"type":"string","description":"Set the server provider type. Supported values: DIRECT, NGINX, APACHE.\n"},"sslCertificatePath":{"type":"string","description":"The full path of the certificate file on the web server, e.g. `/etc/ssl/certs/myserver.crt`. Must be set when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"sslKeyPath":{"type":"string","description":"The full path of the key file on the web server, e.g. `/etc/ssl/private/myserver.key`. Must be set when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"useHttps":{"type":"boolean","description":"When set, Artifactory will be accessible via HTTPS at the corresponding port that is set. Only settable when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"}},"type":"object","required":["dockerReverseProxyMethod","httpPort","httpsPort","serverProvider","useHttps"],"inputProperties":{"dockerReverseProxyMethod":{"type":"string","description":"Docker access method. The default value is SUBDOMAIN. Supported values: SUBDOMAIN, REPOPATHPREFIX, PORTPERREPO.\n"},"httpPort":{"type":"number","description":"The port for access via HTTP. The default value is 80. Only settable when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"httpsPort":{"type":"number","description":"The port for access via HTTPS. The default value is 443. Only settable when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"internalHostname":{"type":"string","description":"The internal server name for Artifactory which will be used by the web server to access the Artifactory machine. If the web server is installed on the same machine as Artifactory you can use localhost, otherwise use the IP or hostname. Must be set when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"publicServerName":{"type":"string","description":"The server name that will be used to access Artifactory. Should be correlated with the base URL value. Must be set when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"serverProvider":{"type":"string","description":"Set the server provider type. Supported values: DIRECT, NGINX, APACHE.\n"},"sslCertificatePath":{"type":"string","description":"The full path of the certificate file on the web server, e.g. `/etc/ssl/certs/myserver.crt`. Must be set when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"sslKeyPath":{"type":"string","description":"The full path of the key file on the web server, e.g. `/etc/ssl/private/myserver.key`. Must be set when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"useHttps":{"type":"boolean","description":"When set, Artifactory will be accessible via HTTPS at the corresponding port that is set. Only settable when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"}},"requiredInputs":["serverProvider"],"stateInputs":{"description":"Input properties used for looking up and filtering ReverseProxy resources.\n","properties":{"dockerReverseProxyMethod":{"type":"string","description":"Docker access method. The default value is SUBDOMAIN. Supported values: SUBDOMAIN, REPOPATHPREFIX, PORTPERREPO.\n"},"httpPort":{"type":"number","description":"The port for access via HTTP. The default value is 80. Only settable when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"httpsPort":{"type":"number","description":"The port for access via HTTPS. The default value is 443. Only settable when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"internalHostname":{"type":"string","description":"The internal server name for Artifactory which will be used by the web server to access the Artifactory machine. If the web server is installed on the same machine as Artifactory you can use localhost, otherwise use the IP or hostname. Must be set when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"publicServerName":{"type":"string","description":"The server name that will be used to access Artifactory. Should be correlated with the base URL value. Must be set when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"},"serverProvider":{"type":"string","description":"Set the server provider type. Supported values: DIRECT, NGINX, APACHE.\n"},"sslCertificatePath":{"type":"string","description":"The full path of the certificate file on the web server, e.g. `/etc/ssl/certs/myserver.crt`. Must be set when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"sslKeyPath":{"type":"string","description":"The full path of the key file on the web server, e.g. `/etc/ssl/private/myserver.key`. Must be set when \u003cspan pulumi-lang-nodejs=\"`useHttps`\" pulumi-lang-dotnet=\"`UseHttps`\" pulumi-lang-go=\"`useHttps`\" pulumi-lang-python=\"`use_https`\" pulumi-lang-yaml=\"`useHttps`\" pulumi-lang-java=\"`useHttps`\"\u003e`use_https`\u003c/span\u003e is set to \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"},"useHttps":{"type":"boolean","description":"When set, Artifactory will be accessible via HTTPS at the corresponding port that is set. Only settable when \u003cspan pulumi-lang-nodejs=\"`serverProvider`\" pulumi-lang-dotnet=\"`ServerProvider`\" pulumi-lang-go=\"`serverProvider`\" pulumi-lang-python=\"`server_provider`\" pulumi-lang-yaml=\"`serverProvider`\" pulumi-lang-java=\"`serverProvider`\"\u003e`server_provider`\u003c/span\u003e is set to `NIGNIX` or `APACHE`\n"}},"type":"object"}},"platform:index/samlSettings:SamlSettings":{"description":"Provides a JFrog [SAML SSO Settings](https://jfrog.com/help/r/jfrog-platform-administration-documentation/saml-sso) resource.\n\n~\u003eThis resource supports both JFrog SaaS and Self-Hosted instances. For SaaS instances, the \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e parameter must currently be activated via a manual API call after the pulumi up is complete.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_okta_saml_settings = new platform.SamlSettings(\"my-okta-saml-settings\", {\n    name: \"my-okta-saml-settings\",\n    enable: true,\n    certificate: \"MIICTjCCA...gPRXbm49Mz4o1nbwH\",\n    emailAttribute: \"email\",\n    groupAttribute: \"group\",\n    nameIdAttribute: \"id\",\n    loginUrl: \"http://tempurl.org/saml\",\n    logoutUrl: \"https://myaccount.okta.com\",\n    autoUserCreation: true,\n    serviceProviderName: \"okta\",\n    allowUserToAccessProfile: true,\n    autoRedirect: true,\n    syncGroups: true,\n    verifyAudienceRestriction: true,\n    useEncryptedAssertion: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_okta_saml_settings = platform.SamlSettings(\"my-okta-saml-settings\",\n    name=\"my-okta-saml-settings\",\n    enable=True,\n    certificate=\"MIICTjCCA...gPRXbm49Mz4o1nbwH\",\n    email_attribute=\"email\",\n    group_attribute=\"group\",\n    name_id_attribute=\"id\",\n    login_url=\"http://tempurl.org/saml\",\n    logout_url=\"https://myaccount.okta.com\",\n    auto_user_creation=True,\n    service_provider_name=\"okta\",\n    allow_user_to_access_profile=True,\n    auto_redirect=True,\n    sync_groups=True,\n    verify_audience_restriction=True,\n    use_encrypted_assertion=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_okta_saml_settings = new Platform.SamlSettings(\"my-okta-saml-settings\", new()\n    {\n        Name = \"my-okta-saml-settings\",\n        Enable = true,\n        Certificate = \"MIICTjCCA...gPRXbm49Mz4o1nbwH\",\n        EmailAttribute = \"email\",\n        GroupAttribute = \"group\",\n        NameIdAttribute = \"id\",\n        LoginUrl = \"http://tempurl.org/saml\",\n        LogoutUrl = \"https://myaccount.okta.com\",\n        AutoUserCreation = true,\n        ServiceProviderName = \"okta\",\n        AllowUserToAccessProfile = true,\n        AutoRedirect = true,\n        SyncGroups = true,\n        VerifyAudienceRestriction = true,\n        UseEncryptedAssertion = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewSamlSettings(ctx, \"my-okta-saml-settings\", \u0026platform.SamlSettingsArgs{\n\t\t\tName:                      pulumi.String(\"my-okta-saml-settings\"),\n\t\t\tEnable:                    pulumi.Bool(true),\n\t\t\tCertificate:               pulumi.String(\"MIICTjCCA...gPRXbm49Mz4o1nbwH\"),\n\t\t\tEmailAttribute:            pulumi.String(\"email\"),\n\t\t\tGroupAttribute:            pulumi.String(\"group\"),\n\t\t\tNameIdAttribute:           pulumi.String(\"id\"),\n\t\t\tLoginUrl:                  pulumi.String(\"http://tempurl.org/saml\"),\n\t\t\tLogoutUrl:                 pulumi.String(\"https://myaccount.okta.com\"),\n\t\t\tAutoUserCreation:          pulumi.Bool(true),\n\t\t\tServiceProviderName:       pulumi.String(\"okta\"),\n\t\t\tAllowUserToAccessProfile:  pulumi.Bool(true),\n\t\t\tAutoRedirect:              pulumi.Bool(true),\n\t\t\tSyncGroups:                pulumi.Bool(true),\n\t\t\tVerifyAudienceRestriction: pulumi.Bool(true),\n\t\t\tUseEncryptedAssertion:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.platform.SamlSettings;\nimport com.pulumi.platform.SamlSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_okta_saml_settings = new SamlSettings(\"my-okta-saml-settings\", SamlSettingsArgs.builder()\n            .name(\"my-okta-saml-settings\")\n            .enable(true)\n            .certificate(\"MIICTjCCA...gPRXbm49Mz4o1nbwH\")\n            .emailAttribute(\"email\")\n            .groupAttribute(\"group\")\n            .nameIdAttribute(\"id\")\n            .loginUrl(\"http://tempurl.org/saml\")\n            .logoutUrl(\"https://myaccount.okta.com\")\n            .autoUserCreation(true)\n            .serviceProviderName(\"okta\")\n            .allowUserToAccessProfile(true)\n            .autoRedirect(true)\n            .syncGroups(true)\n            .verifyAudienceRestriction(true)\n            .useEncryptedAssertion(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-okta-saml-settings:\n    type: platform:SamlSettings\n    properties:\n      name: my-okta-saml-settings\n      enable: true\n      certificate: MIICTjCCA...gPRXbm49Mz4o1nbwH\n      emailAttribute: email\n      groupAttribute: group\n      nameIdAttribute: id\n      loginUrl: http://tempurl.org/saml\n      logoutUrl: https://myaccount.okta.com\n      autoUserCreation: true\n      serviceProviderName: okta\n      allowUserToAccessProfile: true\n      autoRedirect: true\n      syncGroups: true\n      verifyAudienceRestriction: true\n      useEncryptedAssertion: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/samlSettings:SamlSettings my-okta-saml-settings my-okta-saml-settings\n```\n\n","properties":{"allowUserToAccessProfile":{"type":"boolean","description":"When set, auto created users will have access to their profile page and will be able to perform actions such as generating an API key. 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"},"autoRedirect":{"type":"boolean","description":"When set, clicking on the login link will direct users to the configured SAML login URL. 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"},"autoUserCreation":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from an SSO user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user inside Artifactory to manage user permissions not attached to their default groups. 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"},"certificate":{"type":"string","description":"The certificate for SAML Authentication in Base64 format. NOTE! The certificate must contain the public key to allow Artifactory to verify sign-in requests.\n","secret":true},"emailAttribute":{"type":"string","description":"If \u003cspan pulumi-lang-nodejs=\"`autoUserCreation`\" pulumi-lang-dotnet=\"`AutoUserCreation`\" pulumi-lang-go=\"`autoUserCreation`\" pulumi-lang-python=\"`auto_user_creation`\" pulumi-lang-yaml=\"`autoUserCreation`\" pulumi-lang-java=\"`autoUserCreation`\"\u003e`auto_user_creation`\u003c/span\u003e is enabled or an internal user exists, the system will set the user's email to the value in this attribute that is returned by the SAML login XML response.\n"},"enable":{"type":"boolean","description":"When set, SAML integration is enabled and users may be authenticated via a SAML server. 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"},"groupAttribute":{"type":"string","description":"The group attribute in the SAML login XML response. Note that the system will search for a case-sensitive match to an existing group..\n"},"ldapGroupSettings":{"type":"array","items":{"type":"string"},"description":"List of LDAP group setting names. Only support in Artifactory 7.98 or later. See [Enabling Synchronization of LDAP Groups for SAML SSO](https://jfrog.com/help/r/jfrog-platform-administration-documentation/enabling-synchronization-of-ldap-groups-for-saml-sso) for more details.\n"},"loginUrl":{"type":"string","description":"The identity provider login URL (when you try to login, the service provider redirects to this URL).\n"},"logoutUrl":{"type":"string","description":"The identity provider logout URL (when you try to logout, the service provider redirects to this URL).\n"},"name":{"type":"string","description":"SAML Settings name.\n"},"nameIdAttribute":{"type":"string","description":"The username attribute used to configure the SSO URL for the identity provider.\n"},"serviceProviderName":{"type":"string","description":"The SAML service provider name. This should be a URI that is also known as the entityID, providerID, or entity identity.\n"},"syncGroups":{"type":"boolean","description":"When set, in addition to the groups the user is already associated with, he will also be associated with the groups returned in the SAML login response. Note that the user's association with the returned groups is not persistent. It is only valid for the current login session. 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"},"useEncryptedAssertion":{"type":"boolean","description":"When set, an X.509 public certificate will be created by Artifactory. Download this certificate and upload it to your IDP and choose your own encryption algorithm. This process will let you encrypt the assertion section in your SAML response. 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"},"verifyAudienceRestriction":{"type":"boolean","description":"Set this flag to specify who the assertion is intended for. The \"audience\" will be the service provider and is typically a URL but can technically be formatted as any string of data. 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","required":["allowUserToAccessProfile","autoRedirect","autoUserCreation","certificate","enable","loginUrl","logoutUrl","name","serviceProviderName","syncGroups","useEncryptedAssertion","verifyAudienceRestriction"],"inputProperties":{"allowUserToAccessProfile":{"type":"boolean","description":"When set, auto created users will have access to their profile page and will be able to perform actions such as generating an API key. 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"},"autoRedirect":{"type":"boolean","description":"When set, clicking on the login link will direct users to the configured SAML login URL. 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"},"autoUserCreation":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from an SSO user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user inside Artifactory to manage user permissions not attached to their default groups. 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"},"certificate":{"type":"string","description":"The certificate for SAML Authentication in Base64 format. NOTE! The certificate must contain the public key to allow Artifactory to verify sign-in requests.\n","secret":true},"emailAttribute":{"type":"string","description":"If \u003cspan pulumi-lang-nodejs=\"`autoUserCreation`\" pulumi-lang-dotnet=\"`AutoUserCreation`\" pulumi-lang-go=\"`autoUserCreation`\" pulumi-lang-python=\"`auto_user_creation`\" pulumi-lang-yaml=\"`autoUserCreation`\" pulumi-lang-java=\"`autoUserCreation`\"\u003e`auto_user_creation`\u003c/span\u003e is enabled or an internal user exists, the system will set the user's email to the value in this attribute that is returned by the SAML login XML response.\n"},"enable":{"type":"boolean","description":"When set, SAML integration is enabled and users may be authenticated via a SAML server. 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"},"groupAttribute":{"type":"string","description":"The group attribute in the SAML login XML response. Note that the system will search for a case-sensitive match to an existing group..\n"},"ldapGroupSettings":{"type":"array","items":{"type":"string"},"description":"List of LDAP group setting names. Only support in Artifactory 7.98 or later. See [Enabling Synchronization of LDAP Groups for SAML SSO](https://jfrog.com/help/r/jfrog-platform-administration-documentation/enabling-synchronization-of-ldap-groups-for-saml-sso) for more details.\n"},"loginUrl":{"type":"string","description":"The identity provider login URL (when you try to login, the service provider redirects to this URL).\n"},"logoutUrl":{"type":"string","description":"The identity provider logout URL (when you try to logout, the service provider redirects to this URL).\n"},"name":{"type":"string","description":"SAML Settings name.\n"},"nameIdAttribute":{"type":"string","description":"The username attribute used to configure the SSO URL for the identity provider.\n"},"serviceProviderName":{"type":"string","description":"The SAML service provider name. This should be a URI that is also known as the entityID, providerID, or entity identity.\n"},"syncGroups":{"type":"boolean","description":"When set, in addition to the groups the user is already associated with, he will also be associated with the groups returned in the SAML login response. Note that the user's association with the returned groups is not persistent. It is only valid for the current login session. 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"},"useEncryptedAssertion":{"type":"boolean","description":"When set, an X.509 public certificate will be created by Artifactory. Download this certificate and upload it to your IDP and choose your own encryption algorithm. This process will let you encrypt the assertion section in your SAML response. 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"},"verifyAudienceRestriction":{"type":"boolean","description":"Set this flag to specify who the assertion is intended for. The \"audience\" will be the service provider and is typically a URL but can technically be formatted as any string of data. 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"}},"requiredInputs":["certificate","loginUrl","logoutUrl","serviceProviderName"],"stateInputs":{"description":"Input properties used for looking up and filtering SamlSettings resources.\n","properties":{"allowUserToAccessProfile":{"type":"boolean","description":"When set, auto created users will have access to their profile page and will be able to perform actions such as generating an API key. 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"},"autoRedirect":{"type":"boolean","description":"When set, clicking on the login link will direct users to the configured SAML login URL. 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"},"autoUserCreation":{"type":"boolean","description":"When set, authenticated users are automatically created in Artifactory. When not set, for every request from an SSO user, the user is temporarily associated with default groups (if such groups are defined), and the permissions for these groups apply. Without automatic user creation, you must manually create the user inside Artifactory to manage user permissions not attached to their default groups. 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"},"certificate":{"type":"string","description":"The certificate for SAML Authentication in Base64 format. NOTE! The certificate must contain the public key to allow Artifactory to verify sign-in requests.\n","secret":true},"emailAttribute":{"type":"string","description":"If \u003cspan pulumi-lang-nodejs=\"`autoUserCreation`\" pulumi-lang-dotnet=\"`AutoUserCreation`\" pulumi-lang-go=\"`autoUserCreation`\" pulumi-lang-python=\"`auto_user_creation`\" pulumi-lang-yaml=\"`autoUserCreation`\" pulumi-lang-java=\"`autoUserCreation`\"\u003e`auto_user_creation`\u003c/span\u003e is enabled or an internal user exists, the system will set the user's email to the value in this attribute that is returned by the SAML login XML response.\n"},"enable":{"type":"boolean","description":"When set, SAML integration is enabled and users may be authenticated via a SAML server. 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"},"groupAttribute":{"type":"string","description":"The group attribute in the SAML login XML response. Note that the system will search for a case-sensitive match to an existing group..\n"},"ldapGroupSettings":{"type":"array","items":{"type":"string"},"description":"List of LDAP group setting names. Only support in Artifactory 7.98 or later. See [Enabling Synchronization of LDAP Groups for SAML SSO](https://jfrog.com/help/r/jfrog-platform-administration-documentation/enabling-synchronization-of-ldap-groups-for-saml-sso) for more details.\n"},"loginUrl":{"type":"string","description":"The identity provider login URL (when you try to login, the service provider redirects to this URL).\n"},"logoutUrl":{"type":"string","description":"The identity provider logout URL (when you try to logout, the service provider redirects to this URL).\n"},"name":{"type":"string","description":"SAML Settings name.\n"},"nameIdAttribute":{"type":"string","description":"The username attribute used to configure the SSO URL for the identity provider.\n"},"serviceProviderName":{"type":"string","description":"The SAML service provider name. This should be a URI that is also known as the entityID, providerID, or entity identity.\n"},"syncGroups":{"type":"boolean","description":"When set, in addition to the groups the user is already associated with, he will also be associated with the groups returned in the SAML login response. Note that the user's association with the returned groups is not persistent. It is only valid for the current login session. 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"},"useEncryptedAssertion":{"type":"boolean","description":"When set, an X.509 public certificate will be created by Artifactory. Download this certificate and upload it to your IDP and choose your own encryption algorithm. This process will let you encrypt the assertion section in your SAML response. 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"},"verifyAudienceRestriction":{"type":"boolean","description":"Set this flag to specify who the assertion is intended for. The \"audience\" will be the service provider and is typically a URL but can technically be formatted as any string of data. 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"}},"platform:index/scimGroup:ScimGroup":{"description":"Provides a JFrog [SCIM Group](https://jfrog.com/help/r/jfrog-platform-administration-documentation/scim) resource to manage groups with the SCIM protocol.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_scim_group = new platform.ScimGroup(\"my-scim-group\", {\n    scimGroupId: \"my-scim-group\",\n    displayName: \"my-scim-group\",\n    members: [\n        {\n            value: \"test@tempurl.org\",\n            display: \"test@tempurl.org\",\n        },\n        {\n            value: \"anonymous\",\n            display: \"anonymous\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_scim_group = platform.ScimGroup(\"my-scim-group\",\n    scim_group_id=\"my-scim-group\",\n    display_name=\"my-scim-group\",\n    members=[\n        {\n            \"value\": \"test@tempurl.org\",\n            \"display\": \"test@tempurl.org\",\n        },\n        {\n            \"value\": \"anonymous\",\n            \"display\": \"anonymous\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_scim_group = new Platform.ScimGroup(\"my-scim-group\", new()\n    {\n        ScimGroupId = \"my-scim-group\",\n        DisplayName = \"my-scim-group\",\n        Members = new[]\n        {\n            new Platform.Inputs.ScimGroupMemberArgs\n            {\n                Value = \"test@tempurl.org\",\n                Display = \"test@tempurl.org\",\n            },\n            new Platform.Inputs.ScimGroupMemberArgs\n            {\n                Value = \"anonymous\",\n                Display = \"anonymous\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewScimGroup(ctx, \"my-scim-group\", \u0026platform.ScimGroupArgs{\n\t\t\tScimGroupId: pulumi.String(\"my-scim-group\"),\n\t\t\tDisplayName: pulumi.String(\"my-scim-group\"),\n\t\t\tMembers: platform.ScimGroupMemberArray{\n\t\t\t\t\u0026platform.ScimGroupMemberArgs{\n\t\t\t\t\tValue:   pulumi.String(\"test@tempurl.org\"),\n\t\t\t\t\tDisplay: pulumi.String(\"test@tempurl.org\"),\n\t\t\t\t},\n\t\t\t\t\u0026platform.ScimGroupMemberArgs{\n\t\t\t\t\tValue:   pulumi.String(\"anonymous\"),\n\t\t\t\t\tDisplay: pulumi.String(\"anonymous\"),\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.platform.ScimGroup;\nimport com.pulumi.platform.ScimGroupArgs;\nimport com.pulumi.platform.inputs.ScimGroupMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_scim_group = new ScimGroup(\"my-scim-group\", ScimGroupArgs.builder()\n            .scimGroupId(\"my-scim-group\")\n            .displayName(\"my-scim-group\")\n            .members(            \n                ScimGroupMemberArgs.builder()\n                    .value(\"test@tempurl.org\")\n                    .display(\"test@tempurl.org\")\n                    .build(),\n                ScimGroupMemberArgs.builder()\n                    .value(\"anonymous\")\n                    .display(\"anonymous\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-scim-group:\n    type: platform:ScimGroup\n    properties:\n      scimGroupId: my-scim-group\n      displayName: my-scim-group\n      members:\n        - value: test@tempurl.org\n          display: test@tempurl.org\n        - value: anonymous\n          display: anonymous\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/scimGroup:ScimGroup my-scim-group my-scim-group\n```\n\n","properties":{"displayName":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimGroupMember:ScimGroupMember"}},"meta":{"type":"object","additionalProperties":{"type":"string"}},"scimGroupId":{"type":"string","description":"Group ID\n"}},"type":"object","required":["displayName","members","meta","scimGroupId"],"inputProperties":{"displayName":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimGroupMember:ScimGroupMember"}},"scimGroupId":{"type":"string","description":"Group ID\n"}},"requiredInputs":["displayName","members","scimGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScimGroup resources.\n","properties":{"displayName":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimGroupMember:ScimGroupMember"}},"meta":{"type":"object","additionalProperties":{"type":"string"}},"scimGroupId":{"type":"string","description":"Group ID\n"}},"type":"object"}},"platform:index/scimUser:ScimUser":{"description":"Provides a JFrog [SCIM User](https://jfrog.com/help/r/jfrog-platform-administration-documentation/scim) resource to manage users with the SCIM protocol.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_scim_user = new platform.ScimUser(\"my-scim-user\", {\n    username: \"test@tempurl.org\",\n    active: true,\n    emails: [{\n        value: \"test@tempurl.org\",\n        primary: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_scim_user = platform.ScimUser(\"my-scim-user\",\n    username=\"test@tempurl.org\",\n    active=True,\n    emails=[{\n        \"value\": \"test@tempurl.org\",\n        \"primary\": True,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_scim_user = new Platform.ScimUser(\"my-scim-user\", new()\n    {\n        Username = \"test@tempurl.org\",\n        Active = true,\n        Emails = new[]\n        {\n            new Platform.Inputs.ScimUserEmailArgs\n            {\n                Value = \"test@tempurl.org\",\n                Primary = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewScimUser(ctx, \"my-scim-user\", \u0026platform.ScimUserArgs{\n\t\t\tUsername: pulumi.String(\"test@tempurl.org\"),\n\t\t\tActive:   pulumi.Bool(true),\n\t\t\tEmails: platform.ScimUserEmailArray{\n\t\t\t\t\u0026platform.ScimUserEmailArgs{\n\t\t\t\t\tValue:   pulumi.String(\"test@tempurl.org\"),\n\t\t\t\t\tPrimary: pulumi.Bool(true),\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.platform.ScimUser;\nimport com.pulumi.platform.ScimUserArgs;\nimport com.pulumi.platform.inputs.ScimUserEmailArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_scim_user = new ScimUser(\"my-scim-user\", ScimUserArgs.builder()\n            .username(\"test@tempurl.org\")\n            .active(true)\n            .emails(ScimUserEmailArgs.builder()\n                .value(\"test@tempurl.org\")\n                .primary(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-scim-user:\n    type: platform:ScimUser\n    properties:\n      username: test@tempurl.org\n      active: true\n      emails:\n        - value: test@tempurl.org\n          primary: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/scimUser:ScimUser my-scim-user test@tempurl.org\n```\n\n","properties":{"active":{"type":"boolean"},"emails":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimUserEmail:ScimUserEmail"}},"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimUserGroup:ScimUserGroup"}},"meta":{"type":"object","additionalProperties":{"type":"string"}},"username":{"type":"string"}},"type":"object","required":["active","emails","groups","meta","username"],"inputProperties":{"active":{"type":"boolean"},"emails":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimUserEmail:ScimUserEmail"}},"username":{"type":"string"}},"requiredInputs":["emails","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ScimUser resources.\n","properties":{"active":{"type":"boolean"},"emails":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimUserEmail:ScimUserEmail"}},"groups":{"type":"array","items":{"$ref":"#/types/platform:index%2FScimUserGroup:ScimUserGroup"}},"meta":{"type":"object","additionalProperties":{"type":"string"}},"username":{"type":"string"}},"type":"object"}},"platform:index/workersService:WorkersService":{"description":"Provides a JFrog [Workers Service](https://jfrog.com/help/r/jfrog-platform-administration-documentation/workers-service) resource. This can be used to create and manage Workers Service.\n\n-\u003eFrom Artifactory 7.94 the Workers service will be available in a general availability release to Enterprise X and Enterprise+ licenses.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as platform from \"@pulumi/platform\";\n\nconst my_workers_service = new platform.WorkersService(\"my-workers-service\", {\n    key: \"my-workers-service\",\n    enabled: true,\n    description: \"My workers service\",\n    sourceCode: `export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise\u003cBeforeDownloadResponse\u003e =\u003e {\n  console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));\n  console.log(await axios.get('https://my.external.resource'));\n  return {\n    status: 'DOWNLOAD_PROCEED',\n    message: 'proceed',\n  }\n}\n`,\n    action: \"BEFORE_DOWNLOAD\",\n    filterCriteria: {\n        artifactFilterCriteria: {\n            repoKeys: [\"my-repo-key\"],\n        },\n    },\n    secrets: [\n        {\n            key: \"my-secret-key-1\",\n            value: \"my-secret-value-1\",\n        },\n        {\n            key: \"my-secret-key-2\",\n            value: \"my-secret-value-2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_platform as platform\n\nmy_workers_service = platform.WorkersService(\"my-workers-service\",\n    key=\"my-workers-service\",\n    enabled=True,\n    description=\"My workers service\",\n    source_code=\"\"\"export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise\u003cBeforeDownloadResponse\u003e =\u003e {\n  console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));\n  console.log(await axios.get('https://my.external.resource'));\n  return {\n    status: 'DOWNLOAD_PROCEED',\n    message: 'proceed',\n  }\n}\n\"\"\",\n    action=\"BEFORE_DOWNLOAD\",\n    filter_criteria={\n        \"artifact_filter_criteria\": {\n            \"repo_keys\": [\"my-repo-key\"],\n        },\n    },\n    secrets=[\n        {\n            \"key\": \"my-secret-key-1\",\n            \"value\": \"my-secret-value-1\",\n        },\n        {\n            \"key\": \"my-secret-key-2\",\n            \"value\": \"my-secret-value-2\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Platform = Pulumi.Platform;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_workers_service = new Platform.WorkersService(\"my-workers-service\", new()\n    {\n        Key = \"my-workers-service\",\n        Enabled = true,\n        Description = \"My workers service\",\n        SourceCode = @\"export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise\u003cBeforeDownloadResponse\u003e =\u003e {\n  console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));\n  console.log(await axios.get('https://my.external.resource'));\n  return {\n    status: 'DOWNLOAD_PROCEED',\n    message: 'proceed',\n  }\n}\n\",\n        Action = \"BEFORE_DOWNLOAD\",\n        FilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArgs\n        {\n            ArtifactFilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs\n            {\n                RepoKeys = new[]\n                {\n                    \"my-repo-key\",\n                },\n            },\n        },\n        Secrets = new[]\n        {\n            new Platform.Inputs.WorkersServiceSecretArgs\n            {\n                Key = \"my-secret-key-1\",\n                Value = \"my-secret-value-1\",\n            },\n            new Platform.Inputs.WorkersServiceSecretArgs\n            {\n                Key = \"my-secret-key-2\",\n                Value = \"my-secret-value-2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform\"\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 := platform.NewWorkersService(ctx, \"my-workers-service\", \u0026platform.WorkersServiceArgs{\n\t\t\tKey:         pulumi.String(\"my-workers-service\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tDescription: pulumi.String(\"My workers service\"),\n\t\t\tSourceCode: pulumi.String(`export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise\u003cBeforeDownloadResponse\u003e =\u003e {\n  console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));\n  console.log(await axios.get('https://my.external.resource'));\n  return {\n    status: 'DOWNLOAD_PROCEED',\n    message: 'proceed',\n  }\n}\n`),\n\t\t\tAction: pulumi.String(\"BEFORE_DOWNLOAD\"),\n\t\t\tFilterCriteria: \u0026platform.WorkersServiceFilterCriteriaArgs{\n\t\t\t\tArtifactFilterCriteria: \u0026platform.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs{\n\t\t\t\t\tRepoKeys: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"my-repo-key\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSecrets: platform.WorkersServiceSecretArray{\n\t\t\t\t\u0026platform.WorkersServiceSecretArgs{\n\t\t\t\t\tKey:   pulumi.String(\"my-secret-key-1\"),\n\t\t\t\t\tValue: pulumi.String(\"my-secret-value-1\"),\n\t\t\t\t},\n\t\t\t\t\u0026platform.WorkersServiceSecretArgs{\n\t\t\t\t\tKey:   pulumi.String(\"my-secret-key-2\"),\n\t\t\t\t\tValue: pulumi.String(\"my-secret-value-2\"),\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.platform.WorkersService;\nimport com.pulumi.platform.WorkersServiceArgs;\nimport com.pulumi.platform.inputs.WorkersServiceFilterCriteriaArgs;\nimport com.pulumi.platform.inputs.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs;\nimport com.pulumi.platform.inputs.WorkersServiceSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_workers_service = new WorkersService(\"my-workers-service\", WorkersServiceArgs.builder()\n            .key(\"my-workers-service\")\n            .enabled(true)\n            .description(\"My workers service\")\n            .sourceCode(\"\"\"\nexport default async (context: PlatformContext, data: BeforeDownloadRequest): Promise\u003cBeforeDownloadResponse\u003e =\u003e {\n  console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));\n  console.log(await axios.get('https://my.external.resource'));\n  return {\n    status: 'DOWNLOAD_PROCEED',\n    message: 'proceed',\n  }\n}\n            \"\"\")\n            .action(\"BEFORE_DOWNLOAD\")\n            .filterCriteria(WorkersServiceFilterCriteriaArgs.builder()\n                .artifactFilterCriteria(WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs.builder()\n                    .repoKeys(\"my-repo-key\")\n                    .build())\n                .build())\n            .secrets(            \n                WorkersServiceSecretArgs.builder()\n                    .key(\"my-secret-key-1\")\n                    .value(\"my-secret-value-1\")\n                    .build(),\n                WorkersServiceSecretArgs.builder()\n                    .key(\"my-secret-key-2\")\n                    .value(\"my-secret-value-2\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-workers-service:\n    type: platform:WorkersService\n    properties:\n      key: my-workers-service\n      enabled: true\n      description: My workers service\n      sourceCode: |\n        export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise\u003cBeforeDownloadResponse\u003e =\u003e {\n          console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));\n          console.log(await axios.get('https://my.external.resource'));\n          return {\n            status: 'DOWNLOAD_PROCEED',\n            message: 'proceed',\n          }\n        }\n      action: BEFORE_DOWNLOAD\n      filterCriteria:\n        artifactFilterCriteria:\n          repoKeys:\n            - my-repo-key\n      secrets:\n        - key: my-secret-key-1\n          value: my-secret-value-1\n        - key: my-secret-key-2\n          value: my-secret-value-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import platform:index/workersService:WorkersService my-worker-service my-worker-service-key\n```\n\n","properties":{"action":{"type":"string","description":"The worker action with which the worker is associated. Valid values: BEFORE*DOWNLOAD, AFTER*DOWNLOAD, BEFORE*UPLOAD, AFTER*CREATE, AFTER*BUILD*INFO*SAVE, AFTER*MOVE, BEFORE*PROPERTY*CREATE, BEFORE*PROPERTY*DELETE, AFTER*PROPERTY*CREATE, AFTER*PROPERTY*DELETE\n"},"description":{"type":"string","description":"Description of the worker.\n"},"enabled":{"type":"boolean","description":"Whether to enable the worker immediately after creation.\n"},"filterCriteria":{"$ref":"#/types/platform:index%2FWorkersServiceFilterCriteria:WorkersServiceFilterCriteria","description":"Defines the repositories to be used or excluded.\n"},"key":{"type":"string","description":"The unique ID of the worker.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/platform:index%2FWorkersServiceSecret:WorkersServiceSecret"},"description":"The secrets to be added to the worker.\n"},"sourceCode":{"type":"string","description":"The worker script in TypeScript or JavaScript.\n"}},"type":"object","required":["action","enabled","filterCriteria","key","sourceCode"],"inputProperties":{"action":{"type":"string","description":"The worker action with which the worker is associated. Valid values: BEFORE*DOWNLOAD, AFTER*DOWNLOAD, BEFORE*UPLOAD, AFTER*CREATE, AFTER*BUILD*INFO*SAVE, AFTER*MOVE, BEFORE*PROPERTY*CREATE, BEFORE*PROPERTY*DELETE, AFTER*PROPERTY*CREATE, AFTER*PROPERTY*DELETE\n"},"description":{"type":"string","description":"Description of the worker.\n"},"enabled":{"type":"boolean","description":"Whether to enable the worker immediately after creation.\n"},"filterCriteria":{"$ref":"#/types/platform:index%2FWorkersServiceFilterCriteria:WorkersServiceFilterCriteria","description":"Defines the repositories to be used or excluded.\n"},"key":{"type":"string","description":"The unique ID of the worker.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/platform:index%2FWorkersServiceSecret:WorkersServiceSecret"},"description":"The secrets to be added to the worker.\n"},"sourceCode":{"type":"string","description":"The worker script in TypeScript or JavaScript.\n"}},"requiredInputs":["action","enabled","filterCriteria","key","sourceCode"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkersService resources.\n","properties":{"action":{"type":"string","description":"The worker action with which the worker is associated. Valid values: BEFORE*DOWNLOAD, AFTER*DOWNLOAD, BEFORE*UPLOAD, AFTER*CREATE, AFTER*BUILD*INFO*SAVE, AFTER*MOVE, BEFORE*PROPERTY*CREATE, BEFORE*PROPERTY*DELETE, AFTER*PROPERTY*CREATE, AFTER*PROPERTY*DELETE\n"},"description":{"type":"string","description":"Description of the worker.\n"},"enabled":{"type":"boolean","description":"Whether to enable the worker immediately after creation.\n"},"filterCriteria":{"$ref":"#/types/platform:index%2FWorkersServiceFilterCriteria:WorkersServiceFilterCriteria","description":"Defines the repositories to be used or excluded.\n"},"key":{"type":"string","description":"The unique ID of the worker.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/platform:index%2FWorkersServiceSecret:WorkersServiceSecret"},"description":"The secrets to be added to the worker.\n"},"sourceCode":{"type":"string","description":"The worker script in TypeScript or JavaScript.\n"}},"type":"object"}}},"functions":{"pulumi:providers:platform/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:platform"}},"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":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2pmcm9nL3BsYXRmb3JtIiwidmVyc2lvbiI6IjIuMi44In19"}}