blob: 0414d5b22d3ac25e1294cc206a655489f1e051a2 [file] [log] [blame]
# Copyright 2017 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: "2.0"
info:
version: "v1"
title: APID analytics API
host: playground.apistudio.io
basePath: /try/64e409ad-aebb-4bbc-977e-f0e0f22209d4
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
paths:
'/analytics':
x-swagger-router-controller: analytics
parameters:
- name: analytics_data
in: body
description: The analytics data you want to post
required: true
schema:
$ref: "#/definitions/analytics_data"
post:
responses:
"200":
description: Success
"400":
description: Bad Request
schema:
$ref: "#/definitions/errClientError"
"500":
description: Server error
schema:
$ref: "#/definitions/errServerError"
default:
description: Error
schema:
$ref: "#/definitions/errResponse"
'/analytics/{bundle_scope_uuid}':
x-swagger-router-controller: analytics
parameters:
- name: bundle_scope_uuid
in: path
required: true
description: bundle UUID that can be mapped to a scope by APID
type: string
- name: records
in: body
description: The analytics data you want to post
required: true
schema:
$ref: "#/definitions/records"
post:
responses:
"200":
description: Success
"400":
description: Bad Request
schema:
$ref: "#/definitions/errClientError"
"500":
description: Server error
schema:
$ref: "#/definitions/errServerError"
default:
description: Error
schema:
$ref: "#/definitions/errResponse"
definitions:
analytics_data:
type: object
required:
- organization
- environment
- records
properties:
organization:
type: string
environment:
type: string
records:
type: object
$ref: "#/definitions/records"
example: {
"organization":"orgname",
"enironment":"envname",
"records":[{
"response_status_code": 400,
"client_received_start_timestamp": 1462850097576,
"client_received_end_timestamp": 1462850097580,
"client_id":"0GJKn7EQmNkKYcGL7x3gHaawWLs5gUPr"
},{
"response_status_code": 200,
"client_id":"2ngXgr6Rl2PXWiEmbt8zCkWY3Ptjb8ep",
"request_verb" : "GET",
"api_product":" test_product",
"access_token" : "fewGWG343LDV346345YCDS",
"apiproxy" : "OAuthProxy",
"apiproxy_revision" : "2",
"client_ip": "10.16.9.11",
"client_sent_end_timestamp": 1462850097894,
"client_received_start_timestamp": 1462850097576,
"client_received_end_timestamp": 1462850097580,
"client_sent_start_timestamp": 1462850097894,
"request_path" : "/oauth/oauthv2/auth_code/",
"request_uri": "/oauth/oauthv2/auth_code/?response_type=code&redirect_url=http%3A%2F%2Fexample.com&client_id=A1h6yYAVeADnEKji8M37zCSn6olcmQDB",
"useragent" : "Chrome",
"target" : "target_name",
"target_received_end_timestamp": 1462850097800,
"target_received_start_timestamp": 1462850097800,
"target_response_code" : 200,
"target_sent_end_timestamp" : 1462850097802,
"target_sent_start_timestamp" : 1462850097802
}]
}
records:
type: object
required:
- records
properties:
records:
type: array
minItems: 1
items:
$ref: "#/definitions/eachRecord"
example: {
"records":[{
"response_status_code": 400,
"client_received_start_timestamp": 1462850097576,
"client_received_end_timestamp": 1462850097580,
"client_id":"0GJKn7EQmNkKYcGL7x3gHaawWLs5gUPr"
},{
"response_status_code": 200,
"client_id":"2ngXgr6Rl2PXWiEmbt8zCkWY3Ptjb8ep",
"request_verb" : "GET",
"api_product":" test_product",
"access_token" : "fewGWG343LDV346345YCDS",
"apiproxy" : "OAuthProxy",
"apiproxy_revision" : "2",
"client_ip": "10.16.9.11",
"client_sent_end_timestamp": 1462850097894,
"client_received_start_timestamp": 1462850097576,
"client_received_end_timestamp": 1462850097580,
"client_sent_start_timestamp": 1462850097894,
"request_path" : "/oauth/oauthv2/auth_code/",
"request_uri": "/oauth/oauthv2/auth_code/?response_type=code&redirect_url=http%3A%2F%2Fexample.com&client_id=A1h6yYAVeADnEKji8M37zCSn6olcmQDB",
"useragent" : "Chrome",
"target" : "target_name",
"target_received_end_timestamp": 1462850097800,
"target_received_start_timestamp": 1462850097800,
"target_response_code" : 200,
"target_sent_end_timestamp" : 1462850097802,
"target_sent_start_timestamp" : 1462850097802
}]
}
eachRecord:
description: Each record is basically a map of key value pair. client_received_start_timestamp is a required property but more fields can be added
type: object
required:
- client_received_start_timestamp
- client_received_end_timestamp
properties:
client_received_start_timestamp:
type: integer
format: int64
client_received_end_timestamp:
type: integer
format: int64
example: {
"response_status_code":400,
"client_received_start_timestamp":1462850097576,
"client_received_end_timestamp": 1462850097580,
"client_id":"0GJKn7EQmNkKYcGL7x3gHaawWLs5gUPr"
}
errClientError:
required:
- errrorCode
- reason
properties:
errrorCode:
type: string
enum:
- UNKNOWN_SCOPE
- BAD_DATA
- UNSUPPORTED_CONTENT_TYPE
- UNSUPPORTED_CONTENT_ENCODING
- MISSING_FIELD
reason:
type: string
example: {
"errrorCode":"UNKNOWN_SCOPE",
"reason":"No tenant found for this scopeuuid : UUID"
}
errServerError:
required:
- errrorCode
- reason
properties:
errrorCode:
type: string
enum:
- INTERNAL_SERVER_ERROR
- INTERNAL_SEARCH_ERROR
reason:
type: string
example: {
"errrorCode":"INTERNAL_SERVER_ERROR",
"reason":"Service is not initialized completely"
}
errResponse:
required:
- errrorCode
- reason
properties:
errrorCode:
type: string
reason:
type: string