swagger: '2.0'
info:
  title: BlueJeans Events REST API
  description: >

    ## *Events* - Large scale broadcasts to Reach More People ex. Conferences, Marketing Announcements etc.
  
    When you need to hold large gatherings (typically > 150 and going up to several tens of thousands), you will want to use BlueJeans' Events.  These API's allow your applications to quickly integrate the BlueJeans Event service into your applications.

    <b>21/02/2023 - Update to Events REST APIs with latest information</b><br/>
    5/05/2020 Release P1.35.20200505 - Update Authorization steps to provide pointer to Client ID/Secret generation<br/>
    9/30/2019 Release P1.35.20190930 - Clarify steps in Authorization pop-up dialog<br/>
    3/17/2019 Release P1.35.20190317 - Add Delegation Fields, Incorporate Webhook API definitions <br/>
    9/23/2018 Release P1.31.20180923 - Release P1.31 and support for Webhooks <br/>
    8/07/2018 Release P1.30.20180808 - Expose P1.30 released API's <br/>
    6/25/2018 Release P1.29 -  Updated Event Scheduling API's to allow definition of questions.</br>
    
    <hr>


    <h2 id='gs' class="info" onclick="hideit('gs')"><span id="gsicon" class="glyphicon glyphicon-chevron-right"></span> Getting Started </h2>

    <div id="gsbody" style="display:none">
    Before you start using BlueJeans' APIs, you must first have a BlueJeans account enabled for API Access.  Contact <a href="mailto:Support@BlueJeans.com)">BlueJeans Support</a> for assistance.  <br /><br />Once you have an account, you may start writing application code to authenticate and make API calls.  *Alternatively*, you can use this developer site to test the BlueJeans' APIs and develop a level of familiarity before you write production code.  <br />
    
    
    ### To Make API Calls from This Site

    If you want to use this developer site to try various BlueJeans' APIs, here are the steps required to authenticate and enable your Developer Session to place API calls.

    1. Choose Method for Authenticating
         * Click on the desired Authentication method from below.
         * Click on the **Try It Out** button.
    1. Make Authentication request
         * Follow APIs instructions and input the API parameters.
         * Click on the blue **Execute** button.
         * If successful, the API returns with JSON data containing a field called **access_token**.  Copy/save this value.
    1. Authorize BlueJeans Developer Session.
         * Click on the green **Authorize button**. 
         * The site will show you a pop-up window for authorization.
         * Enter *two things* into the field 
            1. The string:  Bearer (followed by a space)
            2. Your access token            
         * Click on the **Authorize** button
    
    Your current BlueJeans developer session is now authenticated and ready to place Event API calls.  The web site will automatically include your access token on any API calls you make.

    </div>

    <hr>
      
    
  termsOfService:
    name: Terms of service
    url: https://www.bluejeans.com/terms-of-service
  license:
    name: Commercial
    url: https://www.bluejeans.com/terms-and-conditions
  version: 1.35.20200505
  contact:
    name: API Developer Support
    url: https://support.bluejeans.com/s/contactsupport

host: a2m.bluejeans.com
securityDefinitions:
  Bearer:
    type: apiKey
    name: Authorization
    in: header
    description: >
      To authorize this web session, follow these steps to enter an <b>access token</b> into the field below:
      <ol>
        <li>Type the word <b>Bearer</b> followed by a space, and</li>
        <li>The <b>access token</b> you received</li>
      </ol>
      <hr>
      <i>For example:</i>  <span style="background-color:#fcdbdb" >Bearer</span> <span style="background-color:#fcdbdb">  343a4321bf123...</span>
      <hr>
      
security:
  - Bearer: []
schemes:
  - https

tags:
- name: Authentication
  description:  Initiate an Event session with BlueJeans
- name: Scheduling
  description:  Scheduling User Events 
- name: Registration
  description:  User Registration for Events
- name: Instances
  description:  Instance Access for User Events
- name: Event
  description:  Manage User Events
- name: Administration
  description:  Manage Webhook Configuration

paths:
# ---> Authentication
  /api/security/v1/oauth/accesstoken?User:
    post:
      summary: Authenticate via User App Grant
      description: This API performs an authentication to request access to user-level API resources.  Call this API and provide the basic OAuth ID and Secret ID tokens. <br />The email address must be associated with a BlueJeans account in your Enterprise. <br />**NOTE:** <br />&nbsp;&nbsp;When calling this API, you must set the field, **grant_type** to equal "**user_app**" (string).
      tags: 
       - Authentication
      security: []
      consumes:
        - application/json
      parameters:
        - name: payload
          description: Contains information about the type of grant you are requesting. **Remember** the field *grant_type* must be set to *user_app*.
          in: body
          required: true
          schema:
            required:
              - grant_type
            properties:
              grant_type:
                type: string
                default: user_app
                description: The type of access token you are requesting. 
              properties:
                type: object
                properties:
                  client_id:
                    type: string
                    description: This is the *App Key* from the BlueJeans -> Admin -> Events -> Enterprise Apps web page.
                  client_secret:
                    type: string
                    description: This is the *App Key* from the BlueJeans -> Admin -> Events -> Enterprise Apps web page.
                  user_email:
                    type: string
                    description: Your email address.
      responses:
        '200':
          description: The information about the grant.
          schema:
            $ref: '#/definitions/UserGrant'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /api/security/v1/oauth/accesstoken?Enterprise:
    post:
      summary: Authenticate via Enterprise App Grant
      description: This API performs an authentication to an *application requesting access to enterprise-level* API resources.  Call this API and provide the basic OAuth ID and Secret ID tokens. <br />**NOTE:** <br />&nbsp;&nbsp;When calling this API, you must set the field, **grant_type** to equal "**enterprise_app**" (string).
      tags: 
       - Authentication
      security: []
      consumes:
        - application/json
      parameters:
        - name: payload
          description: Contains information about the type of grant you are requesting. **Remember**, the field *grant_type* must be set to *enterprise_app*.
          in: body
          required: true
          schema:
            required:
              - grant_type
            properties:
              grant_type:
                type: string
                default: enterprise_app
                description: The type of access token you are requesting. 
              properties:
                type: object
                properties:
                  client_id:
                    type: string
                    description: This is the *App Key* from the BlueJeans -> Admin -> Events -> Enterprise Apps web page.
                  client_secret:
                    type: string
                    description: This is the *App Key* from the BlueJeans -> Admin -> Events -> Enterprise Apps web page.
      responses:
        '200':
          description: The information about the grant.
          schema:
            $ref: '#/definitions/EnterpriseGrant'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            
  /api/security/v1/oauth/accesstoken:
    post:
      summary: Authenticate via Registration App Grant
      description: This API performs an authentication to request access to user registration API resources. Call this API and provide the basic OAuth ID, Secret ID tokens and api_key obtained from manage registration page.**NOTE:** <br />&nbsp;&nbsp;When calling this API, you must set the field, **grant_type** to equal "**registration_app**" (string).
      tags: 
       - Authentication
      security: []
      consumes:
        - application/json
      parameters:
        - name: payload
          description: Contains information about the type of grant you are requesting. **Remember** the field *grant_type* must be set to *registration_app*.
          in: body
          required: true
          schema:
            required:
              - grant_type
            properties:
              grant_type:
                type: string
                default: registration_app
                description: The type of access token you are requesting. 
              properties:
                type: object
                properties:
                  client_id:
                    type: string
                    description: This is the *App Key* from the BlueJeans -> Admin -> Events -> Enterprise Apps web page.
                  client_secret:
                    type: string
                    description: This is the *App Key* from the BlueJeans -> Admin -> Events -> Enterprise Apps web page.
      responses:
        '200':
          description: The information about the grant.
          schema:
            $ref: '#/definitions/RegistrationGrant'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

            

            
