src/tools/azure-cli-extension/cleanroom/cleanroom_common/azure_cleanroom_core/templates/cleanroomspec-openapi.yaml [345:517]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ConsentProvider:
      type: object
      properties:
        url:
          type: string
        method:
          type: string
        validResponses:
          type: array
          items:
            type: integer
      required:
      - url
      - method
      - validResponses

    Image:
      type: object
      properties:
        executable:
          $ref: "#/components/schemas/Document"
        protection:
          $ref: "#/components/schemas/PrivacyProxySettings"
        enforcementPolicy:
          $ref: "#/components/schemas/Policy"
      required:
      - executable
      - enforcementPolicy

    IdentityProtocolType:
      type: string
      enum:
        - AzureAD_Federated
        - AzureAD_ManagedIdentity
        - AzureAD_Secret
        - Attested_OIDC

    Identity:
      type: object
      properties:
        name:
          type: string
        clientId:
          type: string
        tenantId:
          type: string
        tokenIssuer:
          oneOf:
            - $ref: "#/components/schemas/AttestationBasedTokenIssuer"
            - $ref: "#/components/schemas/SecretBasedTokenIssuer"
            - $ref: "#/components/schemas/FederatedIdentityBasedTokenIssuer"
          discriminator:
            propertyName: issuerType
      required:
      - name
      - clientId
      - tenantId
      - tokenIssuer

    AttestationBasedTokenIssuer:
      type: object
      properties:
        issuer:
          $ref: "#/components/schemas/ServiceEndpoint"
      required:
      - issuer

    SecretBasedTokenIssuer:
      type: object
      properties:
        issuer:
          $ref: "#/components/schemas/ServiceEndpoint"
        secret:
          $ref: "#/components/schemas/CleanroomSecret"
        secretAccessIdentity:
          $ref: "#/components/schemas/Identity"
      required:
      - issuer
      - secret
      - secretAccessIdentity

    FederatedIdentityBasedTokenIssuer:
      type: object
      properties:
        issuer:
          $ref: "#/components/schemas/ServiceEndpoint"
        federatedIdentity:
          $ref: "#/components/schemas/Identity"
      required:
      - issuer
      - federatedIdentity

    SecretType:
      type: string
      enum:
      - Secret
      - Certificate
      - Key

    CleanroomSecret:
      type: object
      properties:
        secretType:
          $ref: "#/components/schemas/SecretType"
        backingResource:
          $ref: "#/components/schemas/Resource"
      required:
      - secretType
      - backingResource

    ApplicationTelemetry:
      type: object
      properties:
        consent:
          $ref: "#/components/schemas/GovernanceService"
        logs:
          $ref: "#/components/schemas/AccessPoint"
      required:
      - logs

    InfrastructureTelemetry:
      type: object
      properties:
        consent:
          $ref: "#/components/schemas/GovernanceService"
        metrics:
          $ref: "#/components/schemas/AccessPoint"
        traces:
          $ref: "#/components/schemas/AccessPoint"
        logs:
          $ref: "#/components/schemas/AccessPoint"
      required:
      - metrics
      - traces
      - logs

    GovernanceSettings:
      type: object
      properties:
        consent:
          type: array
          items:
            $ref: "#/components/schemas/GovernanceService"
        audit:
          type: array
          items:
            $ref: "#/components/schemas/GovernanceService"
        telemetry:
          type: object
          properties:
            infrastructure:
              $ref: "#/components/schemas/InfrastructureTelemetry"
            application:
              $ref: "#/components/schemas/ApplicationTelemetry"

    GovernanceService:
      type: object
      properties:
        url:
          type: string
        method:
          type: string 
        validResponses:
          type: array
          items:
            type: integer
        identity:
          $ref: "#/components/schemas/Identity"
      required:
      - url
      - method
      - validResponses
      - identity
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



