x-generator: NSwag v13.18.2.0 (NJsonSchema v10.8.0.0 (Newtonsoft.Json v11.0.0.0))
swagger: '2.0'
info:
  title: Absorb Integration API
  version: v1
consumes:
  - application/json
produces:
  - application/json
paths:
  /venues:
    get:
      tags:
        - Venues
      summary: List venues.
      operationId: Venues_GetVenues
      parameters:
        - type: string
          name: _filter
          in: query
          description: >-
            One or more filter operations to be performed on the collection.

            The referenced fields must allow filtering. See the respective
            report's schema for which fields can be filtered. 
                        
            Supports most of the [OData filter
            syntax](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter).
                        
            Supported operations:
                * eq,
                * ne,
                * gt,
                * ge,
                * lt,
                * le,
                * and,
                * or,
                * not,
                * ()

            Supported functions:
                * substringof('value',fieldName),
                * endswith(fieldName,'value'),
                * startswith(fieldName,'value'),
                * tolower(fieldName),
                * toupper(fieldName)
                        
            Examples:

            * _filter=`firstname eq 'Jeffrey'`

            * _filter=`id eq guid'a14c149a-2ce0-41d4-b532-02189ad3cb22'`

            * _filter=`startsWith(lastname,'leb') or dateAdded ge
            datetime'1998-03-06T20:38:07Z'`
          x-nullable: true
        - type: string
          name: _sort
          in: query
          description: >-
            Optional list of comma-separated fields to sort the collection by.


            The referenced fields must allow sorting. See the respective
            report's schema for which fields can be sorted. 

            If not specified, all report fields are returned.


            To sort in a descending manner, prefix the field name with `-`. For
            example, 

            `_sort=name,-date`, sorts the collection of items by `name`
            (ascending) 

            and then by `date` (descending).
          x-nullable: true
        - type: string
          name: _limit
          in: query
          description: >-
            The maximum number of items to return in the current page of the
            collection.
          x-nullable: true
        - type: string
          name: _offset
          in: query
          description: The number of pages to offset into the collection.
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/VenueResource'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
    post:
      tags:
        - Venues
      summary: Create venue.
      operationId: Venues_CreateVenue
      parameters:
        - name: createVenueRequestModel
          in: body
          description: The request to create a venue.
          schema:
            $ref: '#/definitions/CreateVenueRequest'
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '201':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedVenueResource'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /venues/{id}:
    get:
      tags:
        - Venues
      summary: Get venue.
      operationId: Venues_GetVenue
      parameters:
        - type: string
          name: id
          in: path
          required: true
          description: The venue ID.
          format: guid
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedVenueResource'
        '404':
          x-nullable: false
          description: Venue not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
    put:
      tags:
        - Venues
      summary: Update venue.
      operationId: Venues_UpdateVenue
      parameters:
        - type: string
          name: id
          in: path
          required: true
          description: The unique venue identifier.
          format: guid
          x-nullable: false
        - name: updateVenueRequestModel
          in: body
          description: The model of the venue data.
          schema:
            $ref: '#/definitions/UpdateVenueRequestBody'
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '201':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedVenueResource'
        '404':
          x-nullable: false
          description: Venue not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