# ---> Scheduling
  /api/scheduling/v1/users/{userId}/events:
    get:
      summary: List all upcoming Events
      description: Call this API to retrieve the list of scheduled Events associated to a specified User ID.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: count
          in: query
          type: integer
          default: 20
          description: The count value indicates the number of records to fetch by this API call.
        - name: from
          in: query
          type: integer
          description: The date/time to search from (epoch format in milliseconds). 
        - name: nextPageKey
          in: query
          type: string
          default: 
          description: The paging index (GUID) for where to fetch the next set of Events records 
        - name: title
          in: query
          type: string
          description: This string can be used to do a search based on Event title
        - name: to
          in: query
          type: integer
          description: The date/time to search upto (epoch format in milliseconds).
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventBasicDetailsResponse'
        '500':
          description: Internal Server Error
        '403':
          description: Unauthorized access token
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
    post:
      summary: Create Event (single *or* recurring)
      description: Call this API to create an Event, or chain of recurring Events on behalf of the specified User.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: payload
          description: Contains attributes for the event you are creating.
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateEventRequest'
      responses:
        '201':
          description: Success.  The return value is information about the event.
          schema:
            type: object
            properties:
              id:
                type: string
                description: The ID of the newly created event.
        '400':
          description: Invalid Start or End Date , Subscription ID Missing , Invalid occurrence/frequency count(Event Recurrence)
        '403':
          description: Invalid Subscription , Scheduling Limit Reached
        '500':
          description: Invalid JSON Input , Moderator/Panelist/Attendee could not be set , Meet Me schedule meeting failed , Panelist meeting creation failed
        '501':
          description: PSTN conference could not be allocated
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            
            
            
            
  /api/scheduling/v1/users/{userId}/events/invited:
    get:
      summary: List all Events user has been invited
      description: Call this API to retrieve the list of the Events to which a specified user has been invited.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the invited user. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: count
          in: query
          type: integer
          default: 20
          description: The count value indicates the number of records to fetch by this API call.
        - name: from
          in: query
          type: integer
          description: The date/time to search from (epoch format in milliseconds). 
        - name: nextPageKey
          in: query
          type: string
          default: 
          description: The cursor for the next page of results. It can be found in the response of first call. You should pass this value as an input parameter for the consecutive calls. The value changes for every API call. 
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventInviteDetailsResponse'
        '404':
          description: User is not found
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            
  /api/scheduling/v1/users/{userId}/events/{eventId}:
    get:
      summary: Get Specific Event
      description: This API returns information about an Event with the spcified unique ID that is associated with the specified User ID.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: sendLiveStatus
          type: boolean
          in: query
          description: If true, send live Event status
      responses:
        '200':
          description: The information about the event.
          schema:
            $ref: '#/definitions/EventAPIInfo'
        '404':
          description: Could not find event
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
    put:
      summary: Edit an Event
      description:  This API will modify an existing Event associated with a specified unique Event ID belonging to the specified User.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: payload
          description: Contains event attributes that need to change.
          in: body
          required: true
          schema:
            $ref: '#/definitions/UpdateEventRequest'
      responses:
        '204':
          description: Success.
        '400':
          description: Invalid occurrence/frequency count(Event Recurrence)
        '403':
          description: Cannot edit event which is unsubscribed , Enterprise cannot be subscribed to new plan , Cannot edit event which was started previously
        '404':
          description: Cannot edit deleted scheduled event , Could not find scheduled event
        '500':
          description: Internal Server Error , Updation Failed for Event
        '501':
          description: PSTN conference could not be allocated.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
    delete:
      summary:  Delete Event
      description: This API will permanently unschedule and delete an occurrence of an Event.  
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: deleteMessage
          in: query
          description: The message you want to send to all invitees 
          type: string
        - name: occurenceStart
          in: query
          description: The start time (in milliseconds) of the occurrence, if specifying a particular occurence 
          type: integer
        - name: occurenceEnd
          in: query
          description: The end time (in milliseconds) of the occurrence, if specifying a particular occurence 
          type: integer
      responses:
        '204':
          description: Success.
        '304':
          description: Already deleted the scheduled event.
        '403':
          description: Expired event cannot be deleted
        '404':
          description: Could not find scheduled event
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

            
            

  /api/scheduling/v1/users/{userId}/events/{eventId}/invite:
    put:
      summary: Invite to Event
      description:  This API will invite a participant to an existing event
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: payload
          description: Contains event attributes that need to change.
          in: body
          required: true
          schema:
            $ref: '#/definitions/UpdateEventRequest'
      responses:
        '204':
          description: Success.
        '403':
          description: Cannot edit event which is unsubscribed , Enterprise cannot be subscribed to new plan , Cannot edit event which was started previously
        '500':
          description: Internal Server Error , Updation Failed for Event
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            
  /api/scheduling/v1/users/{userId}/events/{eventId}/recurring:
    get:
      summary: Get all instances of a recurring event
      description: This API returns detailed information about each recurring instance of a specified User's Event
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: count
          type: integer
          in: query
          description: The Number of records to fetch in this paginated API
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The information about the event.
          schema:
            $ref: '#/definitions/EventBasicDetailsResponse'
        '403':
          description: Unauthorized access token
        '500':
          description: Internal server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

  /api/scheduling/v1/users/{userId}/events/{eventId}/roles/{role}/invites:
    get:
      summary: List Event's invitees by role
      description: This API returns the list of all invitees for the specified event and role.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: role
          in: path
          description: The name of the role.
          required: true
          type: string
        - name: count
          type: integer
          default: 20
          in: query
          description: The Number of records to fetch in this paginated API
        - name: includeTotalCount
          type: boolean
          default: false
          in: query
          description: Return the total count of invitees.
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The information about the event.
          schema:
            $ref: '#/definitions/InvitedUserDetailResponse'
        '403':
          description: Unauthorized access token
        '500':
          description: Internal server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

          




          




  /api/scheduling/v1/enterprises/{enterpriseId}/events:
    get:
      summary: List Enterprise Events
      description: Call this API to retrieve the list of Events associated to your Enterprise 
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: count
          in: query
          type: integer
          default: 20
          description: The count value indicates the number of records to fetch by this API call.
        - name: from
          in: query
          type: integer
          description: The starting time (in milliseconds) where start search 
          required: true
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
        - name: to
          in: query
          type: integer
          description: The ending time (in milliseconds) where search should stop
          required: true
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EnterpriseEventBasicDetailsResponse'
        '500':
          description: Runtime error.
        default:
          description: Unexpected error
          schema:
           $ref: '#/definitions/Error'

  /api/scheduling/v1/enterprises/{enterpriseId}/events/{eventId}:
    get:
      summary: Get Info on an Enterprise Event
      description: Call this API to retrieve the scheduling information about the specified Enterprise Event.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: string
        - name: sendLiveStatus
          in: query
          type: boolean
          description: If true, send the live status of the event.
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventAPIInfo'
        '500':
          description: Runtime error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  
  
  /api/scheduling/v1/enterprises/{enterpriseId}/events/{eventId}/recurring:
    get:
      summary:  List all instances of Enterprise recurring event
      description: Call this API to retrieve the basic information for all instances of the specified recurring event.
      tags:
        - Scheduling
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: string
        - name: count
          in: query
          type: integer
          default: 20
          description: The count value indicates the number of records to fetch by this API call.
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventBasicDetailsResponse'
        '500':
          description: Internal Server error.
        '403':
          description: Unauthorized token access
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
 

