openapi: 3.2.0 info: title: Graphiant Apps API version: 1.0.0 description: Graphiant API documentation. servers: - url: https://api.graphiant.com security: - jwtAuth: [] tags: - name: Apps paths: /v1/apps/bandwidth: post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1AppsBandwidthPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppsBandwidthPostResponse' tags: - Apps /v1/apps/app-summary: post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1AppsAppSummaryPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppsAppSummaryPostResponse' description: Get app state summary counts tags: - Apps /v1/apps/visualization: post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1AppsVisualizationPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppsVisualizationPostResponse' description: Get the app and circuit visualization info for the device tags: - Apps /v1/apps/device/{deviceId}/top: post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: deviceId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1AppsDeviceDeviceIdTopPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppsDeviceDeviceIdTopPostResponse' description: Get top apps for a device tags: - Apps /v1/apps/site/{siteId}/top: post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: siteId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1AppsSiteSiteIdTopPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppsSiteSiteIdTopPostResponse' description: Get top apps for a site tags: - Apps components: schemas: v1AppsAppSummaryPostRequest: type: object properties: deviceId: type: integer format: int64 example: 1234567891011 isDia: type: boolean example: true timeWindow: $ref: '#/components/schemas/ipfixTimeWindow' additionalProperties: false ipfixAppStateSummaryCount: type: object properties: appHealth: type: object additionalProperties: type: integer format: int32 example: 123 minimum: 0 appIncidents: $ref: '#/components/schemas/ipfixAppIncidents' appsOnDeviceCount: type: integer format: int32 example: 123 minimum: 0 averageQoe: type: number format: double example: 123.45 circuitsIncidents: type: array items: $ref: '#/components/schemas/statsmonCircuitsIncidents' circuitsIncidentsv2: type: array items: $ref: '#/components/schemas/statsmonV2CircuitIncidents' additionalProperties: false ipfixAppBandwidthStats: type: object properties: dlBw: type: number format: double example: 123.45 description: Bandwidth in kilo bits per second ts: $ref: '#/components/schemas/googleProtobufTimestamp' ulBw: type: number format: double example: 123.45 description: Bandwidth in kilo bits per second additionalProperties: false statsmonTimeWindow: type: object properties: bucketSizeSec: type: integer format: int32 example: 300 minimum: 0 description: the size of the time window in seconds (required) oldTs: $ref: '#/components/schemas/googleProtobufTimestamp' recentTs: $ref: '#/components/schemas/googleProtobufTimestamp' additionalProperties: false required: - bucketSizeSec v1AppsAppSummaryPostResponse: type: object properties: appSummary: $ref: '#/components/schemas/ipfixAppStateSummaryCount' additionalProperties: false ipfixTwampMetrics: type: object properties: healthAvg: type: string example: ENUM_VALUE description: 'calculated health average (over time window) ' jitter: type: number format: double example: 123.45 description: Jitter in ms latency: type: number format: double example: 123.45 description: Latency in ms loss: type: number format: float example: 12.34 description: Loss in percentage mos: type: number format: float example: 12.34 status: type: string example: ENUM_VALUE description: calculated status (last measured value) additionalProperties: false v1AppsBandwidthPostResponse: type: object properties: stats: type: array items: $ref: '#/components/schemas/ipfixAppBandwidthStats' additionalProperties: false statsmonCircuitsIncidents: type: object properties: data: type: array items: $ref: '#/components/schemas/statsmonCircuitsIncidentsData' name: type: string example: example string additionalProperties: false googleProtobufTimestamp: type: object properties: nanos: type: integer format: int32 example: 123 seconds: type: integer format: int64 example: 1234567891011 additionalProperties: false statsmonV2CircuitIncidentsDataSample: type: object properties: dlIncidents: $ref: '#/components/schemas/statsmonV2CircuitIncidentsDataSampleIncidents' overallStatus: type: string example: ENUM_VALUE description: Overall circuit status based on num of poor/fair incidents. totalIncidents: $ref: '#/components/schemas/statsmonV2CircuitIncidentsDataSampleIncidents' ts: $ref: '#/components/schemas/googleProtobufTimestamp' ulIncidents: $ref: '#/components/schemas/statsmonV2CircuitIncidentsDataSampleIncidents' additionalProperties: false statsmonV2CircuitIncidentsDataSampleIncidents: type: object properties: numFairIncidents: type: integer format: int32 example: 123 minimum: 0 numPoorIncidents: type: integer format: int32 example: 123 minimum: 0 additionalProperties: false ipfixTimeWindow: type: object properties: bucketSizeSec: type: integer format: int32 example: 123 minimum: 0 oldTs: $ref: '#/components/schemas/googleProtobufTimestamp' recentTs: $ref: '#/components/schemas/googleProtobufTimestamp' additionalProperties: false statsmonV2CircuitIncidents: type: object properties: data: $ref: '#/components/schemas/statsmonV2CircuitIncidentsData' additionalProperties: false v1AppsDeviceDeviceIdTopPostResponse: type: object properties: appsUtilization: type: array items: $ref: '#/components/schemas/ipfixAppUtilizationSummary' totalCount: type: integer format: int64 example: 1234567891011 additionalProperties: false ipfixAppUtilizationSummary: type: object properties: appId: type: integer format: int32 example: 123 minimum: 0 appName: type: string example: example string usage: type: integer format: int64 example: 1234567891011 description: application usage in kilo bytes additionalProperties: false v1AppsBandwidthPostRequest: type: object properties: appId: type: integer format: int32 example: 123 minimum: 0 deviceId: type: integer format: int64 example: 1234567891011 dlCircuitName: type: string example: example string isDia: type: boolean example: true slaClass: type: string example: ENUM_VALUE timeWindow: $ref: '#/components/schemas/statsmonTimeWindow' ulCircuitName: type: string example: example string additionalProperties: false v1AppsSiteSiteIdTopPostResponse: type: object properties: appsUtilization: type: array items: $ref: '#/components/schemas/ipfixAppUtilizationSummary' totalCount: type: integer format: int64 example: 1234567891011 additionalProperties: false ipfixAppVisualization: type: object properties: appId: type: integer format: int32 example: 123 minimum: 0 appName: type: string example: example string circuitAvailability: type: object additionalProperties: type: integer format: int32 example: 123 minimum: 0 circuitMap: type: object additionalProperties: $ref: '#/components/schemas/ipfixCircuitMetrics' currentStatus: type: string example: ENUM_VALUE description: current status of the app. additionalProperties: false v1AppsVisualizationPostResponse: type: object properties: appHealth: type: object additionalProperties: type: integer format: int32 example: 123 minimum: 0 appsOnDeviceCount: type: integer format: int32 example: 123 minimum: 0 appsVisualization: type: array items: $ref: '#/components/schemas/ipfixAppVisualization' averageQoe: type: number format: double example: 123.45 additionalProperties: false v1AppsVisualizationPostRequest: type: object properties: circuitName: type: string example: example string description: Circuit name is specified if circuit apps utilization data is desired. deviceId: type: integer format: int64 example: 1234567891011 isDia: type: boolean example: true slaClass: type: string example: ENUM_VALUE description: SLA class is specified if queue apps utilization data is desired. Circuit name must be provided. timeWindow: $ref: '#/components/schemas/statsmonTimeWindow' additionalProperties: false ipfixCircuitMetrics: type: object properties: name: type: string example: example string description: circuit name slaClass: type: string example: ENUM_VALUE stats: $ref: '#/components/schemas/ipfixTwampMetrics' usage: type: number format: double example: 123.45 description: usage of the circuit by the application in kilo bytes usagePct: type: number format: float example: 12.34 additionalProperties: false statsmonCircuitIncidents: type: object properties: numFairIncidents: type: integer format: int32 example: 123 minimum: 0 numPoorIncidents: type: integer format: int32 example: 123 minimum: 0 additionalProperties: false v1AppsSiteSiteIdTopPostRequest: type: object properties: numApps: type: integer format: int32 example: 22 minimum: 0 description: The maximum number of apps to return (100 if left empty) timeWindow: $ref: '#/components/schemas/ipfixTimeWindow' additionalProperties: false ipfixAppIncidentsData: type: object properties: appCount: type: integer format: int32 example: 123 minimum: 0 description: number of apps running in this time bucket appStatus: type: string example: ENUM_VALUE ts: $ref: '#/components/schemas/googleProtobufTimestamp' additionalProperties: false statsmonV2CircuitIncidentsSelector: type: object properties: circuitName: type: string example: example string additionalProperties: false ipfixAppIncidents: type: object properties: data: type: array items: $ref: '#/components/schemas/ipfixAppIncidentsData' additionalProperties: false v1AppsDeviceDeviceIdTopPostRequest: type: object properties: numApps: type: integer format: int32 example: 22 minimum: 0 description: The maximum number of apps to return (100 if left empty) timeWindow: $ref: '#/components/schemas/ipfixTimeWindow' additionalProperties: false statsmonCircuitsIncidentsData: type: object properties: dlIncidents: $ref: '#/components/schemas/statsmonCircuitIncidents' overallStatus: type: string example: ENUM_VALUE description: Overall circuit status based on num of poor/fair incidents. totalIncidents: $ref: '#/components/schemas/statsmonCircuitIncidents' ts: $ref: '#/components/schemas/googleProtobufTimestamp' ulIncidents: $ref: '#/components/schemas/statsmonCircuitIncidents' additionalProperties: false statsmonV2CircuitIncidentsData: type: object properties: samples: type: array items: $ref: '#/components/schemas/statsmonV2CircuitIncidentsDataSample' selector: $ref: '#/components/schemas/statsmonV2CircuitIncidentsSelector' additionalProperties: false securitySchemes: jwtAuth: type: apiKey in: header name: authorization description: Use `Bearer `