definitions:
  VenueResource:
    type: object
    description: Represents information about a venue in the Integration API.
    properties:
      id:
        type: string
        description: |-
          `Filterable` 

          The unique venue identifier.
        format: guid
      name:
        type: string
        description: |-
          `Default Sort` `Sortable` `Filterable` 

          The venue's name.
      venueType:
        description: >-
          `Sortable` `Filterable` 


          The venue's type.


          Possible Enum Values: `0 = Classroom` `1 = ConnectPro` `2 = WebEx` `3
          = GoToMeeting` `4 = Url` `5 = ZoomMeeting` `6 = ZoomWebinar` `7 =
          TeamsMeeting` `8 = WebexMeeting` 
        allOf:
          - $ref: '#/definitions/VenueType'
      url:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's virtual meeting space.
      phoneNumber:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's phone number.
      address:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's street address.
      city:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's city.
      province:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's province.
      postalCode:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's postal code/zip.
      country:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's country.
      maxClassSize:
        type: integer
        description: |-
          `Sortable` `Filterable` 

          The venue's maximum class size.
        format: int32
      details:
        type: string
        description: |-
          `Filterable` 

          The venue's details.
      meetingId:
        type: string
        description: |-
          `Filterable` 

          The venue's meeting ID.
      username:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's username.
      password:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The venue's password.
  Link:
    type: object
    properties:
      Rel:
        $ref: '#/definitions/Relation'
      Items:
        type: array
        items:
          $ref: '#/definitions/LinkItem'
  Relation:
    type: object
    properties:
      Name:
        type: string
  LinkItem:
    type: object
    properties:
      Href:
        type: string
      Name:
        type: string
      Templated:
        type: boolean
      Type:
        type: string
      Deprecation:
        type: string
      Profile:
        type: string
      Title:
        type: string
      Hreflang:
        type: string
  IEmbeddedResource:
    type: object
    x-abstract: true
    properties:
      Name:
        type: string
      Resources:
        type: array
        items:
          $ref: '#/definitions/IResource'
  IResource:
    type: object
    x-abstract: true
    properties:
      Links:
        type: array
        items:
          $ref: '#/definitions/Link'
      EmbeddedResources:
        type: array
        items:
          $ref: '#/definitions/IEmbeddedResource'
  VenueType:
    type: integer
    description: Defines an enumeration for the venue types.
    x-enumNames:
      - Classroom
      - ConnectPro
      - WebEx
      - GoToMeeting
      - Url
      - ZoomMeeting
      - ZoomWebinar
      - TeamsMeeting
      - WebexMeeting
    enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
  GenericErrorResponse:
    type: object
    description: |-
      This class is NOT to be used as an actual response. This is to be used as
      the return type for non-200 responses in `SwaggerResponse` attributes.
    properties:
      validations:
        type: array
        description: The validations (if any) which caused the error.
        items:
          type: string
      code:
        description: The status code returned.
        allOf:
          - $ref: '#/definitions/HttpStatusCode'
      message:
        type: string
        description: The error message.
      term:
        type: string
        description: The general error term.
      _meta:
        type: object
        description: 'A list of meta data (if any). '
        additionalProperties:
          type: string
  HttpStatusCode:
    type: integer
    description: ''
    x-enumNames:
      - Continue
      - SwitchingProtocols
      - OK
      - Created
      - Accepted
      - NonAuthoritativeInformation
      - NoContent
      - ResetContent
      - PartialContent
      - MultipleChoices
      - Ambiguous
      - MovedPermanently
      - Moved
      - Found
      - Redirect
      - SeeOther
      - RedirectMethod
      - NotModified
      - UseProxy
      - Unused
      - TemporaryRedirect
      - RedirectKeepVerb
      - BadRequest
      - Unauthorized
      - PaymentRequired
      - Forbidden
      - NotFound
      - MethodNotAllowed
      - NotAcceptable
      - ProxyAuthenticationRequired
      - RequestTimeout
      - Conflict
      - Gone
      - LengthRequired
      - PreconditionFailed
      - RequestEntityTooLarge
      - RequestUriTooLong
      - UnsupportedMediaType
      - RequestedRangeNotSatisfiable
      - ExpectationFailed
      - UpgradeRequired
      - InternalServerError
      - NotImplemented
      - BadGateway
      - ServiceUnavailable
      - GatewayTimeout
      - HttpVersionNotSupported
  NonPagedVenueResource:
    type: object
    description: >-
      This class is NOT to be used as an actual response. This is to be used as
      the `SwaggerResponse` return type for

      non-paginated endpoints that return VenueResource.
    properties:
      id:
        type: string
        description: The unique venue identifier.
        format: guid
      name:
        type: string
        description: The venue's name.
      venueType:
        description: >-
          The venue's type.


          Possible Enum Values: `0 = Classroom` `1 = ConnectPro` `2 = WebEx` `3
          = GoToMeeting` `4 = Url` `5 = ZoomMeeting` `6 = ZoomWebinar` `7 =
          TeamsMeeting` `8 = WebexMeeting` 
        allOf:
          - $ref: '#/definitions/VenueType'
      url:
        type: string
        description: The venue's virtual meeting space.
      phoneNumber:
        type: string
        description: The venue's phone number.
      address:
        type: string
        description: The venue's street address.
      city:
        type: string
        description: The venue's city.
      province:
        type: string
        description: The venue's province.
      postalCode:
        type: string
        description: The venue's postal code/zip.
      country:
        type: string
        description: The venue's country.
      maxClassSize:
        type: integer
        description: The venue's maximum class size.
        format: int32
      details:
        type: string
        description: The venue's details.
      meetingId:
        type: string
        description: The venue's meeting ID.
      username:
        type: string
        description: The venue's username.
      password:
        type: string
        description: The venue's password.
  CreateVenueRequest:
    type: object
    description: The request to create a venue.
    required:
      - name
      - venueType
    properties:
      id:
        type: string
        description: >-
          The unique identifier to use for the venue. If not supplied one will
          be created.
        format: guid
      name:
        type: string
        description: The venue's name.
        maxLength: 255
        minLength: 0
      venueType:
        description: >-
          The venue's type.


          Possible Enum Values: `0 = Classroom` `1 = ConnectPro` `2 = WebEx` `3
          = GoToMeeting` `4 = Url` `5 = ZoomMeeting` `6 = ZoomWebinar` `7 =
          TeamsMeeting` `8 = WebexMeeting` 
        allOf:
          - $ref: '#/definitions/VenueType'
      url:
        type: string
        description: The venue's virtual meeting space.
        maxLength: 255
        minLength: 0
      phoneNumber:
        type: string
        description: The venue's phone number.
        maxLength: 255
        minLength: 0
      address:
        type: string
        description: The venue's street address.
        maxLength: 4000
        minLength: 0
      city:
        type: string
        description: The venue's city.
        maxLength: 255
        minLength: 0
      province:
        type: string
        description: The venue's province.
      postalCode:
        type: string
        description: The venue's postal code/zip.
        maxLength: 255
        minLength: 0
      country:
        type: string
        description: The venue's country.
      maxClassSize:
        type: integer
        description: The venue's maximum class size.
        format: int32
        maximum: 2147483647
        minimum: 0
      details:
        type: string
        description: The venue's details.
        maxLength: 2147483647
        minLength: 0
      meetingId:
        type: string
        description: The venue's meeting ID.
        maxLength: 255
        minLength: 0
      username:
        type: string
        description: The venue's username.
        maxLength: 255
        minLength: 0
      password:
        type: string
        description: The venue's password.
        maxLength: 255
        minLength: 0
  UpdateVenueRequestBody:
    type: object
    description: The request body to update a venue.
    properties:
      name:
        type: string
        description: The venue's name.
        maxLength: 255
        minLength: 0
      venueType:
        description: >-
          The venue's type.


          Possible Enum Values: `0 = Classroom` `1 = ConnectPro` `2 = WebEx` `3
          = GoToMeeting` `4 = Url` `5 = ZoomMeeting` `6 = ZoomWebinar` `7 =
          TeamsMeeting` `8 = WebexMeeting` 
        allOf:
          - $ref: '#/definitions/VenueType'
      url:
        type: string
        description: The venue's virtual meeting space.
        maxLength: 255
        minLength: 0
      phoneNumber:
        type: string
        description: The venue's phone number.
        maxLength: 255
        minLength: 0
      address:
        type: string
        description: The venue's street address.
        maxLength: 4000
        minLength: 0
      city:
        type: string
        description: The venue's city.
        maxLength: 255
        minLength: 0
      province:
        type: string
        description: The venue's province.
      postalCode:
        type: string
        description: The venue's postal code/zip.
        maxLength: 255
        minLength: 0
      country:
        type: string
        description: The venue's country.
      maxClassSize:
        type: integer
        description: The venue's maximum class size.
        format: int32
        maximum: 2147483647
        minimum: 0
      details:
        type: string
        description: The venue's details.
        maxLength: 2147483647
        minLength: 0
      meetingId:
        type: string
        description: The venue's meeting ID.
        maxLength: 255
        minLength: 0
      username:
        type: string
        description: The venue's username.
        maxLength: 255
        minLength: 0
      password:
        type: string
        description: The venue's password.
        maxLength: 255
        minLength: 0
securityDefinitions:
  api_key:
    type: apiKey
    name: x-api-key
    in: header
tags:
  - name: Venues
x-servers:
  - url: https://rest.myabsorb.com
    description: US
  - url: https://rest.myabsorb.ca
    description: CA
  - url: https://rest.myabsorb.eu
    description: EU
  - url: https://rest.myabsorb.com.au
    description: AU