# ---> Registration
  /api/registration/v1/users/{userId}/events/{eventId}/csv:
    get:
      summary: Download User Registration
      description: This API returns the details of a specified event as a CSV-downloaded file.
      tags:
        - Registration
      consumes:
        - application/json
      produces:
        - Multipart/form-data
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
      responses:
        '200':
          description: The information about the event contained in a Comma-Separated-Values file as a multipart/form-data
        '403':
          description: Invalid Authentication / Authorization.
        '500':
          description: Internal server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

  /api/registration/v1/users/{userId}/events/{eventId}/json:
    get:
      summary: Download User Registration
      description: This API returns the details of a specified event as a JSON object.
      tags:
        - Registration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: count
          in: query
          type: integer
          default: 20
          description: The count value indicates the number of records to fetch by this API call.
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The information about the event contained in a JSON object 
          schema:
            $ref: '#/definitions/UserRegistrationInfo'
        '403':
          description: Invalid Authentication / Authorization.
        '500':
          description: Internal server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

 
  /api/registration/v1/enterprises/{enterpriseId}/events/{eventId}/csv:
    get:
      summary: Download Enterprise User Registration
      description: This API returns the details of a specified Enterprise-event as a CSV-downloaded file.
      tags:
        - Registration
      consumes:
        - application/json
      produces:
        - Multipart/form-data
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
      responses:
        '200':
          description: The information about the event contained in a Comma-Separated-Values file as a multipart/form-data
        '403':
          description: Invalid Authentication / Authorization.
        '500':
          description: Internal server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            
            
            
  /api/registration/v1/enterprises/{enterpriseId}/events/{eventId}/json:
    get:
      summary: Download Enterprise User Registration
      description: This API returns the details of a specified Enterprise-event as a JSON object.
      tags:
        - Registration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: count
          in: query
          type: integer
          default: 20
          description: The count value indicates the number of records to fetch by this API call.
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The information about the event contained in a JSON object 
          schema:
            $ref: '#/definitions/UserRegistrationInfo'
        '403':
          description: Invalid Authentication / Authorization.
        '500':
          description: Internal server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'





            
# ---> Instance
  /api/instance/v1/users/{userId}/events/{eventId}/instances:
    get:
      summary: List past instances for an Event
      description: This API returns the past instances for the specified Event.
      tags:
        - Instances
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: count
          type: integer
          default: 20
          in: query
          description: The Number of records to fetch in this paginated API
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The information about the event.
          schema:
            $ref: '#/definitions/SpecifiedEventInstanceDetailsResponse'
        '500':
          description: Runtime error
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
              
  /api/instance/v1/users/{userId}/events/{eventId}/instances/{instanceId}:
    get:
      summary: Retrieve an Event Instance 
      description: This API retrieves a specific instance of an Event associated with a particular User
      tags:
        - Instances
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: string 
        - name: instanceId
          in: path
          description: The Unique ID (GUID) of a a particular instance associated to the Event.
          required: true
          type: string 
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventInstanceDetails'
        '404':
          description: Instance not found
        '500':
          description: Runtime error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'


  /api/instance/v1/users/{userId}/events/past:
    get:
      summary: List all past Event instances
      description: Call this API to retrieve the historical list of Event instances associated to a specified User ID.
      tags:
        - Instances
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: count 
          in: query
          type: integer
          default: 20
          description: The number of results to retrieve for this API call 
        - name: from
          in: query
          type: integer
          description: The starting date to search from (in milliseconds) 
        - name: nextPageKey
          in: query
          type: string
          default: 1
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventInstanceDetailsResponse'
        '500':
          description: Runtime error
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'


  /api/instance/v1/enterprises/{enterpriseId}/events/{eventId}/instances/{instanceId}:
    get:
      summary: Retrieve past Enterprise Event
      description: This API retrieves the details for the specified past Enterprise Event Instance.
      tags:
        - Instances
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The enterprise ID number.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: string 
        - name: instanceId
          in: path
          description: The instanceId for the event retrieved.
          required: true
          type: string
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EventInstanceDetails'
        '404':
          description: Instance not found.
        '500':
          description: Internal Server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

            
  /api/instance/v1/enterprises/{enterpriseId}/instances/past:
    get:
      summary: Retrieve past Instances for Enterprise 
      description:  This API retrieves the instances Events that occurred in the past for a specified Enterprise
      tags:
        - Instances
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: integer 
        - name: count
          in: query
          type: integer
          default: 20
          description: The number of results to retrieve for this API call 
        - name: from
          in: query
          description: The starting time for search (in milliseconds) 
          type: integer
        - name: nextPageKey
          in: query
          type: string
          description: The paging index (GUID) to retrieve 
        - name: to
          in: query
          description: The ending time for the search (in milliseconds) 
          type: integer
      responses:
        '200':
          description: The list of retrieved events.
          schema:
            $ref: '#/definitions/EnterpriseEventInstanceDetailsResponse'
        '500':
          description: Internal Server error.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            

  /api/instance/v1/recordings/users/{userId}:
    get:
      summary: List User's Recordings
      description: Retrieves the list of recordings owned by the specified Events user. This API requires a USER_APP token
      tags:
        - Instances
      consumes: application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          type: integer
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
        - name: count
          in: query
          type: integer
          default: 20
          description: The number of results to retrieve for this API call 
        - name: nextPageKey
          in: query
          type: string
          description: The paging index (GUID) for where to fetch the next set of Events records 
        - name: order
          in: query
          type: string
          default: descending
          description: The sorting order of returned recordings.
      responses:
        '200':
          description: The list of retrieved recordings.
          type: array
          items:
              $ref: '#/definitions/EventInstanceRecordingDetails'
        '404':
          description: Recordings not found
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
 

  /api/instance/v1/recordings/users/{userId}/events/{eventId}:
    get:
      summary: Get Event Recording
      description: Retrieves the recording for the specified user's event. This API requires a USER_APP token
      tags:
        - Instances
      consumes: application/json
      security: 
        - Bearer: []
      parameters:
        - name: userId
          in: path
          type: integer
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
        - name: eventId
          in: path
          type: string
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
        - name: count
          in: query
          type: integer
          default: 20
          description: The number of results to retrieve for this API call 
        - name: nextPageKey
          in: query
          type: string
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The list of retrieved recordings.
          $ref: '#/definitions/EventInstanceRecordingDetails'
        '404':
          description: Recording not found
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
       
      
  /api/instance/v1/recordings/enterprises/{enterpriseId}/events/{eventId}: 
    get:
      summary: Get Enterprise Event Recording
      description: Retrieves the recording for the specified enterprise and event. This API requires a ENTERPRISE_APP token.      
      tags:
        - Instances
      consumes: application/json
      security: 
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: integer 
        - name: eventId
          in: path
          type: string
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
        - name: count
          in: query
          type: integer
          default: 20
          description: The number of results to retrieve for this API call 
        - name: nextPageKey
          in: query
          type: string
          description: The paging index (GUID) for where to fetch the next set of Events records 
      responses:
        '200':
          description: The list of retrieved recordings.
          $ref: '#/definitions/EventInstanceRecordingDetails'
        '404':
          description: Recording not found
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
            
  /api/scheduling/v1/enterprise/{enterpriseId}/user/{userId}/move_recordings/from_user/{fromUserId}/to_user/{toUserId}: 
    post:
      summary: Move Recordings and Instances from one user to another.
      description: Moves all the existing recordings of the user account and also the future scheduled event instances. "transferType":"all" should also be sent as a part of request. It transfers all the events and recordings. This is the default behavior.       
      tags:
        - Instances
      consumes: application/json
      security: 
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
          type: integer 
        - name: userId
          in: path
          type: string
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
        - name: fromUserId
          in: path
          type: string
          description: The userId of the user from where the Events/recording needs to transferred.
          required: true
        - name: toUserId
          in: path
          type: string
          description: The userId of the user where the Events/recording needs to transferred. 
          required: true
      responses:
        '202':
          description: Transferred events successfully, Sent message to transfer recordings and instances.
        '400':
          description: Event transfer from userId doesn't belongs to provided enterpriseId.
        '401':
          description: Invalid access token.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'


