> ## Documentation Index
> Fetch the complete documentation index at: https://confidence.spotify.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Surface



## OpenAPI

````yaml /api/workflows/api/surface.openapi.json get /v1/surfaces
openapi: 3.1.0
info:
  title: Confidence Surface API
  version: 1.0.0
  description: API documentation for surface
servers: []
security: []
paths:
  /v1/surfaces:
    get:
      summary: List Surface
      operationId: Surface.list
      parameters:
        - name: pageSize
          in: query
          required: false
          description: The maximum number of items to return.
          schema:
            type: object
        - name: pageToken
          in: query
          required: false
          description: >-
            The next_page_token value returned from a previous List request, if
            any.
          schema:
            type: string
        - name: skip
          in: query
          required: false
          description: The number of items to skip.
          schema:
            type: object
        - name: filter
          in: query
          required: false
          description: Filter for surfaces, follows the lucene query string format.
          schema:
            type: string
        - name: showDeleted
          in: query
          required: false
          description: If deleted surfaces should be included.
          schema:
            type: boolean
        - name: orderBy
          in: query
          required: false
          description: >-
            Provide fields and direction to sort by. Will always tiebreak on
            name.
             Format: {"<"}field_0{">"}:{"<"}direction{">"}, {"<"}field_1{">"}:{"<"}direction{">"}
             Example: displayName:desc,createTime:asc
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  surfaces:
                    type: array
                    items:
                      $ref: '#/components/schemas/confidence.workflow.v1.Surface'
                    description: >-
                      [Surface](/api-reference/schemas/surface): List of
                      returned surfaces
                  nextPageToken:
                    type: string
                    description: >-
                      Token to retrieve the next page of results, or empty if
                      there are no
                       more results in the list.
      security:
        - admin: []
      servers:
        - url: https://workflow.eu.confidence.dev
        - url: https://workflow.us.confidence.dev
        - url: https://workflow.confidence.dev
