modules:
  jira:customField:
    - key: tidb-cloud-org
      name: TiDB Cloud Org
      description: TiDB Cloud organization available to the request customer.
      type: object
      schema:
        type: object
        properties:
          tidbcloud_org_id:
            type: string
            maxLength: 255
          name:
            type: string
            maxLength: 255
          status:
            type: string
            maxLength: 255
          support_plan:
            type: string
            maxLength: 255
            searchAlias: support_plan
          plan:
            type: string
            maxLength: 255
          jsm_org_id:
            type: string
            maxLength: 255
          biz_region:
            type: string
            maxLength: 255
          time_zone:
            type: string
            maxLength: 255
          msp_org:
            type: object
            properties:
              tidbcloud_org_id:
                type: string
                maxLength: 255
              name:
                type: string
                maxLength: 255
              msp_notification_enabled:
                type: boolean
              msp_members:
                type: array
                items:
                  type: string
                  maxLength: 320
            required:
              - tidbcloud_org_id
              - name
              - msp_notification_enabled
              - msp_members
            additionalProperties: false
        required:
          - tidbcloud_org_id
        additionalProperties: false
      unlicensedAccess:
        - customer
      resolver:
        function: tidb-fields-resolver
      view:
        resource: cloud-resource-view
        render: native
        formatter:
          expression: 'value != null ? (value.tidbcloud_org_id == "-1" ? "To be confirmed
            by support" : value.name + " (" + value.tidbcloud_org_id + ")") :
            ""'
          export: true
        experience:
          - issue-view
          - portal-view
      edit:
        resource: cloud-resource-edit
        render: native
        experience:
          - issue-view
          - issue-create
          - portal-request

    - key: tidb-cloud-cluster
      name: TiDB Cloud Cluster
      description: TiDB Cloud Cluster belonging to the selected TiDB Cloud Org.
      type: object
      schema:
        type: object
        properties:
          id:
            type: string
            maxLength: 255
          name:
            type: string
            maxLength: 255
          status:
            type: string
            maxLength: 255
          service_plan:
            type: string
            maxLength: 255
          tidbcloud_org_id:
            type: string
            maxLength: 255
        required:
          - id
        additionalProperties: false
      unlicensedAccess:
        - customer
      resolver:
        function: tidb-fields-resolver
      view:
        resource: cloud-resource-view
        render: native
        formatter:
          expression: 'value != null ? (value.id == "-1" ? "To be confirmed by support" :
            value.name + " (" + value.id + ")") : ""'
          export: true
        experience:
          - issue-view
          - portal-view
      edit:
        resource: cloud-resource-edit
        render: native
        experience:
          - issue-view
          - issue-create
          - portal-request

    - key: tidb-cloud-lake
      name: TiDB Cloud Lake
      description: TiDB Cloud Lake belonging to the selected TiDB Cloud Org.
      type: object
      schema:
        type: object
        properties:
          id:
            type: string
            maxLength: 255
          name:
            type: string
            maxLength: 255
          tier:
            type: string
            maxLength: 255
          support_plan:
            type: string
            maxLength: 255
            searchAlias: support_plan
          tidbcloud_org_id:
            type: string
            maxLength: 255
          status:
            type: string
            maxLength: 255
        required:
          - id
        additionalProperties: false
      unlicensedAccess:
        - customer
      resolver:
        function: tidb-fields-resolver
      view:
        resource: cloud-resource-view
        render: native
        formatter:
          expression: 'value != null ? (value.id == "-1" ? "To be confirmed by support" :
            value.name + " (" + value.id + ")") : ""'
          export: true
        experience:
          - issue-view
          - portal-view
      edit:
        resource: cloud-resource-edit
        render: native
        experience:
          - issue-view
          - issue-create
          - portal-request

  function:
    - key: tidb-fields-resolver
      handler: resolvers/tidbCloudFields.handler

resources:
  - key: cloud-resource-edit
    path: src/CustomFieldEditApp.jsx
  - key: cloud-resource-view
    path: src/CloudResourceView.jsx

remotes:
  - key: jsm-syncer-staging
    baseUrl: https://prod.devops.pingcap.com
    operations:
      - compute

permissions:
  scopes:
    - read:jira-user
    - read:jira-work
    - read:servicedesk-request
    - read:email-address:jira

app:
  runtime:
    name: nodejs24.x
    memoryMB: 256
    architecture: arm64
  id: ari:cloud:ecosystem::app/a3ba9252-dbee-4576-a401-314ebbbaf7ef
