get:
  tags:
    - All Resources
    - Ads
    - Products
  summary: 'Search for Projects'
  operationId: projects.search
  description: >-
    Resource route for getting a list of `Project`
    with filtering based on provided parameters.

    Projects are synonymous with Recording Projects in GRAS.
    Projects connect various resources like Repertoire Owners and Labels to Products and Artists.

    At least one identifying parameter must be provided when querying this endpoint
    (e.g.: `artist_id`, `rep_owner_key, `product_id`).
  security:
    - bearerAuth: []
  parameters:
    - $ref: '../parameters/start_date_optional.yaml'
    - $ref: '../parameters/end_date_optional.yaml'
    - $ref: '../parameters/artist_id.yaml'
    - $ref: '../parameters/product_version_no.yaml'
    - $ref: '../parameters/rep_owner_key_array.yaml'
    - $ref: '../parameters/product_id_array.yaml'
    - $ref: '../parameters/limit.yaml'
    - $ref: '../parameters/offset.yaml'
    - $ref: '../parameters/sort_by_projects.yaml'
    - $ref: '../parameters/sort_order.yaml'
    - $ref: '../parameters/limit_range.yaml'
    - $ref: '../parameters/cursor.yaml'
  responses:
    200:
      $ref: '../responses/ProjectsResponse.yaml'
    400:
      $ref: '../responses/InvalidInput.yaml'
    401:
      $ref: '../responses/Unauthorized.yaml'
    500:
      $ref: '../responses/InternalError.yaml'