get:
    summary: Returns a list of (optionally filtered) contacts.
    description: Returns the list of (optionally filtered) contacts which are visible to the current user or any of it's assumed roles.
    tags:
        - hs-office-contacts
    operationId: listContacts
    parameters:
        - $ref: 'auth.yaml#/components/parameters/currentUser'
        - $ref: 'auth.yaml#/components/parameters/assumedRoles'
        - name: name
          in: query
          required: false
          schema:
              type: string
          description: Prefix of caption to filter the results.
    responses:
        "200":
            description: OK
            content:
                'application/json':
                    schema:
                        type: array
                        items:
                            $ref: 'hs-office-contact-schemas.yaml#/components/schemas/HsOfficeContact'
        "401":
            $ref: 'error-responses.yaml#/components/responses/Unauthorized'
        "403":
            $ref: 'error-responses.yaml#/components/responses/Forbidden'

post:
    summary: Adds a new contact.
    tags:
        - hs-office-contacts
    operationId: addContact
    parameters:
        - $ref: 'auth.yaml#/components/parameters/currentUser'
        - $ref: 'auth.yaml#/components/parameters/assumedRoles'
    requestBody:
        content:
            'application/json':
                schema:
                    $ref: 'hs-office-contact-schemas.yaml#/components/schemas/HsOfficeContactInsert'
        required: true
    responses:
        "201":
            description: Created
            content:
                'application/json':
                    schema:
                        $ref: 'hs-office-contact-schemas.yaml#/components/schemas/HsOfficeContact'
        "401":
            $ref: 'error-responses.yaml#/components/responses/Unauthorized'
        "403":
            $ref: 'error-responses.yaml#/components/responses/Forbidden'
        "409":
            $ref: 'error-responses.yaml#/components/responses/Conflict'