components:
  schemas:
    confidence.workflow.v1.Surface:
      title: Surface
      type: object
      description: >-
        A surface that represents some area of an application that can be
        experimented on.
      properties:
        name:
          type: string
          description: >-
            The identifier for the surface, for example,
            `surfaces/ndcrhu0tzbin85xzpszv.
        displayName:
          type: string
          description: A human-readable name for the surface.
        description:
          type: string
          description: A description for what the surface represents in the application.
        labels:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
          description: Custom labels for this surface.
        createTime:
          type: object
          description: Time when the surface was first created.
        updateTime:
          type: object
          description: Time when the surface was last updated.
        deleteTime:
          type: object
          description: If set, time when the surface was deleted.
        creator:
          type: string
          description: Reference to the identity that created this surface.
        updater:
          type: string
          description: Reference to the identity that last updated this surface.
        owner:
          type: string
          description: The owner of the resource. If not set will default to the creator.
        reviews:
          type: object
          properties:
            mandatory:
              type: boolean
              description: |-
                If reviews are mandatory for experiments that are
                 attached to the surface.
            reviewers:
              type: array
              items:
                type: string
              description: >-
                Identities (including users and groups) that can review for the
                surface. If any of them of the
                 reviewers have approved the experiment, it is considered approved
                 for the surface. If any of them reject the experiment, it is
                 considered rejected for the surface, regardless if someone else
                 has approved the experiment.
          description: Surface config for experiment reviews.
        metricConfig:
          type: object
          properties:
            mandatoryMetrics:
              type: array
              items:
                type: object
                properties:
                  metric:
                    type: string
                    description: Name of the metric.
                  successMetric:
                    type: object
                    properties:
                      minimumDetectableEffect:
                        type: object
                        properties:
                          value:
                            type: string
                            description: |-
                              The decimal value, as a string.

                               The string representation consists of an optional sign, `+` (`U+002B`)
                               or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                               ("the integer"), optionally followed by a fraction, optionally followed
                               by an exponent.

                               The fraction consists of a decimal point followed by zero or more decimal
                               digits. The string must contain at least one digit in either the integer
                               or the fraction. The number formed by the sign, the integer and the
                               fraction is referred to as the significand.

                               The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                               followed by one or more decimal digits.

                               Services **should** normalize decimal values before storing them by:

                                 - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                 - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                 - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                 - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                               Services **may** perform additional normalization based on its own needs
                               and the internal decimal implementation selected, such as shifting the
                               decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                               Additionally, services **may** preserve trailing zeroes in the fraction
                               to indicate increased precision, but are not required to do so.

                               Note that only the `.` character is supported to divide the integer
                               and the fraction; `,` **should not** be supported regardless of locale.
                               Additionally, thousand separators **should not** be supported. If a
                               service does support them, values **must** be normalized.

                               The ENBF grammar is:

                                   DecimalString =
                                     [Sign] Significand [Exponent];

                                   Sign = '+' | '-';

                                   Significand =
                                     Digits ['.'] [Digits] | [Digits] '.' Digits;

                                   Exponent = ('e' | 'E') [Sign] Digits;

                                   Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                               Services **should** clearly document the range of supported values, the
                               maximum supported precision (total number of digits), and, if applicable,
                               the scale (number of digits after the decimal point), as well as how it
                               behaves when receiving out-of-bounds values.

                               Services **may** choose to accept values passed as input even when the
                               value has a higher precision or scale than the service supports, and
                               **should** round the value to fit the supported scale. Alternatively, the
                               service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                               if precision would be lost.

                               Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                               gRPC) if the service receives a value outside of the supported range.
                        description: The minimum detectable effect for the metric.
                    description: >-
                      The metric is used to indicate if the experiment is
                      successful.
                  guardrailMetric:
                    type: object
                    properties:
                      nonInferiorityMargin:
                        type: object
                        properties:
                          value:
                            type: string
                            description: |-
                              The decimal value, as a string.

                               The string representation consists of an optional sign, `+` (`U+002B`)
                               or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                               ("the integer"), optionally followed by a fraction, optionally followed
                               by an exponent.

                               The fraction consists of a decimal point followed by zero or more decimal
                               digits. The string must contain at least one digit in either the integer
                               or the fraction. The number formed by the sign, the integer and the
                               fraction is referred to as the significand.

                               The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                               followed by one or more decimal digits.

                               Services **should** normalize decimal values before storing them by:

                                 - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                 - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                 - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                 - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                               Services **may** perform additional normalization based on its own needs
                               and the internal decimal implementation selected, such as shifting the
                               decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                               Additionally, services **may** preserve trailing zeroes in the fraction
                               to indicate increased precision, but are not required to do so.

                               Note that only the `.` character is supported to divide the integer
                               and the fraction; `,` **should not** be supported regardless of locale.
                               Additionally, thousand separators **should not** be supported. If a
                               service does support them, values **must** be normalized.

                               The ENBF grammar is:

                                   DecimalString =
                                     [Sign] Significand [Exponent];

                                   Sign = '+' | '-';

                                   Significand =
                                     Digits ['.'] [Digits] | [Digits] '.' Digits;

                                   Exponent = ('e' | 'E') [Sign] Digits;

                                   Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                               Services **should** clearly document the range of supported values, the
                               maximum supported precision (total number of digits), and, if applicable,
                               the scale (number of digits after the decimal point), as well as how it
                               behaves when receiving out-of-bounds values.

                               Services **may** choose to accept values passed as input even when the
                               value has a higher precision or scale than the service supports, and
                               **should** round the value to fit the supported scale. Alternatively, the
                               service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                               if precision would be lost.

                               Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                               gRPC) if the service receives a value outside of the supported range.
                        description: The non-inferiority margin for the metric.
                    description: >-
                      The metric is used to indicate if the experiment is
                      harmful.
                  preferredDirection:
                    type: string
                    enum:
                      - PREFERRED_DIRECTION_UNSPECIFIED
                      - INCREASE
                      - DECREASE
                    description: The preferred direction for the metric.
                required:
                  - metric
                  - preferredDirection
              description: 'Deprecated: use metrics instead.'
            associatedMetrics:
              type: array
              items:
                type: object
                properties:
                  metric:
                    type: string
                  successMetric:
                    type: object
                    properties:
                      minimumDetectableEffect:
                        type: object
                        properties:
                          value:
                            type: string
                            description: |-
                              The decimal value, as a string.

                               The string representation consists of an optional sign, `+` (`U+002B`)
                               or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                               ("the integer"), optionally followed by a fraction, optionally followed
                               by an exponent.

                               The fraction consists of a decimal point followed by zero or more decimal
                               digits. The string must contain at least one digit in either the integer
                               or the fraction. The number formed by the sign, the integer and the
                               fraction is referred to as the significand.

                               The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                               followed by one or more decimal digits.

                               Services **should** normalize decimal values before storing them by:

                                 - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                 - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                 - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                 - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                               Services **may** perform additional normalization based on its own needs
                               and the internal decimal implementation selected, such as shifting the
                               decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                               Additionally, services **may** preserve trailing zeroes in the fraction
                               to indicate increased precision, but are not required to do so.

                               Note that only the `.` character is supported to divide the integer
                               and the fraction; `,` **should not** be supported regardless of locale.
                               Additionally, thousand separators **should not** be supported. If a
                               service does support them, values **must** be normalized.

                               The ENBF grammar is:

                                   DecimalString =
                                     [Sign] Significand [Exponent];

                                   Sign = '+' | '-';

                                   Significand =
                                     Digits ['.'] [Digits] | [Digits] '.' Digits;

                                   Exponent = ('e' | 'E') [Sign] Digits;

                                   Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                               Services **should** clearly document the range of supported values, the
                               maximum supported precision (total number of digits), and, if applicable,
                               the scale (number of digits after the decimal point), as well as how it
                               behaves when receiving out-of-bounds values.

                               Services **may** choose to accept values passed as input even when the
                               value has a higher precision or scale than the service supports, and
                               **should** round the value to fit the supported scale. Alternatively, the
                               service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                               if precision would be lost.

                               Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                               gRPC) if the service receives a value outside of the supported range.
                        description: The minimum detectable effect for the metric.
                    description: >-
                      The metric is used to indicate if the experiment is
                      successful.
                  guardrailMetric:
                    type: object
                    properties:
                      nonInferiorityMargin:
                        type: object
                        properties:
                          value:
                            type: string
                            description: |-
                              The decimal value, as a string.

                               The string representation consists of an optional sign, `+` (`U+002B`)
                               or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                               ("the integer"), optionally followed by a fraction, optionally followed
                               by an exponent.

                               The fraction consists of a decimal point followed by zero or more decimal
                               digits. The string must contain at least one digit in either the integer
                               or the fraction. The number formed by the sign, the integer and the
                               fraction is referred to as the significand.

                               The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                               followed by one or more decimal digits.

                               Services **should** normalize decimal values before storing them by:

                                 - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                 - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                 - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                 - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                               Services **may** perform additional normalization based on its own needs
                               and the internal decimal implementation selected, such as shifting the
                               decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                               Additionally, services **may** preserve trailing zeroes in the fraction
                               to indicate increased precision, but are not required to do so.

                               Note that only the `.` character is supported to divide the integer
                               and the fraction; `,` **should not** be supported regardless of locale.
                               Additionally, thousand separators **should not** be supported. If a
                               service does support them, values **must** be normalized.

                               The ENBF grammar is:

                                   DecimalString =
                                     [Sign] Significand [Exponent];

                                   Sign = '+' | '-';

                                   Significand =
                                     Digits ['.'] [Digits] | [Digits] '.' Digits;

                                   Exponent = ('e' | 'E') [Sign] Digits;

                                   Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                               Services **should** clearly document the range of supported values, the
                               maximum supported precision (total number of digits), and, if applicable,
                               the scale (number of digits after the decimal point), as well as how it
                               behaves when receiving out-of-bounds values.

                               Services **may** choose to accept values passed as input even when the
                               value has a higher precision or scale than the service supports, and
                               **should** round the value to fit the supported scale. Alternatively, the
                               service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                               if precision would be lost.

                               Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                               gRPC) if the service receives a value outside of the supported range.
                        description: The non-inferiority margin for the metric.
                    description: >-
                      The metric is used to indicate if the experiment is
                      harmful.
                  preferredDirection:
                    type: string
                    enum:
                      - PREFERRED_DIRECTION_UNSPECIFIED
                      - INCREASE
                      - DECREASE
                    description: The preferred direction for the metric.
                required:
                  - metric
              description: 'Deprecated: use metrics instead.'
            metrics:
              type: array
              items:
                type: object
                properties:
                  metric:
                    type: string
                  successMetric:
                    type: object
                    properties:
                      minimumDetectableEffect:
                        type: object
                        properties:
                          value:
                            type: string
                            description: |-
                              The decimal value, as a string.

                               The string representation consists of an optional sign, `+` (`U+002B`)
                               or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                               ("the integer"), optionally followed by a fraction, optionally followed
                               by an exponent.

                               The fraction consists of a decimal point followed by zero or more decimal
                               digits. The string must contain at least one digit in either the integer
                               or the fraction. The number formed by the sign, the integer and the
                               fraction is referred to as the significand.

                               The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                               followed by one or more decimal digits.

                               Services **should** normalize decimal values before storing them by:

                                 - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                 - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                 - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                 - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                               Services **may** perform additional normalization based on its own needs
                               and the internal decimal implementation selected, such as shifting the
                               decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                               Additionally, services **may** preserve trailing zeroes in the fraction
                               to indicate increased precision, but are not required to do so.

                               Note that only the `.` character is supported to divide the integer
                               and the fraction; `,` **should not** be supported regardless of locale.
                               Additionally, thousand separators **should not** be supported. If a
                               service does support them, values **must** be normalized.

                               The ENBF grammar is:

                                   DecimalString =
                                     [Sign] Significand [Exponent];

                                   Sign = '+' | '-';

                                   Significand =
                                     Digits ['.'] [Digits] | [Digits] '.' Digits;

                                   Exponent = ('e' | 'E') [Sign] Digits;

                                   Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                               Services **should** clearly document the range of supported values, the
                               maximum supported precision (total number of digits), and, if applicable,
                               the scale (number of digits after the decimal point), as well as how it
                               behaves when receiving out-of-bounds values.

                               Services **may** choose to accept values passed as input even when the
                               value has a higher precision or scale than the service supports, and
                               **should** round the value to fit the supported scale. Alternatively, the
                               service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                               if precision would be lost.

                               Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                               gRPC) if the service receives a value outside of the supported range.
                        description: >-
                          A representation of a decimal value, such as 2.5.
                          Clients may convert values
                           into language-native decimal formats, such as Java's [BigDecimal][] or
                           Python's [decimal.Decimal][].

                           [BigDecimal]:
                           https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html
                           [decimal.Decimal]: https://docs.python.org/3/library/decimal.html
                  guardrailMetric:
                    type: object
                    properties:
                      nonInferiorityMargin:
                        type: object
                        properties:
                          value:
                            type: string
                            description: |-
                              The decimal value, as a string.

                               The string representation consists of an optional sign, `+` (`U+002B`)
                               or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
                               ("the integer"), optionally followed by a fraction, optionally followed
                               by an exponent.

                               The fraction consists of a decimal point followed by zero or more decimal
                               digits. The string must contain at least one digit in either the integer
                               or the fraction. The number formed by the sign, the integer and the
                               fraction is referred to as the significand.

                               The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)
                               followed by one or more decimal digits.

                               Services **should** normalize decimal values before storing them by:

                                 - Removing an explicitly-provided `+` sign (`+2.5` -{">"} `2.5`).
                                 - Replacing a zero-length integer value with `0` (`.5` -{">"} `0.5`).
                                 - Coercing the exponent character to lower-case (`2.5E8` -{">"} `2.5e8`).
                                 - Removing an explicitly-provided zero exponent (`2.5e0` -{">"} `2.5`).

                               Services **may** perform additional normalization based on its own needs
                               and the internal decimal implementation selected, such as shifting the
                               decimal point and exponent value together (example: `2.5e-1` {"<"}-{">"} `0.25`).
                               Additionally, services **may** preserve trailing zeroes in the fraction
                               to indicate increased precision, but are not required to do so.

                               Note that only the `.` character is supported to divide the integer
                               and the fraction; `,` **should not** be supported regardless of locale.
                               Additionally, thousand separators **should not** be supported. If a
                               service does support them, values **must** be normalized.

                               The ENBF grammar is:

                                   DecimalString =
                                     [Sign] Significand [Exponent];

                                   Sign = '+' | '-';

                                   Significand =
                                     Digits ['.'] [Digits] | [Digits] '.' Digits;

                                   Exponent = ('e' | 'E') [Sign] Digits;

                                   Digits = \{ '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };

                               Services **should** clearly document the range of supported values, the
                               maximum supported precision (total number of digits), and, if applicable,
                               the scale (number of digits after the decimal point), as well as how it
                               behaves when receiving out-of-bounds values.

                               Services **may** choose to accept values passed as input even when the
                               value has a higher precision or scale than the service supports, and
                               **should** round the value to fit the supported scale. Alternatively, the
                               service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)
                               if precision would be lost.

                               Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in
                               gRPC) if the service receives a value outside of the supported range.
                        description: >-
                          A representation of a decimal value, such as 2.5.
                          Clients may convert values
                           into language-native decimal formats, such as Java's [BigDecimal][] or
                           Python's [decimal.Decimal][].

                           [BigDecimal]:
                           https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html
                           [decimal.Decimal]: https://docs.python.org/3/library/decimal.html
                  preferredDirection:
                    type: string
                    enum:
                      - PREFERRED_DIRECTION_UNSPECIFIED
                      - INCREASE
                      - DECREASE
                  enforcementLevel:
                    type: string
                    enum:
                      - ENFORCEMENT_LEVEL_UNSPECIFIED
                      - SUGGESTED
                      - REQUIRED
                    description: |-
                      How this metric is enforced on experiments.
                       REQUIRED: always included, cannot be removed by the experimenter.
                       SUGGESTED: auto-added when creating an experiment, can be removed.
                       ENFORCEMENT_LEVEL_UNSPECIFIED: linked but not auto-added (associated).
                required:
                  - metric
              description: All metrics configured on the surface, with enforcement level.
          description: Configuration for metrics the surface.
        automatedActions:
          type: array
          items:
            type: object
            properties:
              trigger:
                type: object
                properties:
                  activityTrigger:
                    type: object
                    properties:
                      kind:
                        type: string
                      resource:
                        type: string
                  stateTrigger:
                    type: object
                    properties:
                      state:
                        type: string
                      resource:
                        type: string
              action:
                type: object
                properties:
                  executeFunctionAction:
                    type: object
                    properties:
                      function:
                        type: string
                      parameters:
                        type: object
                        description: >-
                          `Struct` represents a structured data value,
                          consisting of fields
                           which map to dynamically typed values. In some languages, `Struct`
                           might be supported by a native representation. For example, in
                           scripting languages like JS a struct is represented as an
                           object. The details of that representation are described together
                           with the proto support for the language.

                           The JSON representation for `Struct` is JSON object.
                  pagerdutyAction:
                    type: object
                    properties:
                      pdKey:
                        type: string
                      title:
                        type: string
                      description:
                        type: string
                      severity:
                        type: string
                        enum:
                          - critical
                          - warning
                          - info
                          - error
                    required:
                      - pdKey
                      - severity
                  transitionAction:
                    type: object
                    properties:
                      action:
                        type: string
                      parameters:
                        type: object
                        description: >-
                          `Struct` represents a structured data value,
                          consisting of fields
                           which map to dynamically typed values. In some languages, `Struct`
                           might be supported by a native representation. For example, in
                           scripting languages like JS a struct is represented as an
                           object. The details of that representation are described together
                           with the proto support for the language.

                           The JSON representation for `Struct` is JSON object.
          description: Actions to trigger once the metric starts tanking
        stakeholders:
          type: array
          items:
            type: object
            properties:
              identity:
                type: string
                description: Reference to the identity who is the stakeholder.
              role:
                type: string
                description: 'The role of the person: Product, Engineering, ...'
            required:
              - identity
              - role
          description: |-
            People with specific roles or responsibilities for the surface,
             such as product or engineering leads.
      required:
        - displayName
        - createTime
        - updateTime
        - creator
        - updater
  securitySchemes:
    admin:
      type: http
      scheme: bearer

````