$comment: Adapted from https://raw.githubusercontent.com/opengeospatial/ogcapi-records/master/core/openapi/schemas/contact.yaml
type: object
description: 'Identification of, and means of communication with, person responsible

  for the resource.'
anyOf:
- required:
  - name
- required:
  - organization
properties:
  identifier:
    type: string
    description: A value uniquely identifying a contact.
  name:
    type: string
    description: The name of the responsible person.
  position:
    type: string
    description: The name of the role or position of the responsible person taken
      from the organization's formal organizational hierarchy or chart.
  organization:
    type: string
    description: Organization/affiliation of the contact.
  logo:
    description: Graphic identifying a contact. The link relation should be `icon`
      and the media type should be an image media type.
    allOf:
    - $ref: https://opengeospatial.github.io/bblocks/annotated-schemas/ogc-utils/json-link/schema.yaml
    - type: object
      required:
      - rel
      - type
      properties:
        rel:
          enum:
          - icon
  phones:
    type: array
    description: Telephone numbers at which contact can be made.
    items:
      type: object
      required:
      - value
      properties:
        value:
          type: string
          description: The value is the phone number itself.
          pattern: ^\+[1-9]{1}[0-9]{3,14}$
          example: '+14165550142'
        roles:
          description: The type of phone number (e.g. home, work, fax, etc.).
          $ref: https://ogcincubator.github.io/bblocks-ogcapi-records/build/annotated/api/records/v1/schemas/roles/schema.yaml
  emails:
    type: array
    description: Email addresses at which contact can be made.
    items:
      type: object
      required:
      - value
      properties:
        value:
          type: string
          description: The value is the email number itself.
          format: email
        roles:
          description: The type of email (e.g. home, work, etc.).
          $ref: https://ogcincubator.github.io/bblocks-ogcapi-records/build/annotated/api/records/v1/schemas/roles/schema.yaml
  addresses:
    type: array
    description: Physical location at which contact can be made.
    items:
      type: object
      properties:
        deliveryPoint:
          type: array
          description: Address lines for the location.
          items:
            type: string
        city:
          type: string
          description: City for the location.
        administrativeArea:
          type: string
          description: State or province of the location.
        postalCode:
          type: string
          description: ZIP or other postal code.
        country:
          type: string
          description: Country of the physical address.  ISO 3166-1 is recommended.
        roles:
          description: The type of address (e.g. office, home, etc.).
          $ref: https://ogcincubator.github.io/bblocks-ogcapi-records/build/annotated/api/records/v1/schemas/roles/schema.yaml
  links:
    type: array
    description: On-line information about the contact.
    items:
      allOf:
      - $ref: https://opengeospatial.github.io/bblocks/annotated-schemas/ogc-utils/json-link/schema.yaml
      - type: object
        required:
        - type
  hoursOfService:
    type: string
    description: Time period when the contact can be contacted.
    example: 'Hours: Mo-Fr 10am-7pm Sa 10am-22pm Su 10am-21pm'
  contactInstructions:
    type: string
    description: 'Supplemental instructions on how or when to contact the

      responsible party.'
  roles:
    description: The set of named duties, job functions and/or permissions associated
      with this contact. (e.g. developer, administrator, etc.).
    $ref: https://ogcincubator.github.io/bblocks-ogcapi-records/build/annotated/api/records/v1/schemas/roles/schema.yaml
