AzureDevOpsDscNative.AzDoPipelineAuthorization.dsc.adaptedResource.json

{
  "$schema": "https://aka.ms/dsc/schemas/v3/bundled/adaptedresource/manifest.json",
  "type": "AzureDevOpsDscNative/AzDoPipelineAuthorization",
  "kind": "resource",
  "version": "1.2.0",
  "capabilities": [
    "set",
    "test",
    "get"
  ],
  "description": "DSC resource for managing Azure DevOps pipeline authorization on protected resources.",
  "author": "ZanattaMichael",
  "requireAdapter": "Microsoft.Adapter/PowerShell",
  "path": "AzureDevOpsDscNative.psd1",
  "schema": {
    "embedded": {
      "type": "object",
      "required": [
        "ProjectName",
        "ResourceType",
        "TargetResourceName"
      ],
      "additionalProperties": false,
      "description": "DSC resource for managing Azure DevOps pipeline authorization on protected resources.",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "title": "AzureDevOpsDscNative/AzDoPipelineAuthorization",
      "properties": {
        "Ensure": {
          "type": "string",
          "enum": [
            "Present",
            "Absent"
          ],
          "title": "Ensure",
          "description": "The Ensure property."
        },
        "LookupResult": {
          "type": "object",
          "title": "LookupResult",
          "readOnly": true,
          "description": "The LookupResult property."
        },
        "ProjectName": {
          "type": "string",
          "title": "ProjectName",
          "description": "The name of the Azure DevOps project. This is the key property."
        },
        "ResourceType": {
          "type": "string",
          "enum": [
            "endpoint",
            "queue",
            "variablegroup",
            "securefile",
            "environment",
            "repository"
          ],
          "title": "ResourceType",
          "description": "The type of protected resource. One of: endpoint (service connection), queue (agent queue), variablegroup, securefile, environment, repository."
        },
        "TargetResourceName": {
          "type": "string",
          "title": "TargetResourceName",
          "description": "The name of the protected resource, resolved via the matching Live* cache for ResourceType (falling back to a live API lookup on a cache miss). For 'repository' the underlying API id is composed as \"{projectId}.{repositoryId}\" - the pipelinePermissions API's own convention."
        },
        "AuthorizedPipelines": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "AuthorizedPipelines",
          "description": "Pipeline paths authorized to use the resource, e.g. '\\Platform\\deploy-infra'. A root pipeline may be given as just its name. Unresolvable paths are reported as drift/an error rather than silently skipped."
        },
        "AllPipelines": {
          "type": "boolean",
          "title": "AllPipelines",
          "description": "Whether all pipelines in the project are authorized to use the resource (maps to allPipelines.authorized on the API). Defaults to $false - \"open access off\"."
        },
        "ExclusiveList": {
          "type": "boolean",
          "title": "ExclusiveList",
          "description": "When $true, a pipeline currently authorized on the resource but absent from AuthorizedPipelines is revoked. When $false (the default), AuthorizedPipelines is additive only - other pipelines already authorized in the portal are left alone."
        }
      }
    }
  }
}