{"openapi":"3.0.2","info":{"title":"48 IX REST API","description":"REST API for 48 IX statistics and participant info","version":"0.1.0"},"paths":{"/utilization/all":{"get":{"summary":"Overall Utilization","description":"Get IX-Wide utilization statistics.","operationId":"overall_utilization_utilization_all_get","parameters":[{"required":false,"schema":{"title":"Period","type":"integer"},"name":"period","in":"query"},{"required":false,"schema":{"title":"Granularity","type":"integer","default":10},"name":"granularity","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverallUtilization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"summary":"Overall Utilization","description":"Get IX-Wide utilization statistics.","operationId":"overall_utilization_utilization_all_options","parameters":[{"required":false,"schema":{"title":"Period","type":"integer"},"name":"period","in":"query"},{"required":false,"schema":{"title":"Granularity","type":"integer","default":10},"name":"granularity","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverallUtilization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utilization/{port_id}":{"get":{"summary":"Port Utilization","description":"Get utilization statistics for a port.","operationId":"port_utilization_utilization__port_id__get","parameters":[{"required":true,"schema":{"title":"Port Id","type":"string"},"name":"port_id","in":"path"},{"required":false,"schema":{"title":"Period","type":"integer"},"name":"period","in":"query"},{"required":false,"schema":{"title":"Start","type":"string"},"name":"start","in":"query"},{"required":false,"schema":{"title":"End","type":"string"},"name":"end","in":"query"},{"required":false,"schema":{"title":"Granularity","type":"integer","default":10},"name":"granularity","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortUtilization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"summary":"Port Utilization","description":"Get utilization statistics for a port.","operationId":"port_utilization_utilization__port_id__options","parameters":[{"required":true,"schema":{"title":"Port Id","type":"string"},"name":"port_id","in":"path"},{"required":false,"schema":{"title":"Period","type":"integer"},"name":"period","in":"query"},{"required":false,"schema":{"title":"Start","type":"string"},"name":"start","in":"query"},{"required":false,"schema":{"title":"End","type":"string"},"name":"end","in":"query"},{"required":false,"schema":{"title":"Granularity","type":"integer","default":10},"name":"granularity","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortUtilization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/policy/update/":{"post":{"summary":"Update Policy","description":"Initiate a manual policy update.","operationId":"update_policy_policy_update__post","parameters":[{"required":false,"schema":{"title":"X-48Ix-Api-User","type":"string"},"name":"x-48ix-api-user","in":"header"},{"required":false,"schema":{"title":"X-48Ix-Api-Key","type":"string"},"name":"x-48ix-api-key","in":"header"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/acls/update/":{"post":{"summary":"Update Acls","description":"Initiate a manual policy update.","operationId":"update_acls_acls_update__post","parameters":[{"required":false,"schema":{"title":"X-48Ix-Api-User","type":"string"},"name":"x-48ix-api-user","in":"header"},{"required":false,"schema":{"title":"X-48Ix-Api-Key","type":"string"},"name":"x-48ix-api-key","in":"header"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/job/{job_id}":{"get":{"summary":"Job Status","description":"Get the status of a job by ID.","operationId":"job_status_job__job_id__get","parameters":[{"required":true,"schema":{"title":"Job Id","type":"integer"},"name":"job_id","in":"path"},{"required":false,"schema":{"title":"X-48Ix-Api-User","type":"string"},"name":"x-48ix-api-user","in":"header"},{"required":false,"schema":{"title":"X-48Ix-Api-Key","type":"string"},"name":"x-48ix-api-key","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"OverallUtilization":{"title":"OverallUtilization","required":["ingress","egress","ingress_average","egress_average","ingress_peak"],"type":"object","properties":{"ingress":{"title":"Ingress Utilization","type":"array","items":{"type":"array","items":{}},"description":"Actual port utilization data."},"egress":{"title":"Egress Utilization","type":"array","items":{"type":"array","items":{}},"description":"Actual port utilization data."},"ingress_average":{"title":"Ingress Average","type":"integer"},"egress_average":{"title":"Egress Average","type":"integer"},"ingress_peak":{"title":"Peak Ingress Utilization","type":"integer"}},"description":"IX-Wide utilization response model."},"PortUtilization":{"title":"PortUtilization","required":["ingress","egress","participant_id","port_id","location","ingress_average","egress_average"],"type":"object","properties":{"ingress":{"title":"Ingress Utilization","type":"array","items":{"type":"array","items":{}},"description":"Actual port utilization data."},"egress":{"title":"Egress Utilization","type":"array","items":{"type":"array","items":{}},"description":"Actual port utilization data."},"participant_id":{"title":"Participant ID","type":"integer","description":"Unique ID number assigned to the participant."},"port_id":{"title":"Port ID","type":"string","description":"Unique identifier assigned to each participant port."},"location":{"title":"Location","type":"string","description":"IX Location ID"},"ingress_average":{"title":"Ingress Average","type":"integer"},"egress_average":{"title":"Egress Average","type":"integer"}},"description":"Port utilization response model."},"UpdatePolicyResponse":{"title":"UpdatePolicyResponse","required":["id","in_progress","request_time","requestor"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"in_progress":{"title":"In Progress","type":"boolean"},"detail":{"title":"Detail","type":"string"},"request_time":{"title":"Request Time","type":"string","format":"date-time"},"complete_time":{"title":"Complete Time","type":"string","format":"date-time"},"requestor":{"title":"Requestor","type":"string"}},"description":"Response Model for Route Policy Update Request."},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}}}}}