openapi: 3.0.0
servers:
  - url: https://api.vonage.com/t/vbc.prod/provisioning
info:
  contact:
    name: Vonage Business Cloud Support
    url: https://businesssupport.vonage.com/contactus
  description: >
    The Vonage Business Cloud Account API enables you to retrieve information about accounts.


    Your application must subscribe to the Provisioning API suite to use this API.
  termsOfService: https://www.vonage.com/business/legal-policy-center/business-cloud/tos
  title: Account API
  version: 1.11.8
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/nexmo/api-specification/master/definitions/vonage-business-cloud/account.yml
      version: "3.0"
  x-providerName: vonage.com
  x-serviceName: account
paths:
  "/api/accounts/{account_id}":
    get:
      operationId: AccountCtrl.getAccountServicesByAccountID
      parameters:
        - $ref: "#/components/parameters/AccountID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountHalResponse"
          description: Success
        "404":
          description: Account not found
      security:
        - bearerAuth: []
      summary: Get account data by ID
  "/api/accounts/{account_id}/locations":
    get:
      operationId: AccountCtrl.getLocationsByAccountID
      parameters:
        - $ref: "#/components/parameters/AccountID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LocationsHalResponse"
          description: Success
      security:
        - bearerAuth: []
      summary: Get account locations data by account ID
  "/api/accounts/{account_id}/locations/{location_id}":
    get:
      operationId: AccountCtrl.getLocationByID
      parameters:
        - $ref: "#/components/parameters/AccountID"
        - description: The Vonage Business Cloud location ID
          example: 327910
          in: path
          name: location_id
          required: true
          schema:
            type: number
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LocationHalResponse"
          description: Success
        "404":
          description: Location not found
      security:
        - bearerAuth: []
      summary: Get location data by account ID and location ID
components:
  parameters:
    AccountID:
      description: The Vonage Business Cloud account ID
      example: 571700
      in: path
      name: account_id
      required: true
      schema:
        type: number
  schemas:
    Account:
      properties:
        address:
          $ref: "#/components/schemas/Address"
        id:
          description: Unique identifier of the account
          example: 571700
          type: number
        name:
          description: Name of the account
          example: Vonage
          type: string
        status:
          description: Status of the account
          example: ACTIVE
          type: string
      type: object
    AccountEmbeddedObject:
      description: Account object
      properties:
        data:
          $ref: "#/components/schemas/Account"
      type: object
    AccountHalResponse:
      properties:
        _embedded:
          $ref: "#/components/schemas/AccountEmbeddedObject"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          description: Current page number
          example: 1
          type: number
        page_size:
          description: Number of records per page
          example: 100
          type: number
        total_items:
          description: Total number of records
          example: 100
          type: number
        total_pages:
          description: Total number of pages
          example: 10
          type: number
      type: object
    Address:
      properties:
        address_1:
          description: Street portion of the address
          example: 123 Example Street
          type: string
        address_2:
          description: Additional address information
          example: Apt. 456
          type: string
        city:
          description: City name
          example: Holmdel
          type: string
        country:
          description: Country code
          example: US
          type: string
        postal_code:
          description: Postal code
          example: "07733"
          type: string
        state:
          description: State/Province code
          example: NJ
          type: string
      type: object
    AddressWithTimeZone:
      properties:
        address_1:
          description: Street portion of the address
          example: 123 Example Street
          type: string
        address_2:
          description: Additional address information
          example: Apt. 456
          type: string
        city:
          description: City name
          example: Holmdel
          type: string
        country:
          description: Country code
          example: US
          type: string
        postal_code:
          description: Postal code
          example: "07733"
          type: string
        state:
          description: State/Province code
          example: NJ
          type: string
        time_zone:
          description: Time zone
          example: America/New York
          type: string
      type: object
    FirstHref:
      description: URL to the first page of records
      properties:
        href:
          type: string
      type: object
    LastHref:
      description: URL to the last page of records
      properties:
        href:
          type: string
      type: object
    Links:
      properties:
        first:
          $ref: "#/components/schemas/FirstHref"
        last:
          $ref: "#/components/schemas/LastHref"
        next:
          $ref: "#/components/schemas/NextHref"
        prev:
          $ref: "#/components/schemas/PrevHref"
        self:
          $ref: "#/components/schemas/SelfHref"
      type: object
    Location:
      properties:
        address:
          $ref: "#/components/schemas/AddressWithTimeZone"
        id:
          description: Unique identifier of the location
          example: 327910
          type: number
        name:
          description: Name of the location
          example: Headquarters
          type: string
      type: object
    LocationEmbeddedObject:
      description: Location object
      properties:
        data:
          $ref: "#/components/schemas/Location"
      type: object
    LocationHalResponse:
      properties:
        _embedded:
          $ref: "#/components/schemas/LocationEmbeddedObject"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          description: Current page number
          example: 1
          type: number
        page_size:
          description: Number of records per page
          example: 100
          type: number
        total_items:
          description: Total number of records
          example: 100
          type: number
        total_pages:
          description: Total number of pages
          example: 10
          type: number
      type: object
    LocationsEmbeddedObject:
      description: Collection of location objects
      properties:
        data:
          items:
            $ref: "#/components/schemas/Location"
          type: array
      type: object
    LocationsHalResponse:
      properties:
        _embedded:
          $ref: "#/components/schemas/LocationsEmbeddedObject"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          example: 1
          type: number
        page_size:
          example: 100
          type: number
        total_items:
          example: 100
          type: number
        total_pages:
          example: 10
          type: number
      type: object
    NextHref:
      description: URL to the next page of records
      properties:
        href:
          type: string
      type: object
    PrevHref:
      description: URL to the previous page of records
      properties:
        href:
          type: string
      type: object
    SelfHref:
      description: URL to the current page of records
      properties:
        href:
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: OAuth
      scheme: bearer
      type: http