# ---> Events
  /api/eventdetails/v1/users/{userId}/events/{eventId}/instances/{instanceId}/participants:
    get:
      summary: Retrieve File of participants
      description: This API retrieves a Comma-Separated-Values (CSV) file containing all the participants who joined the specified Event
      tags:
        - Event
      consumes:
        - application/json
      produces:
        - multipart/form-data
      security:
        - Bearer: []
      parameters:
        - name: userId
          in: path
          description: The ID of the event owner. This value is an integer that can be found from a call to the Get User Account Details endpoint under the BlueJeans Meetings API collection.
          required: true
          type: integer
        - name: eventId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
        - name: instanceId
          in: path
          required: true
          type: string
          description: The instanceId for the event retrieved.
      responses:
        '200':
          description: Multipart/form-data object with the list of retrieved events contained in a CSV file.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'


  /api/eventdetails/v1/enterprises/{enterpriseId}/events/{eventId}/instances/{instanceId}/participants:
    get:
      summary: Retrieve File of Enterprise participants
      description: This API retrieves a Comma-Separated-Values (CSV) file containing all the participants from the specified Enterprise domain who joined the specified Event
      tags:
        - Event
      consumes:
        - application/json
      produces:
        - Multipart/form-data
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The Unique ID (GUID) of the top-level Event.
          required: true
        - name: instanceId
          in: path
          required: true
          type: string
          description: The instanceId for the event retrieved.
      responses:
        '200':
          description: Multipart/form-data object with the list of retrieved events contained in a CSV file.
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'


# ---> Administration
  /api/webhook/v1/enterprises/{enterpriseId}/events/{eventId}:
    post:
      summary: Create Enterprise Webhook
      description: Call this API to define the type of activity reported by the webhook response and target URL where the response is sent.
      tags:
        - Administration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: webhookInfo
          in: body
          description: Configuration of Webhook trigger
          required: true
          schema:
            $ref:  '#/definitions/WebHookRequest'        
      responses:
        '204':
          description: Success.  (No data returned).
        '400':
          description: Invalid Webhook Settings.
        '500':
          description: Internal Server Error.
  /api/webhook/v1/enterprises/{enterpriseId}/events/{eventId}/type/{webhookType}:
    get:
      summary: Show Enterprise Webhook
      description: Call this API to retrieve a particular enterprise-wide webhook.
      tags:
        - Administration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: webhookType
          in: path
          description: The categorical type of webhook you wish to delete [ATTENDEE_INFO,EVENT_STATE]
          required: true
          type: string
          enum: [ATTENDEE_INFO,EVENT_STATE]
      responses:
        '200':
          description: Success.
          schema:
            $ref:  '#/definitions/WebHookRequest'        
        '400':
          description: Invalid Webhook Type.
        '404':
          description: Webhook Type not Found for this Event.
        '500':
          description: Internal Server Error.
    delete:
      summary: Delete Enterprise Webhook
      description: Call this API to delete an enterprise-wide webhook.
      tags:
        - Administration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: enterpriseId
          in: path
          description: The unique Enterprise ID to search 
          required: true
          type: integer
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: webhookType
          in: path
          description: The categorical type of webhook you wish to delete [ATTENDEE_INFO,EVENT_STATE]
          required: true
          type: string
          enum: [ATTENDEE_INFO,EVENT_STATE]
      responses:
        '200':
          description: Success.  (No data returned).
        '400':
          description: Invalid Webhook Type.
        '404':
          description: Webhook Type not Found for this Event.
        '500':
          description: Internal Server Error.
  /api/webhook/v1/users/{userId}/events/{eventId}:
    post:
      summary: Create  Webhook
      description: Call this API to define the type of activity reported by the webhook for a user's.  Specify the triggering event configuration and the target URL where the response is delivered.
      tags:
        - Administration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: userId
          type: integer
          in: path
          required: true
          description: The userId requesting this event information Bluejeans Event APIs. 
        - name: webhookInfo
          in: body
          description: Configuration of Webhook trigger
          required: true
          schema:
            $ref:  '#/definitions/WebHookRequest'        
      responses:
        '204':
          description: Success.  (No data returned).
        '400':
          description: Invalid Webhook Settings.
        '500':
          description: Internal Server Error.
  /api/webhook/v1/users/{userId}/events/{eventId}/type/{webhookType}:
    get:
      summary: Show a Webhook
      description: Call this API to retrieve a particular-user's webhook.
      tags:
        - Administration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: userId
          type: integer
          in: path
          required: true
          description: The userId requesting this event information Bluejeans Event APIs. 
        - name: webhookType
          in: path
          description: The categorical type of webhook you wish to delete [ATTENDEE_INFO,EVENT_STATE]
          required: true
          type: string
          enum: [ATTENDEE_INFO,EVENT_STATE]
      responses:
        '200':
          description: Success.
          schema:
            $ref:  '#/definitions/WebHookRequest'        
        '400':
          description: Invalid Webhook Type.
        '404':
          description: Webhook Type not Found for this Event.
        '500':
          description: Internal Server Error.
    
    delete:
      summary: Delete a Webhook
      description: Call this API to delete a user's Event webhook.
      tags:
        - Administration
      consumes:
        - application/json
      security:
        - Bearer: []
      parameters:
        - name: userId
          type: integer
          in: path
          required: true
          description: The userId requesting this event information Bluejeans Event APIs. 
        - name: eventId
          in: path
          description: The ID of the event of interest.  This field is a string (GUID).
          required: true
          type: string
        - name: webhookType
          in: path
          description: The categorical type of webhook you wish to delete [ATTENDEE_INFO,EVENT_STATE]
          required: true
          type: string
          enum: [ATTENDEE_INFO,EVENT_STATE]
      responses:
        '200':
          description: Success.  (No data returned).
        '400':
          description: Invalid Webhook Type.
        '404':
          description: Webhook Type not Found for this Event.
        '500':
          description: Internal Server Error.
            
