@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Turbine Labs API
@base https://api.turbinelabs.io/v1.0
@version 1.0
@auth ApiKey Authorization in header
@endpoints 44
@hint download_for_search
@toc admin(4), changelog(6), zone(4), domain(4), proxy(4), listener(5), shared_rules(5), route(5), cluster(7)

@group admin
@endpoint GET /admin/user/self
@returns(200)

@endpoint GET /admin/user/self/access_tokens
@returns(200)

@endpoint POST /admin/user/self/access_tokens
@required {description: map}
@returns(200)

@endpoint DELETE /admin/user/self/access_token/{access-token-key}
@required {access-token-key: any, checksum: any}
@returns(200)

@endgroup

@group changelog
@endpoint GET /changelog/adhoc
@optional {filter: any}
@returns(200)

@endpoint GET /changelog/domain-graph/{domainKey}
@required {domainKey: any}
@optional {start: any, end: any, max_results: any, ref_id: any, direction: any}
@returns(200)

@endpoint GET /changelog/route-graph/{routeKey}
@required {routeKey: any}
@optional {start: any, end: any, max_results: any, ref_id: any, direction: any}
@returns(200)

@endpoint GET /changelog/shared-rules-graph/{sharedRulesKey}
@required {sharedRulesKey: any}
@optional {start: any, end: any, max_results: any, ref_id: any, direction: any}
@returns(200)

@endpoint GET /changelog/cluster-graph/{clusterKey}
@required {clusterKey: any}
@optional {start: any, end: any, max_results: any, ref_id: any, direction: any}
@returns(200)

@endpoint GET /changelog/zone/{zoneKey}
@required {zoneKey: any}
@optional {start: any, end: any, max_results: any, ref_id: any, direction: any}
@returns(200)

@endgroup

@group zone
@endpoint GET /zone
@optional {filters: any}
@returns(200)

@endpoint POST /zone
@required {zone: map}
@returns(200)

@endpoint GET /zone/{zoneKey}
@required {zoneKey: any}
@returns(200)

@endpoint DELETE /zone/{zoneKey}
@required {zoneKey: any, checksum: any}
@returns(200)

@endgroup

@group domain
@endpoint GET /domain
@optional {filters: any}
@returns(200)

@endpoint POST /domain
@required {domain: map}
@returns(200)

@endpoint GET /domain/{domainKey}
@required {domainKey: any}
@returns(200)

@endpoint DELETE /domain/{domainKey}
@required {domainKey: any, checksum: any}
@returns(200)

@endgroup

@group proxy
@endpoint GET /proxy
@optional {filters: any}
@returns(200)

@endpoint POST /proxy
@required {proxy: map}
@returns(200)

@endpoint GET /proxy/{proxyKey}
@required {proxyKey: any}
@returns(200)

@endpoint DELETE /proxy/{proxyKey}
@required {proxyKey: any, checksum: any}
@returns(200)

@endgroup

@group listener
@endpoint GET /listener
@optional {filters: any}
@returns(200)

@endpoint POST /listener
@required {listener: map}
@returns(200)

@endpoint GET /listener/{listenerKey}
@required {listenerKey: any}
@returns(200)

@endpoint PUT /listener/{listenerKey}
@required {listenerKey: any, listener: any}
@returns(200)

@endpoint DELETE /listener/{listenerKey}
@required {listenerKey: any, checksum: any}
@returns(200)

@endgroup

@group shared_rules
@endpoint GET /shared_rules
@optional {filters: any}
@returns(200)

@endpoint POST /shared_rules
@required {shared_rules: map}
@returns(200)

@endpoint GET /shared_rules/{sharedRulesKey}
@required {sharedRulesKey: any}
@returns(200)

@endpoint PUT /shared_rules/{sharedRulesKey}
@required {sharedRulesKey: any, shared_rules: any}
@returns(200)

@endpoint DELETE /shared_rules/{sharedRulesKey}
@required {sharedRulesKey: any, checksum: any}
@returns(200)

@endgroup

@group route
@endpoint GET /route
@optional {filters: any}
@returns(200)

@endpoint POST /route
@required {route: map}
@returns(200)

@endpoint GET /route/{routeKey}
@required {routeKey: any}
@returns(200)

@endpoint PUT /route/{routeKey}
@required {routeKey: any, route: any}
@returns(200)

@endpoint DELETE /route/{routeKey}
@required {routeKey: any, checksum: any}
@returns(200)

@endgroup

@group cluster
@endpoint GET /cluster
@optional {filters: any}
@returns(200)

@endpoint POST /cluster
@required {cluster: map}
@returns(200)

@endpoint GET /cluster/{clusterKey}
@required {clusterKey: any}
@returns(200)

@endpoint PUT /cluster/{clusterKey}
@required {clusterKey: any, cluster: any}
@returns(200)

@endpoint DELETE /cluster/{clusterKey}
@required {clusterKey: any, checksum: any}
@returns(200)

@endpoint POST /cluster/{clusterKey}/instances
@required {clusterKey: any, instance: map}
@returns(200)

@endpoint DELETE /cluster/{clusterKey}/instances/{instanceIdentifier}
@required {checksum: any, clusterKey: any, instanceIdentifier: any}
@returns(200)

@endgroup

@end