definitions:
  CreateEventRequest:
    type: object
    properties:
      title:
        type: string
        required: true
        description:  The title of this Event
      start:
        type: integer
        description: The starting time for the Event in milliseconds
        required: true
      end:
        type: integer
        description: The ending time for the Event in milliseconds
        required: true
      description:
        type: string
      timezone:
        type: string
        description:  Any of the standard Unix timezone strings
        required: true
      restricted:
        type: boolean
        description:  tbd
      requireEmail:
        type: boolean
        description:  tbd
      enableAutoRecord:
        type: boolean
        default: true
      enablePSTN:
        type: boolean
        description:  tbd
      enableChat:
        type: boolean
        description:  (Default = true) Allow chat messages among users in the Event
      enableAttendeeRoster:
        type: boolean
        default: true
        description: Enable display of Roster of Attendees for the Event
      enableQnA:
        type: boolean
        default: true
        description: Enable Question and Answer mode for Event
      enableQnAAnonymous:
        type: boolean
        default: true
        description: Allow Questions to be submitted as anonymous
      enableWaterMark:
        type: boolean
        description: (Default = true) Include company watermark
        default: true
      enableIntroOutro:
        type: boolean
        default: false
        description:  tbd
      recurrencePattern:
        $ref: '#/definitions/EventRecurrencePattern'
        description:  tbd
      panelists:
        type: array
        items:
          type: string
          description: Email address
      moderators:
        type: array
        items:
          type: string
          description: Email address
      attendees:
        type: array
        items:
          type: string
          description: Email address
      panelistMessage:
        type: string
        description:  tbd
      moderatorMessage:
        type: string
        description:  tbd
      attendeeMessage:
        type: string
        description:  tbd
      customIntroOutro:
        type: boolean
        default: true

  EnterpriseEventInstanceDetailsResponse:
    type: object
    properties:
     nextPageKey:
        type: string
     instances:
        type: array
        items:
          type: object
          properties:
            id:
              type: string
            eventId:
              type: string
            startTime:
              type: integer
              description: starting time (in milliseconds)
            endTime:
              type: integer
              description: ending time (in milliseconds)
            moderatorCount: 
              type: integer
            presenterCount:
              type: integer
            attendeeCount: 
              type: integer
            timezone:
              type: string
            title:
              type: string
            organizer:
              type: string
            billingType:
              type: string
              default: "FREETRIAL"
            recordingAvailable:
              type: boolean
              default: true
            studioEnabled:
              type: boolean
  EnterpriseEventBasicDetailsResponse:
    type: object
    properties:
      events:
        type: array
        $ref: "#/definitions/EventBasicResponse"
      nextPageKey:
        type: string
        description: The link (GUID) to the next set of Event records


  EnterpriseGrant:
    type: object
    properties:
      access_token:
        type: string
        description: The access token acts as a kind of "valet key" that the application can include with its requests to the identity provider, which prove that it has permission from the user to access those APIs.
      expires_in:
        type: integer
      enterpriseId:
        type: integer
        description: The enterpriseId present in the response, represents user's enterprise in Bluejeans Event APIs. It will be used in enterprise centric APIs e.g. get enterprise's upcoming events, past events etc.
        
  RegistrationGrant:
    type: object
    properties:
      access_token:
        type: string
        description: The access token acts as a kind of "valet key" that the application can include with its requests to call registration APIs.
      expires_in:
        type: integer

  Error:
    type: object
    properties:
      message:
        type: string
  EventAPIInfo:
    type: object
    properties:
      customIntroOutro:
        type: boolean
      introImgUrl:
        type: string
        description: URL for location of customized Introduction image
      outroImgUrl:
        type: string
        description: URL for location of customized Exit-page image
      requireEmail:
        type: boolean
      recurrenceStart:
        type: integer
        description: The starting time for the recurring Event chain (in milliseconds)
      recurrenceEnd:
        type: integer
        description: The ending time for the recurring Event chain (in milliseconds)
      recurrenceEndNever:
        type: boolean
      id: 
        type: string
      title:
        type: string
      description:
        type: string
      organizerId:
        type: integer
        description: the unique ID number of the meeting organizer
      organizerEnterpriseId:
        type: integer
        description: the numeric ID for the organizer's Enterprise group
      start:
        type: integer
        description: The starting time for the Event (in milliseconds)
      end:
        type: integer
        description: The ending time for the Event (in milliseconds)
      timezone:
        type: string
        default: US/Mountain
        description: The timzeone for the Event
      created:
        type: integer      
        description: The creation date for this event (in milliseconds)
      lastModified:
        type: integer
        description: The date this event was last modified (in milliseconds)
      moderatorMessage:
        type: string
      panelistMessage:
        type: string
      restricted:
        type: boolean
        description: If true requires attendees to first sign on to their enterprise before attending
      meetingNumericId:
        type: string
      status:
        type: string
      attendeeMessage:
        type: string
      recordingsAvailable:
        type: boolean
      participantPasscode:
        type: string
      attendeeMeetingNumericId:
        type: string
      attendeeMeetingPasscode:
        type: string
      moderatorUrl:
        type: string
      panelistUrl:
        type: string
      attendeeUrl:
        type: string
      moderators:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      panelists:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      attendees:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      moderatorCount:
        type: integer
      presenterCount:
        type: integer
      attendeeCount:
        type: integer
      activeModerators:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      activePanelists:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      activeAttendeeCount:
        type: integer
        description: Count of total active attendees at this Event
      pstnConferenceList:
        type: array
        items:
          $ref: '#/definitions/EventPstnConferenceView'
      pstnAttendeeConfDetails:
        $ref: '#/definitions/EventPstnConferenceView'
      dialInNumbers:
        $ref: '#/definitions/EventDialInNumbers'
      subscriptionId:
        type: string
        description:  tbd
      planId:
        type: string
        description:  tbd
      constraints:
        $ref: '#/definitions/BasicEventContraintView'
      billingType:
        type: string
        description:  tbd
      billingEditable:
        type: boolean
        description:  tbd
      recurrencePattern:
        type: object
        properties:
          $ref: '#/definitions/EventRecurrencePattern'
      enableAutoRecord:
        type: boolean
        description:  tbd
      enablePSTN:
        type: boolean
        description:  tbd
      enableChat:
        type: boolean
        description:  tbd
      enableAttendeeRoster:
        type: boolean
        description:  tbd
      enableQnA:
        type: boolean
        description:  tbd
      enableWaterMark:
        type: boolean
        description:  tbd
      enableQnAAnonymous:
        type: boolean
        description:  tbd
      enableIntroOutro:
        type: boolean
        description:  tbd
      enableRaiseHand:
        type: boolean
        description:  tbd
      showAttendeeCount:
        type: boolean
        description:  tbd
      enableQnAAutoApprove:
        type: boolean
        description:  tbd
      enableRegistration:
        type: boolean
        description:  tbd
      registration:
        $ref: '#/definitions/RegisterEventResponse'
        description:  tbd
      originalStartDate:
        type: integer
        description:  tbd
      originalEndDate:
        type: integer
        description:  tbd
      whitelistedDomains:
        type: string
        description:  tbd
      playerBackgroundAudio:
        type: boolean
        description:  tbd

  EventAPIInfo_V2:
    type: object
    properties:
      customIntroOutro:
        type: boolean
      introImgUrl:
        type: string
        description: URL for location of customized Introduction image
      outroImgUrl:
        type: string
        description: URL for location of customized Exit-page image
      requireEmail:
        type: boolean
      recurrenceStart:
        type: integer
        description: The starting time for the recurring Event chain (in milliseconds)
      recurrenceEnd:
        type: integer
        description: The ending time for the recurring Event chain (in milliseconds)
      recurrenceEndNever:
        type: boolean
      id: 
        type: string
      title:
        type: string
      description:
        type: string
      organizerId:
        type: integer
        description: the unique ID number of the meeting organizer
      organizerEnterpriseId:
        type: integer
        description: the numeric ID for the organizer's Enterprise group
      start:
        type: integer
        description: The starting time for the Event (in milliseconds)
      end:
        type: integer
        description: The ending time for the Event (in milliseconds)
      timezone:
        type: string
        default: US/Mountain
        description: The timzeone for the Event
      created:
        type: integer      
        description: The creation date for this event (in milliseconds)
      lastModified:
        type: integer
        description: The date this event was last modified (in milliseconds)
      moderatorMessage:
        type: string
      panelistMessage:
        type: string
      restricted:
        type: boolean
        description: If true requires attendees to first sign on to their enterprise before attending
      meetingNumericId:
        type: string
        description: The human-readable meeting ID exposed on User Interfaces.
      status:
        type: string
      attendeeMessage:
        type: string
      recordingsAvailable:
        type: boolean
      participantPasscode:
        type: string
      attendeeMeetingNumericId:
        type: string
      attendeeMeetingPasscode:
        type: string
      moderatorUrl:
        type: string
      panelistUrl:
        type: string
      attendeeUrl:
        type: string
      moderators:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      panelists:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      attendees:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      moderatorCount:
        type: integer
      presenterCount:
        type: integer
      attendeeCount:
        type: integer
      activeModerators:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      activePanelists:
        type: array
        items:
          $ref: '#/definitions/EventMember'
      activeAttendeeCount:
        type: integer
        description: Count of total active attendees at this Event
      pstnConferenceList:
        type: array
        items:
          $ref: '#/definitions/EventPstnConferenceView'
      pstnAttendeeConfDetails:
        $ref: '#/definitions/EventPstnConferenceView'
      dialInNumbers:
        $ref: '#/definitions/EventDialInNumbers'
      subscriptionId:
        type: string
        description:  tbd
      planId:
        type: string
        description:  tbd
      constraints:
        $ref: '#/definitions/BasicEventContraintView'
      billingType:
        type: string
        description:  tbd
      billingEditable:
        type: boolean
        description:  tbd
      recurrencePattern:
        type: object
        properties:
          $ref: '#/definitions/EventRecurrencePattern'
      enableAutoRecord:
        type: boolean
        description:  tbd
      enablePSTN:
        type: boolean
        description:  tbd
      enableChat:
        type: boolean
        description:  tbd
      enableAttendeeRoster:
        type: boolean
        description:  tbd
      enableQnA:
        type: boolean
        description:  tbd
      enableWaterMark:
        type: boolean
        description:  tbd
      enableQnAAnonymous:
        type: boolean
        description:  tbd
      enableIntroOutro:
        type: boolean
        description:  tbd
      enableRaiseHand:
        type: boolean
        description:  tbd
      showAttendeeCount:
        type: boolean
        description:  tbd
      enableQnAAutoApprove:
        type: boolean
        description:  tbd
      enableRegistration:
        type: boolean
        description:  tbd
      registration:
        $ref: '#/definitions/RegisterEventResponse'
        description:  tbd
      originalStartDate:
        type: integer
        description:  tbd
      originalEndDate:
        type: integer
        description:  tbd
      whitelistedDomains:
        type: string
        description:  tbd
      playerBackgroundAudio:
        type: boolean
        description:  tbd
      delegationInfo:
        $ref: "#/definitions/DeletegationInfo"
        
  EventBasicDetailsResponse:
    type: object
    properties:
      events:
        type: array
        $ref: '#/definitions/EventBasicResponse'
      expiredEventGrace:
        type: integer
        description:  tbd
      nextPageKey:
        type: string
        description: the index of the next page to fetch
  EventBasicResponse:
    type: object
    properties:
        start:
          type: integer
          description: starting time
        end:
          type: integer
          description: ending time
        title:
          type: string
          description: the title of the Event
        eventId:
          type: string
          description: the unique identifier for this Event (GUID)
        timezone:
          type: string
          description: the scheduled timezone for the Event
        restricted:
          type: boolean
          description: If true, this Event requires authenticated login to your Enterprise
        recurring:
          type: boolean
          description: If true, this Event is part of a chain of recurring events
        status:
          type: string
          description: tbd
        billingType:
          type: string
          enum: [ FREETRIAL, PRACTICE, PAID ]
          description: user field to designate billing attributes
        organizerId:
          type: integer
          description: the unique ID number of the meeting organizer
        attendeeUrl:
          type: string
          description: the URL for attendees to join
        moderatorUrl:
          type: string
          description: the URL for moderators to join
        panelistUrl:
          type: string
          description: the URL for panelists to join
        enableRegistration:
          type: boolean
        organizer:
          type: boolean
        delegationInfo:
          $ref "#/definitions/DelegationInfo"

  EventInfoDetailsView:
    type: object
    properties:
      id:
        type: string
      organizerId:
        type: integer
      organizerEnterpriseId:
        type: integer
      meetingLeaderId:
        type: integer
      start:
        type: integer
        description: The starting time for the Event in milliseconds
      end:
        type: integer
        description: The ending time for the Event in milliseconds
      created:
        type: integer      
        description: The creation date for this event (in milliseconds)
      lastModified:
        type: integer
        description: The date this event was last modified (in milliseconds)
      recurrenceStart:
        type: integer
        description: The starting time for the recurring Event chain (in milliseconds)
      recurrenceEnd:
        type: integer
        description: The ending time for the recurring Event chain (in milliseconds)
      title:
        type: string
      description:
        type: string
      timezone:
        type: string
      cancellationMessage:
        type: string
      moderatorMessage:
        type: string
      panelistMessage:
        type: string
      attendeeMessage:
        type: string
      meetingNumericId:
        type: string
      icsUid:
        type: string
      meetingPasscode:
        type: string
      attendeeMeetingNumericId:
        type: string
      attendeeMeetingPasscode:
        type: string
      restricted:
        type: boolean
      autoStartEvent:
        type: boolean
      autoRecordEvent:
        type: boolean
      mutePresenterOnEntry:
        type: boolean
      enterpriseOnly:
        type: boolean
      enableGreenroom:
        type: boolean
      enableOnPrem:
        type: boolean
      enableWaterMark:
        type: boolean
      pstnEnabled:
        type: boolean
      enableChat:
        type: boolean
      attendeeRoster:
        type: boolean
      qnaEnabled:
        type: boolean
      recordingsAvailable:
        type: boolean
      requireEmail:
        type: boolean
      recurrenceEndNever:
        type: boolean
      askAnonymous:
        type: boolean
      introOutroEnabled:
        type: boolean
      customIntroOutro:
        type: boolean
      recurrencePattern:
        type: object
        properties:
          recurrenceType:
            type: string
            default: "NONE"
            description: Acceptable values are  DAILY, WEEKLY, MONTHLY
            required: true
          endDate:
            type: integer
            required: true
          weekOfMonth:
            type: string
            description: Only when recurrenceType is MONTHLY.  Acceptable values are  FIRST, SECOND, THIRS, FOURTH, LAST
            default: "FIRST"
          recurrenceCount:
            type: integer
          frequency:
            type: integer
          daysOfWeekMask:
            type: integer
            description: Only when recurrenceType is WEEKLY or MONTHLY. daysOfWeekMask is bitmap value [Bit0..Bit6] --> [Sun..Sat]
          dayOfMonth:
            type: integer
            description: Only when recurrenceType is MONTHLY
      icsSequenceNumber:
        type: integer
      status:
        type: string
        default: "COMPLETED"
      moderatorUrl:
        type: string
      panelistUrl:
        type: string
      attendeeUrl:
        type: string
      subscriptionId:
        type: string
      planId:
        type: string
      constraints:
        type: object
        properties:
          user:
            type: object
            properties:
              overageStep:
                type: integer
              softLimit:
                type: integer
              hardLimit:
                type: integer
          department:
            type: object
            properties:
              overageStep:
                type: integer
              softLimit:
                type: integer
              hardLimit:
                type: integer
          scheduling:
            type: object
            properties:
              overageStep:
                type: integer
              softLimit:
                type: integer
              hardLimit:
                type: integer
          time:
            type: object
            properties:
              overageStep:
                type: integer
              softLimit:
                type: integer
              hardLimit:
                type: integer
          attendee:
            type: object
            properties:
              overageStep:
                type: integer
              softLimit:
                type: integer
              hardLimit:
                type: integer
          interactive:
            type: object
            properties:
              overageStep:
                type: integer
              softLimit:
                type: integer
              hardLimit:
                type: integer
      billingType:
        type: string
        default: "FREETRIAL"
      billingEditable:
        type: boolean
      introImgUrl:
        type: string
      outroImgUrl:
        type: string
      backgroundImgUrl:
        type: string
      introOutroPauseInterval:
        type: integer
      dialInNumbers:
        type: object
        properties:
          alternate:
            type: string
          US_tollfree:
            type: string
          US:
            type: string
      attendeeMeetingId:
        type: integer
      nextOccurrenceStart:
          type: integer
      nextOccurrenceEnd:
          type: integer
      qnaAutoApprove:
        type: boolean
      enableRegistration:
        type: boolean

  EventInstanceDetails:
      type: object
      properties:
        id:
          type: string
          description: unique Id for this instance (GUID)
        startTime:
          type: integer
          description: starting time (in milliseconds)
        endTime:
          type: integer
          description: ending time (in milliseconds)
        moderators:
          type: array
          $ref: "#/definitions/EventMember"
        panelists:
          type: array
          $ref: "#/definitions/EventMember"
        attendeeCount:
          type: integer
        title:
          type: string
        description:
          type: string
        recordingSharingUrl:
          type: string
        eventId:
          type: string
        chatMessagesPresent:
          type: boolean
        qnaPresent:
          type: boolean
        pollPresent:
          type: boolean
        studioEnabled:
          type: boolean

        delegationInfo:
          type: object
          $ref: "#/definitions/DelegationInfoResponse"
  EventInstanceDetailsResponse:
    type: object
    properties:
     nextPageKey:
        type: string
        description: Link to the next set of Event records (GUID)
     instances: 
        type: array
        items:
          type: object
          properties:
            start:
              type: integer
              description: The starting time for the Event in milliseconds
            end:
              type: integer
              description: The ending time for the Event in milliseconds
            title:
              type: string
            eventId:
              type: string
            timezone:
              type: string
            restricted:
              type: boolean
            recurring:
              type: boolean
            billingType: 
              type: string
              default: "FREETRIAL"
            studioEnabled:
              type: boolean
            instanceId:
              type: string
     deletedByXDays:
      type: boolean
     active:
      type: boolean
     transferredEvent:
      type: boolean
              
      
  SpecifiedEventInstanceDetailsResponse:
    type: object
    properties:
     nextPageKey:
        type: string
        description: Link to the next set of Event records (GUID)
     instances: 
        type: array
        items:
          type: object
          properties:
           start:
            type: integer
            description: The starting time for the Event in milliseconds
           end:
            type: integer
            description: The ending time for the Event in milliseconds
           title:
              type: string
           eventId:
              type: string
           timezone:
              type: string
           restricted:
              type: boolean
           recurring:
              type: boolean
           studioEnabled:
              type: boolean
           instanceId:
              type: string
           delegationInfo:
            type: object
            $ref: "#/definitions/DelegationInfoResponse"
     deletedByXDays:
      type: boolean
     active:
      type: boolean
     transferredEvent:
      type: boolean
  EventInviteDetailsResponse:
    type: object
    properties:
      events:
        type: array
        items:
          type: object
          properties:
            description:
              type: string
            eventId:
              type: string
            sharingUrl:
              type: string
            start:
              type: integer
              description: The starting time for the Event in milliseconds
            end:
              type: integer
              description: The ending time for the Event in milliseconds
            title:
              type: string
            timezone:
              type: string
            role:
              type: string
              default: "Moderator"
            eventState:
              type: string
              enum:
                - NOT_STARTED
                - PREP_EVENT
                - STREAMING_REQUESTED
                - IN_EVENT
                - POST_EVENT
                - PAUSE_REQUESTED
                - PAUSE_EVENT
                - EXPIRED
            recurrencePattern:
              type: object
              properties:
                  recurrenceType:
                    type: string
                    enum: [NONE, DAILY, WEEKLY, MONTHLY, YEARLY ]
                  endDate:
                    type: integer
                    description: This is the epoch-based ending-time (in milliseconds) for the recurrence chain of meetings.
                  recurrenceCount:
                    type: integer
                    description: The number of reoccurring meetings
                  frequency:
                    type: integer
                    description: the interval of reoccurring meetings.
                  daysOfWeekMask:
                    type: integer
                    description: bit mask for selecting which days of the week.  Sunday:1, Monday:2, Tuesday:4, Wednesday:8, Thursday:16, Friday:32, and Saturday:64
                  dayOfMonth:
                    type: integer
                    description:  the numerical day in the month for monthly reoccurring meetings.
                  weekOfMonth:
                    type: string
                    enum: [NONE, FIRST, SECOND, THIRD, FOURTH, LAST]
                    default: NONE
                    description: the numerical week in the month for reoccuring meetings.
                  monthOfYear:
                    type: string
                    enum: [NONE, JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER]
                    default: NONE
                    description: the month in the year for reoccurring meetings.
      nextPageKey:
        type: string
        description: GUID for accessing the next group of results

     
  InvitedUserDetailResponse:  
    type: object
    properties:
      invitees:
        type: array
        items:
          $ref: '#/definitions/ScheduledEventInviteeView'
      totalCount:
        type: integer
      nextPageKey:
        type: string
        description: The link (GUID) to the next set of Event records
  ScheduledEventInviteeView:
    type: object
    properties:
        end:
          type: integer
        sharingUrl:
          type: string
        userId:
          type: integer
        name:
          type: string
        role: 
          $ref: '#/definitions/EventUserRoleView'
        email: 
          type: string
          description: email address for the invitee.
        newInvitee:
          type: boolean
        registrationStatus:
          type: string
        registrationToken:
          type: string
        eventId:
          type: string
  EventUserRoleView:
    type: string
    enum: [ Moderator, Attendee, Panelist, Organizer ]
    description: The type of Role associated with the participant 
  UpdateEventRequest:
    type: object
    properties:
      panelists:
        type: array
        items:
           type: string
      moderators:
        type: array
        items:
          type: string
      attendees:
        type: array
        items:
          type: string


  UserGrant:
    type: object
    properties:
      access_token:
        type: string
        description: The access token acts as a kind of "valet key" that the application can include with its requests to the identity provider, which prove that it has permission from the user to access those APIs.
      expires_in:
        type: integer
      userId:
        type: integer
        description: The userId present in the response, represents user's identity in Bluejeans Event APIs. It will be used in user centric APIs e.g. create, edit, delete and get events.
      enterpriseId:
        type: integer
        description: The enterpriseId present in the response, represents user's enterprise in Bluejeans Event APIs. It will be used in enterprise centric APIs e.g. get enterprise's upcoming events, past events etc.

  EventRecurrencePattern:
    type: object
    properties:
      recurrenceType:
        type: string
        enum: [NONE, DAILY, WEEKLY, MONTHLY, YEARLY ]
      endDate:
        type: integer
        description: This is the epoch-based ending-time (in milliseconds) for the recurrence chain of meetings.
      recurrenceCount:
        type: integer
        description: The number of reoccurring meetings
      frequency:
        type: integer
        description: the interval of reoccurring meetings.
      daysOfWeekMask:
        type: integer
        description: bit mask for selecting which days of the week.  Sunday:1, Monday:2, Tuesday:4, Wednesday:8, Thursday:16, Friday:32, and Saturday:64
      dayOfMonth:
        type: integer
        description:  the numerical day in the month for monthly reoccurring meetings.
      weekOfMonth:
        type: string
        enum: [NONE, FIRST, SECOND, THIRD, FOURTH, LAST]
        default: NONE
        description: the numerical week in the month for reoccuring meetings.
  FLOOBYmonthOfYear:
    type: object
    properties:
      monthOfYear:
        type: string
        enum: [NONE, JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER]
        default: NONE
        description: the month in the year for reoccurring meetings.
  RegisterEventRequest:
    type: object
    properties:
      approvalType:
        type: string
        description: Type of approval
      domains: 
        type: array
        items:
          type: string
      questions:
        type: array
        items:
          type: string
      notification: 
        type: object
        properties:
          $ref: '#/definitions/RegistrationNotificationView'
      approvalCount:
        type: object
        properties:
          $ref: '#/definitions/UserRegistrationStateCount'
      integration:
        type: array
        items:
          type: object
          properties:
            $ref: '#/definitions/EventIntegrationConfig'
      apiKey:
        type: string
        description: tbd
      questionsList:
        type: array
        items:
          $ref: '#/definitions/QuestionsInfo'
      notificationDetails:
        type: object
        properties:
          $ref: '#/definitions/RegistrationNotificationDetailsView'
      enableNotification:
        type: boolean
        description:
      enableQuestions:
        type: boolean
        description:
      integrationModified:
        type: boolean
        description:

  RegisterEventResponse:
    type: object
    properties:
      approvalType:
        type: string
        description: Type of approval
      domains: 
        type: array
        items:
          type: string
      questions:
        type: array
        items:
          type: string
      notification: 
          $ref: '#/definitions/RegistrationNotificationView'
      approvalCount:
          $ref: '#/definitions/UserRegistrationStateCount'
      integration:
        type: array
        items:
            $ref: '#/definitions/EventIntegrationConfig'
      apiKey:
        type: string
        description: tbd
      questionsList:
        type: array
        items:
          $ref: '#/definitions/QuestionsInfo'
      notificationDetails:
          $ref: '#/definitions/RegistrationNotificationDetailsView'
  EventIntegrationConfig:
    type: object
    properties:    
        provider:
          type: string
          description: tbd
        details:
          $ref: '#/definitions/Property2'
        programId: 
          type: integer
          description: tbd
        programUrl:
          type: string
          description: tbd
        programName:
          type: string
          description: tbd

  RegistrationNotificationDetailsView:
    type: object
    properties: 
       notificationTypeDetails:
         type: object
         properties:
           property1:
             type: string
             description: tbd
           property2:
             type: string
             description: tbd
  RegistrationNotificationView:
    type: object
    properties:
      notificationType:
        type: array
        items:
          type: string
      customDate:
        type: integer
        description: a Unix date value        
    
  UserRegistrationInfo:
    type: object
    properties:
      users:
        type: array
        items:
          type: object
          properties:
            email:
              type: string
              description:  Email address of the registered user
            name:
              type: string
              description:  The name specified by the user
            questions:
              $ref: '#/definitions/Property2'
            approvalState:
              type: string
              enum: [PENDING, DECLINED, APPROVED]
            registrationDate:
              type: integer
              description: Time of the registration since epoch (in seconds)
            remindedOrganizer:
              type: boolean
  UserRegistrationStateCount:
    type: object
    properties:
      approved:
        type: number
        description: count of approved registrations
      declined:
        type: number
        description: count of declined registered users
      pending:
        type: number
        description: count of outstanding registrations
  Property2:
    type: object
    properties:
      property1:
        type: string
      property2:
        type: string
  QuestionsInfo:
    type: object
    properties:
      question:
        type: string
      mandatory:
        type: boolean
        
  EventMember:
    type: object
    properties:
        name:
          type: string
          description: Human readable name of the member
        role:
          type: string
          description: tbd
        email:
          type: string
          description: The corresponding email address for this member
  EventPstnConferenceView:
    type: object
    description:  tbd
    properties:
        partnerPSTN:
          type: string
          description:  tbd
        conferenceId:
          type: string
          description:  tbd
        phoneNumber:
          type: string
          description:  tbd
        tollFreeNumber:
          type: string
          description:  tbd
        emailPremiumNumberLink:
          type: string
          description:  tbd
  EventDialInNumbers:
    type: object
    properties:
      alternate:
        type: string
        description:  tbd
      US:
        type: string
        description:  tbd
      US_tollfree:
        type: string
        description:  tbd
  BasicEventContraintView:
    type: object
    description:  tbd
    properties:
      user:
        $ref: '#/definitions/LimitView'
      department:
        $ref: '#/definitions/LimitView'
      scheduling:
        $ref: '#/definitions/LimitView'
      time:
        $ref: '#/definitions/LimitView'
      attendee:
        $ref: '#/definitions/LimitView'
      interactive:
        $ref: '#/definitions/LimitView'
  LimitView:
    type: object
    description:  tbd
    properties:
      overageStep:
        type: integer
        description:  tbd
      softLimit:
        type: integer
        description:  tbd
      hardLimit:
        type: integer
        description:  tbd
  EventInstanceRecordingDetails:
    type: object
    properties:
      eventId:
        type: string
        description: tbd
      sharingUrl:
        type: string
        description: tbd
      recordingSharingType:
        $ref: '#/definitions/SharingTypeView'
      id:
        type: string
        description: tbd
      title:
        type: string
        description: tbd
      start:
        type: integer
        description: tbd
      end:
        type: integer
        description: tbd
      totalDuration:
        type: integer
        description: tbd
      thumbnailUrl:
        type: string
        description: tbd
      chapterCount:
        type: integer
        description: tbd
      chapterList:
        type: array
        items:
          $ref: '#/definitions/RecordingChapterInfo'
      SharingTypeView:
        type: string
        enum: [PRIVATE, PUBLIC, ENTERPRISE, NONE]
      RecordingChapterInfo:
        type: object
        properties:
          chapterId:
            type: string
            description:  Identifier of the chapter
          downloadLink:
            type: string
            description:  URL for accessing the chapter recording

  DelegationInfo:
    type: object
    properties:
      accessTypeList:
        type: array
        $ref: "#/definitions/DelegationType"
      eventOrganizerName:
        type: string	
      eventOrganizerEmail:
        type: string
      organizer:
        type: boolean	
      eventOrganizerId:
        type: integer
      delegatorCount:
        type: integer
      userDelegationList:
        type: array 
        $ref: "#/definitions/DelegationInfo"
      
  DelegationType:
    type: string
    enum: [ READ, WRITE, DELETE, NULL ]
  DelegationInfoResponse:
    type: object
    properties:
      eventOrganizerId:
        type: integer 
      eventOrganizerName:
        type: string	
      eventOrganizerEmail:
        type: string	
      organizer:
        type: boolean	
      userDelegationList:
        type: array 
        $ref: "#/definitions/UserDelegationInfoResponse"
  UserDelegationInfo:
    type: object
    properties:
      userId:
        type: integer
        description: Internal ID# of user
      accessTypeList:
        type: array
        $ref: "#/definitions/DelegationType"
      email:
        type: string
      name:
        type: string
  UserDelegationInfoResponse:
    type: object
    properties:
      userId:
        type: integer
      email: 
        type: string
      name:
        type: string
  
     
  WebHookRequest:
      type: object
      description:
      properties:
          "type":
            type: string
            items:
              type: string 
              description: Type of triggering activity
              enum: [ATTENDEE_INFO,EVENT_STATE]
              required: true
          method:
            type: string
            enum: [PUT,POST]
            description:  HTTP Method used by Webhook
            required: true
          headers:
            type: object
            description: A Map collection of values to inject in the HTTP Response Header
            properties:
              headername_1:
                type: string
              headername_n:
                type: string
          url:
            type: string
            required: true
            description: The target URL called by the Webhook
