{
    "info": {
        "termsOfServiceUrl": "https://tacc.cloud/tacc-usage-policy",
        "contact": "opensource@tacc.cloud",
        "description": "Science-as-a-Service platform to accelerate research and discovery",
        "licenseUrl": "https://tacc.cloud/license",
        "title": "TACC Cloud APIs"
    },
    "authorizations": {
        "oauth2": {
            "scopes": [
                {
                    "scope": "PRODUCTION",
                    "description": "catchall grant type for all api services."
                }
            ],
            "type": "oauth2",
            "grantTypes": {
                "implicit": {
                    "loginEndpoint": {
                        "url": "https://{{ api_server_base }}/login"
                    },
                    "tokenName": "access_token"
                },
                "authorization_code": {
                    "tokenRequestEndpoint": {
                        "url": "https://{{ api_server_base }}/authorize",
                        "clientSecretName": "client_secret",
                        "clientIdName": "client_id"
                    },
                    "tokenEndpoint": {
                        "url": "https://{{ api_server_base }}/token",
                        "tokenName": "access_code"
                    }
                }
            }
        },
        "basicAuth": {
            "type": "basicAuth"
        }
    },
    "swaggerVersion": "1.2",
    "apis": [
        {
            "url": "http://localhost:9999/clients",
            "path": "/clients",
            "description": "Create and manage API keys. Requires HTTP BASIC authentication",
            "api_declaration": {
                "authorizations": [
                    "basicAuth"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [],
                                "type": "MultipleClientResponse",
                                "notes": "Retrieve a list of your active clients. Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "responseMessages": [],
                                "summary": "List existing clients",
                                "nickname": "list",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"name\": \"test-client\",\n\t\"description\": \"This is a demo client I created to kick around the APIs.\",\n\t\"tier\": \"UNLIMITED\",\n\t\"callbackUrl\": null\n}",
                                        "description": "The api client to create",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ClientRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "SingleClientResponse",
                                "notes": "This will create a client and return your API keys. Your keys are necessary to obtain an access token and interact with the rest of the APIs. Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The user profile cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the profile database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Create a new client",
                                "nickname": "create",
                                "method": "POST"
                            }
                        ],
                        "path": "/clients/v2/",
                        "description": "Create and list clients.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the client to be deleted",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "clientName"
                                    }
                                ],
                                "nickname": "getClientByName",
                                "notes": "Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "summary": "Returns a detailed description of a named client.",
                                "type": "MultipleClientResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the client to be deleted",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "clientName"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "summary": "Immediately deletes this client and renders the API keys useless.",
                                "type": "EmptyClientResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/clients/v2/{clientName}",
                        "description": "Manage a client",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the client to be deleted",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "clientName"
                                    }
                                ],
                                "nickname": "listSubscriptionsForClient",
                                "notes": "Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "summary": "Lists all APIs to which the client is subscribed",
                                "type": "MultipleSubscriptionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the client to be subscribe to this api",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "clientName"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"apiName\": \"apps\",\n\t\"apiVersion\": \"v2\",\n\t\"apiProvider\": \"admin\",\n\t\"tier\": \"UNLIMITED\"\n}",
                                        "description": "The api client to create",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ClientSubscriptionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "addSubscriptionForClient",
                                "notes": "Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "summary": "Lists all APIs to which the client is subscribed",
                                "type": "SingleSubscriptionResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the client to be deleted",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "clientName"
                                    }
                                ],
                                "nickname": "deleteSubscriptionsForClient",
                                "notes": "Requires HTTP BASIC authentication with your API username and password.",
                                "is_websocket": false,
                                "summary": "Unsubscribe the client from all APIs",
                                "type": "EmptyClientResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/clients/v2/{clientName}/subscriptions",
                        "description": "Manage client subscriptions",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "SingleSubscriptionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Subscription",
                                "name": "result"
                            }
                        },
                        "id": "SingleSubscriptionResponse",
                        "name": ""
                    },
                    "MultipleClientResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Client"
                                },
                                "type": "array",
                                "description": "List of clients",
                                "name": "result"
                            }
                        },
                        "id": "MultipleClientResponse",
                        "name": ""
                    },
                    "EmptyClientResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "String",
                                "name": "result"
                            }
                        },
                        "id": "EmptyClientResponse",
                        "name": ""
                    },
                    "EmptySubscriptionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "String",
                                "name": "result"
                            }
                        },
                        "id": "EmptySubscriptionResponse",
                        "name": ""
                    },
                    "ClientSubscriptionRequest": {
                        "properties": {
                            "tier": {
                                "enum": [
                                    "UNLIMITED",
                                    "GOLD",
                                    "SILVER",
                                    "BRONZE"
                                ],
                                "type": "string",
                                "description": "The access tier for this client.",
                                "name": "tier"
                            },
                            "apiProvider": {
                                "required": true,
                                "type": "string",
                                "description": "The user who registered the API.",
                                "name": "apiProvider"
                            },
                            "apiVersion": {
                                "required": true,
                                "type": "string",
                                "description": "The current major version of the API. This is appended to the api_context to create the base API url.",
                                "name": "apiVersion"
                            },
                            "apiName": {
                                "required": true,
                                "type": "string",
                                "description": "The name of the API.",
                                "name": "apiName"
                            }
                        },
                        "id": "ClientSubscriptionRequest",
                        "name": ""
                    },
                    "MultipleSubscriptionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Subscription"
                                },
                                "type": "array",
                                "description": "List of subscriptions",
                                "name": "result"
                            }
                        },
                        "id": "MultipleSubscriptionResponse",
                        "name": ""
                    },
                    "Client": {
                        "properties": {
                            "name": {
                                "type": "string",
                                "description": "The name of the client.",
                                "name": "name"
                            },
                            "consumerKey": {
                                "type": "string",
                                "description": "The API key for this client.",
                                "name": "consumerKey"
                            },
                            "tier": {
                                "type": "string",
                                "description": "The access tier for this client.",
                                "name": "tier"
                            },
                            "callbackUrl": {
                                "type": "string",
                                "description": "Callback URL for OAuth authentication grant.",
                                "name": "callbackUrl"
                            },
                            "consumerSecret": {
                                "type": "string",
                                "description": "The API secret for this client.",
                                "name": "consumerSecret"
                            },
                            "description": {
                                "type": "string",
                                "description": "Description of the client. This will be shown to users when authentication via OAuth web flows",
                                "name": "description"
                            }
                        },
                        "id": "Client",
                        "name": ""
                    },
                    "SingleClientResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Client",
                                "name": "result"
                            }
                        },
                        "id": "SingleClientResponse",
                        "name": ""
                    },
                    "ClientRequest": {
                        "properties": {
                            "tier": {
                                "enum": [
                                    "UNLIMITED",
                                    "GOLD",
                                    "SILVER",
                                    "BRONZE"
                                ],
                                "type": "string",
                                "description": "The access tier for this client.",
                                "name": "tier"
                            },
                            "callbackUrl": {
                                "type": "string",
                                "description": "Callback URL for OAuth authentication grant.",
                                "name": "callbackUrl"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "The name of the client.",
                                "name": "name"
                            },
                            "description": {
                                "type": "string",
                                "description": "Description of the client. This will be shown to users when authentication via OAuth web flows",
                                "name": "description"
                            }
                        },
                        "id": "ClientRequest",
                        "name": ""
                    },
                    "Subscription": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "The current status of the API.",
                                "name": "status"
                            },
                            "apiProvider": {
                                "type": "string",
                                "description": "The user who registered the API.",
                                "name": "apiProvider"
                            },
                            "apiContext": {
                                "type": "string",
                                "description": "The base url path of the API.",
                                "name": "apiContext"
                            },
                            "apiVersion": {
                                "type": "string",
                                "description": "The current major version of the API. This is appended to the api_context to create the base API url.",
                                "name": "apiVersion"
                            },
                            "apiName": {
                                "type": "string",
                                "description": "The name of the API.",
                                "name": "apiName"
                            },
                            "tier": {
                                "type": "string",
                                "description": "The access tier for this client.",
                                "name": "tier"
                            }
                        },
                        "id": "Subscription",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/clients/v2",
                "apiVersion": "2.0.0-SNAPSHOT-r1dc40"
            },
            "name": "clients"
        },
        {
            "url": "http://localhost:9999/apps",
            "path": "/apps",
            "description": "Register and manage apps",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "produces": [
                    "application/json"
                ],
                "models": {
                    "MultipleApplicationResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "ApplicationSummary"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleApplicationResponse",
                        "name": ""
                    },
                    "ACL": {
                        "properties": {
                            "read": {
                                "type": "boolean",
                                "description": "can read",
                                "name": "read"
                            },
                            "write": {
                                "type": "boolean",
                                "description": "can write",
                                "name": "write"
                            },
                            "execute": {
                                "type": "boolean",
                                "description": "can execute",
                                "name": "execute"
                            }
                        },
                        "id": "ACL",
                        "name": ""
                    },
                    "Application": {
                        "properties": {
                            "defaultMemoryPerNode": {
                                "type": "string",
                                "description": "The default memory in GB to pass to the scheduler if none is given in the job description. This must be less than the max memory parameter in the target queue definition.",
                                "name": "defaultMemoryPerNode"
                            },
                            "defaultQueue": {
                                "type": "string",
                                "description": "The queue on the execution system that should be used if none is given in a job description. Ignore if the system does not support schedulers.",
                                "name": "defaultQueue"
                            },
                            "id": {
                                "type": "string",
                                "description": "Unique id of this app. Comprised of the app name-version.",
                                "name": "id"
                            },
                            "uuid": {
                                "type": "string",
                                "description": "The UUID of this application. UUID are 36 alphanumeric string.",
                                "name": "uuid"
                            },
                            "parameters": {
                                "items": {
                                    "$ref": "ApplicationParameter"
                                },
                                "type": "array",
                                "description": "The inputs parameters for this application. ",
                                "name": "parameters"
                            },
                            "shortDescription": {
                                "type": "string",
                                "description": "The short description of this application.",
                                "name": "shortDescription"
                            },
                            "defaultNodeCount": {
                                "type": "string",
                                "description": "The number of nodes that should be used if none is given in a job description. Ignore if the system does not support schedulers.",
                                "name": "defaultNodeCount"
                            },
                            "label": {
                                "type": "string",
                                "description": "The label to use when generating forms.",
                                "name": "label"
                            },
                            "defaultProcessorsPerNode": {
                                "type": "string",
                                "description": "The number of processors to pass to the scheduler if none are given in the job description. This must be 1 if the app is serial.",
                                "name": "defaultProcessorsPerNode"
                            },
                            "version": {
                                "type": "string",
                                "description": "The version of the application in #.#.# format. While the version does not need to be unique, the combination of name and version does have to be unique.",
                                "name": "version"
                            },
                            "templatePath": {
                                "type": "string",
                                "description": "The path to the wrapper script relative to the deploymentPath.",
                                "name": "templatePath"
                            },
                            "defaultMaxRunTime": {
                                "type": "string",
                                "description": "The max execution time that should be used if none is given in a job description. Ignore if the system does not support schedulers.",
                                "name": "defaultMaxRunTime"
                            },
                            "revision": {
                                "type": "integer",
                                "description": "The number of times this application has been revised.",
                                "name": "revision",
                                "format": "int32"
                            },
                            "available": {
                                "type": "boolean",
                                "description": "Whether the application is available.",
                                "name": "available"
                            },
                            "inputs": {
                                "items": {
                                    "$ref": "ApplicationInput"
                                },
                                "type": "array",
                                "description": "The inputs files for this application. ",
                                "name": "inputs"
                            },
                            "tags": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of tags related to this application.",
                                "name": "tags"
                            },
                            "outputs": {
                                "items": {
                                    "$ref": "ApplicationOutput"
                                },
                                "type": "array",
                                "description": "The outputs files for this application. ",
                                "name": "outputs"
                            },
                            "isPublic": {
                                "type": "boolean",
                                "description": "Whether the application is public or private.",
                                "name": "isPublic"
                            },
                            "longDescription": {
                                "type": "string",
                                "description": "The full text description of this input to use when generating forms.",
                                "name": "longDescription"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "The system id of the execution system where this app should run.",
                                "name": "executionSystem"
                            },
                            "testPath": {
                                "type": "string",
                                "description": "The path to the test script relative to the deploymentPath.",
                                "name": "testPath"
                            },
                            "ontology": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of ontology values describing this application.",
                                "name": "ontology"
                            },
                            "deploymentPath": {
                                "type": "string",
                                "description": "The location in the user's default storage system containing the application wrapper and dependencies.",
                                "name": "deploymentPath"
                            },
                            "icon": {
                                "type": "string",
                                "description": "The icon to associate with this app.",
                                "name": "icon"
                            },
                            "deploymentSystem": {
                                "type": "string",
                                "description": "The system id of the storage system where this app should run.",
                                "name": "deploymentSystem"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the application. The name does not have to be unique, but the combination of name and version does.",
                                "name": "name"
                            },
                            "checkpointable": {
                                "type": "boolean",
                                "description": "Whether the application supports checkpointing.",
                                "name": "checkpointable"
                            },
                            "lastModified": {
                                "type": "string",
                                "description": "The date this application was last modified in ISO 8601 format.",
                                "name": "lastModified",
                                "format": "date-time"
                            },
                            "modules": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of modules to load prior to the execution of the application.",
                                "name": "modules"
                            },
                            "executionType": {
                                "enum": [
                                    "ATMOSPHERE",
                                    "HPC",
                                    "CONDOR",
                                    "CLI"
                                ],
                                "type": "string",
                                "description": "The execution type of the application. If you're unsure, it's probably HPC.",
                                "name": "executionType"
                            },
                            "parallelism": {
                                "enum": [
                                    "SERIAL",
                                    "PARALLEL",
                                    "PTHREAD"
                                ],
                                "type": "string",
                                "description": "The parallelism type of the application. If you're unsure, it's probably SERIAL.",
                                "name": "parallelism"
                            },
                            "helpURI": {
                                "type": "string",
                                "description": "The URL where users can go for more information about the app.",
                                "name": "helpURI"
                            }
                        },
                        "id": "Application",
                        "name": ""
                    },
                    "ApplicationParameterValue": {
                        "properties": {
                            "defaultValue": {
                                "type": "string",
                                "description": "The default value for this parameter. The type will be determined by the value.type field.",
                                "name": "defaultValue"
                            },
                            "required": {
                                "type": "boolean",
                                "description": "Is this parameter required? If visible is false, this must be true.",
                                "name": "required"
                            },
                            "visible": {
                                "type": "boolean",
                                "description": "Should this parameter be visible? If not, there must be a default and it will be required.",
                                "name": "visible"
                            },
                            "validator": {
                                "type": "string",
                                "description": "The regular expression used to validate this parameter value. For enumerations, separate values with |",
                                "name": "validator"
                            },
                            "type": {
                                "enum": [
                                    "string",
                                    "number",
                                    "enumeration",
                                    "bool",
                                    "flag"
                                ],
                                "type": "string",
                                "description": "The type of this parameter value.",
                                "name": "type",
                                "required": true
                            },
                            "order": {
                                "type": "integer",
                                "description": "The order in which this parameter should be printed when generating an execution command for forked execution. This will also be the order in which paramters are returned in the response json.",
                                "name": "order",
                                "format": "int32"
                            },
                            "enum_values": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of enumerated object values.",
                                "name": "enum_values"
                            }
                        },
                        "id": "ApplicationParameterValue",
                        "name": ""
                    },
                    "ApplicationParameterOntology": {
                        "properties": {
                            "ontology": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "name": "ontology"
                            }
                        },
                        "id": "ApplicationParameterOntology",
                        "name": ""
                    },
                    "SingleApplicationResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Application",
                                "name": "result"
                            }
                        },
                        "id": "SingleApplicationResponse",
                        "name": ""
                    },
                    "ApplicationSummary": {
                        "properties": {
                            "name": {
                                "type": "string",
                                "description": "The name of the application. The name does not have to be unique, but the combination of name and version does.",
                                "name": "name"
                            },
                            "lastModified": {
                                "type": "string",
                                "description": "The date this application was last modified in ISO 8601 format.",
                                "name": "lastModified",
                                "format": "date-time"
                            },
                            "isPublic": {
                                "type": "boolean",
                                "description": "Whether the application is public or private.",
                                "name": "isPublic"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "The system id of the execution system where this app should run.",
                                "name": "executionSystem"
                            },
                            "version": {
                                "type": "string",
                                "description": "The version of the application in #.#.# format. While the version does not need to be unique, the combination of name and version does have to be unique.",
                                "name": "version"
                            },
                            "shortDescription": {
                                "type": "string",
                                "description": "The short description of this application.",
                                "name": "shortDescription"
                            },
                            "id": {
                                "type": "string",
                                "description": "Unique id of this app. Comprised of the app name-version.",
                                "name": "id"
                            },
                            "revision": {
                                "type": "integer",
                                "description": "The number of times this application has been revised.",
                                "name": "revision",
                                "format": "int32"
                            }
                        },
                        "id": "ApplicationSummary",
                        "name": ""
                    },
                    "ApplicationOutputOntology": {
                        "properties": {
                            "maxCardinality": {
                                "type": "integer",
                                "description": "The maximum number of times this output may appear.",
                                "name": "maxCardinality",
                                "format": "int32"
                            },
                            "minCardinality": {
                                "type": "integer",
                                "description": "The minimum number of times this output may appear.",
                                "name": "minCardinality",
                                "format": "int32"
                            },
                            "ontology": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "name": "ontology"
                            },
                            "fileTypes": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "The file types acceptable for this output.",
                                "name": "fileTypes"
                            }
                        },
                        "id": "ApplicationOutputOntology",
                        "name": ""
                    },
                    "ApplicationInputValue": {
                        "properties": {
                            "visible": {
                                "type": "boolean",
                                "description": "Should this parameter be visible? If not, there must be a default and it will be required.",
                                "name": "visible"
                            },
                            "defaultValue": {
                                "type": "string",
                                "description": "The default value for this parameter. The type will be determined by the value.type field.",
                                "name": "defaultValue"
                            },
                            "required": {
                                "type": "boolean",
                                "description": "Is this parameter required? If visible is false, this must be true.",
                                "name": "required"
                            },
                            "order": {
                                "minimum": 0,
                                "type": "integer",
                                "description": "The order in which this parameter should be printed when generating an execution command for forked execution. This will also be the order in which paramters are returned in the response json.",
                                "name": "order",
                                "format": "int32"
                            },
                            "validator": {
                                "type": "string",
                                "description": "The regular expression used to validate this parameter value. For enumerations, separate values with |",
                                "name": "validator"
                            }
                        },
                        "id": "ApplicationInputValue",
                        "name": ""
                    },
                    "ApplicationPermission": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "Username associate with this permission",
                                "name": "username"
                            },
                            "permission": {
                                "type": "ACL",
                                "name": "permission"
                            }
                        },
                        "id": "ApplicationPermission",
                        "name": ""
                    },
                    "ApplicationParameterDetails": {
                        "properties": {
                            "argument": {
                                "type": "string",
                                "description": "The command line value of this parameter (ex -n, --name, -name, etc)",
                                "name": "argument"
                            },
                            "showArgument": {
                                "type": "boolean",
                                "description": "Whether the argument value should be passed into the wrapper at run time",
                                "name": "showArgument"
                            },
                            "description": {
                                "type": "string",
                                "description": "Description of this parameter.",
                                "name": "description"
                            },
                            "label": {
                                "type": "string",
                                "description": "The label for this parameter",
                                "name": "label"
                            }
                        },
                        "id": "ApplicationParameterDetails",
                        "name": ""
                    },
                    "ApplicationInput": {
                        "properties": {
                            "value": {
                                "required": true,
                                "type": "ApplicationInputValue",
                                "description": "The inputs files for this input. ",
                                "name": "value"
                            },
                            "details": {
                                "required": true,
                                "type": "ApplicationInputDetails",
                                "description": "The details for this input. ",
                                "name": "details"
                            },
                            "semantics": {
                                "required": true,
                                "type": "ApplicationInputOntology",
                                "description": "The ontologies for this input. ",
                                "name": "semantics"
                            },
                            "id": {
                                "required": true,
                                "type": "string",
                                "description": "The id of this input. This will be the replacement string in your wrapper scripts.",
                                "name": "id"
                            }
                        },
                        "id": "ApplicationInput",
                        "name": ""
                    },
                    "ApplicationParameter": {
                        "properties": {
                            "value": {
                                "required": true,
                                "type": "ApplicationParameterValue",
                                "description": "The inputs files for this parameter. ",
                                "name": "value"
                            },
                            "details": {
                                "required": true,
                                "type": "ApplicationParameterDetails",
                                "description": "The details for this parameter. ",
                                "name": "details"
                            },
                            "semantics": {
                                "required": true,
                                "type": "ApplicationParameterOntology",
                                "description": "The ontologies for this parameter. ",
                                "name": "semantics"
                            },
                            "id": {
                                "required": true,
                                "type": "string",
                                "description": "The id of this parameter. This will be the replacement string in your wrapper scripts.",
                                "name": "id"
                            }
                        },
                        "id": "ApplicationParameter",
                        "name": ""
                    },
                    "ApplicationInputDetails": {
                        "properties": {
                            "argument": {
                                "type": "string",
                                "description": "The command line value of this input (ex -n, --name, -name, etc)",
                                "name": "argument"
                            },
                            "showArgument": {
                                "type": "boolean",
                                "description": "Whether the argument value should be passed into the wrapper at run time",
                                "name": "showArgument"
                            },
                            "description": {
                                "type": "string",
                                "description": "Description of this input.",
                                "name": "description"
                            },
                            "label": {
                                "type": "string",
                                "description": "The label for this input",
                                "name": "label"
                            }
                        },
                        "id": "ApplicationInputDetails",
                        "name": ""
                    },
                    "ApplicationOutput": {
                        "properties": {
                            "value": {
                                "required": true,
                                "type": "ApplicationParameterValue",
                                "description": "The inputs files for this output. ",
                                "name": "value"
                            },
                            "details": {
                                "required": true,
                                "type": "ApplicationParameterDetails",
                                "description": "The details for this output. ",
                                "name": "details"
                            },
                            "semantics": {
                                "required": true,
                                "type": "ApplicationOutputOntology",
                                "description": "The ontologies for this output. ",
                                "name": "semantics"
                            },
                            "id": {
                                "required": true,
                                "type": "string",
                                "description": "The id of this output. This will be the replacement string in your wrapper scripts.",
                                "name": "id"
                            }
                        },
                        "id": "ApplicationOutput",
                        "name": ""
                    },
                    "ApplicationRequest": {
                        "properties": {
                            "executionType": {
                                "enum": [
                                    "ATMOSPHERE",
                                    "HPC",
                                    "CONDOR",
                                    "CLI"
                                ],
                                "type": "string",
                                "description": "The execution type of the application. If you're unsure, it's probably HPC.",
                                "name": "executionType",
                                "required": true
                            },
                            "defaultQueue": {
                                "type": "string",
                                "description": "The queue on the execution system that should be used if none is given in a job description. Ignore if the system does not support schedulers.",
                                "name": "defaultQueue"
                            },
                            "defaultProcessors": {
                                "type": "int",
                                "description": "The number of processors to pass to the scheduler if none are given in the job description. This must be 1 if the app is serial.",
                                "name": "defaultProcessors"
                            },
                            "parameters": {
                                "items": {
                                    "$ref": "ApplicationParameter"
                                },
                                "required": true,
                                "type": "array",
                                "description": "The inputs parameters for this application. ",
                                "name": "parameters"
                            },
                            "shortDescription": {
                                "type": "string",
                                "description": "The short description of this application.",
                                "name": "shortDescription"
                            },
                            "defaultNodeCount": {
                                "type": "string",
                                "description": "The number of nodes that should be used if none is given in a job description. Ignore if the system does not support schedulers.",
                                "name": "defaultNodeCount"
                            },
                            "label": {
                                "type": "string",
                                "description": "The label to use when generating forms.",
                                "name": "label"
                            },
                            "version": {
                                "required": true,
                                "type": "string",
                                "description": "The version of the application in #.#.# format. While the version does not need to be unique, the combination of name and version does have to be unique.",
                                "name": "version"
                            },
                            "templatePath": {
                                "required": true,
                                "type": "string",
                                "description": "The path to the wrapper script relative to the deploymentPath.",
                                "name": "templatePath"
                            },
                            "defaultMaxRunTime": {
                                "type": "int",
                                "description": "The max execution time that should be used if none is given in a job description. Ignore if the system does not support schedulers.",
                                "name": "defaultMaxRunTime"
                            },
                            "available": {
                                "required": true,
                                "type": "boolean",
                                "description": "Whether the application is available.",
                                "name": "available"
                            },
                            "inputs": {
                                "items": {
                                    "$ref": "ApplicationInput"
                                },
                                "required": true,
                                "type": "array",
                                "description": "The inputs files for this application. ",
                                "name": "inputs"
                            },
                            "tags": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of tags related to this application.",
                                "name": "tags"
                            },
                            "outputs": {
                                "items": {
                                    "$ref": "ApplicationOutput"
                                },
                                "type": "array",
                                "description": "The outputs files for this application. ",
                                "name": "outputs"
                            },
                            "longDescription": {
                                "type": "string",
                                "description": "The full text description of this input to use when generating forms.",
                                "name": "longDescription"
                            },
                            "executionSystem": {
                                "required": true,
                                "type": "string",
                                "description": "The system id of the execution system where this app should run.",
                                "name": "executionSystem"
                            },
                            "testPath": {
                                "required": true,
                                "type": "string",
                                "description": "The path to the test script relative to the deploymentPath.",
                                "name": "testPath"
                            },
                            "ontology": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of ontology values describing this application.",
                                "name": "ontology"
                            },
                            "deploymentPath": {
                                "required": true,
                                "type": "string",
                                "description": "The location in the user's default storage system containing the application wrapper and dependencies.",
                                "name": "deploymentPath"
                            },
                            "icon": {
                                "type": "string",
                                "description": "The icon to associate with this app.",
                                "name": "icon"
                            },
                            "deploymentSystem": {
                                "required": true,
                                "type": "string",
                                "description": "The system id of the storage system where this app should run.",
                                "name": "deploymentSystem"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "The name of the application. The name does not have to be unique, but the combination of name and version does.",
                                "name": "name"
                            },
                            "checkpointable": {
                                "type": "boolean",
                                "description": "Whether the application supports checkpointing.",
                                "name": "checkpointable"
                            },
                            "modules": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "An array of modules to load prior to the execution of the application.",
                                "name": "modules"
                            },
                            "defaultMemory": {
                                "type": "string",
                                "description": "The default memory in GB to pass to the scheduler if none is given in the job description. This must be less than the max memory parameter in the target queue definition.",
                                "name": "defaultMemory"
                            },
                            "parallelism": {
                                "enum": [
                                    "SERIAL",
                                    "PARALLEL",
                                    "PTHREAD"
                                ],
                                "type": "string",
                                "description": "The parallelism type of the application. If you're unsure, it's probably SERIAL.",
                                "name": "parallelism"
                            },
                            "helpURI": {
                                "type": "string",
                                "description": "The URL where users can go for more information about the app.",
                                "name": "helpURI"
                            }
                        },
                        "id": "ApplicationRequest",
                        "name": ""
                    },
                    "ApplicationOperationRequest": {
                        "properties": {
                            "name": {
                                "type": "string",
                                "description": "Name of cloned app. Only used with the clone action.",
                                "name": "name"
                            },
                            "storageSystem": {
                                "type": "string",
                                "description": "Storage system on which the cloned app's assets resides. Only used with the clone action.",
                                "name": "storageSystem"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "System on which the clone apps should run. Only used with the clone action.",
                                "name": "executionSystem"
                            },
                            "version": {
                                "type": "string",
                                "description": "Version of the cloned app. Only used with the clone action.",
                                "name": "version"
                            },
                            "action": {
                                "required": true,
                                "type": "string",
                                "description": "Action to perform on the file or folder.",
                                "enum": [
                                    "publish",
                                    "clone"
                                ],
                                "name": "action"
                            },
                            "deploymentPath": {
                                "type": "string",
                                "description": "Path to the on cloned app's deployment folder on its storage system. Only used with the clone action.",
                                "name": "deploymentPath"
                            }
                        },
                        "id": "ApplicationOperationRequest",
                        "name": ""
                    },
                    "ApplicationFormResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "string",
                                "description": "HTML form representing a job submission request for this app",
                                "name": "result"
                            }
                        },
                        "id": "ApplicationFormResponse",
                        "name": ""
                    },
                    "ApplicationPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "ApplicationPermission"
                                },
                                "type": "array",
                                "description": "An array of permission objects for this application.",
                                "name": "result"
                            }
                        },
                        "id": "ApplicationPermissionResponse",
                        "name": ""
                    },
                    "ApplicationPermissionRequest": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The username of the api user whose permission is to be set.",
                                "name": "username"
                            },
                            "permission": {
                                "required": true,
                                "type": "string",
                                "description": "The permission to set",
                                "enum": [
                                    "READ",
                                    "WRITE",
                                    "EXECUTE",
                                    "READ_WRITE",
                                    "READ_EXECUTE",
                                    "WRITE_EXECUTE",
                                    "ALL",
                                    "NONE"
                                ],
                                "name": "permission"
                            }
                        },
                        "id": "ApplicationPermissionRequest",
                        "name": ""
                    },
                    "ApplicationInputOntology": {
                        "properties": {
                            "minCardinality": {
                                "type": "integer",
                                "description": "The minimum number of times this input may appear.",
                                "name": "minCardinality",
                                "format": "int32"
                            },
                            "ontology": {
                                "items": {
                                    "type": "string"
                                },
                                "required": true,
                                "type": "array",
                                "name": "ontology"
                            },
                            "fileTypes": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "The file types acceptable for this input.",
                                "name": "fileTypes"
                            }
                        },
                        "id": "ApplicationInputOntology",
                        "name": ""
                    },
                    "EmptyApplicationResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "string",
                                "description": "empty result",
                                "name": "result"
                            }
                        },
                        "id": "EmptyApplicationResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only public apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "publicOnly"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only private apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "privateOnly"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "list",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Get a list of available applications.",
                                "type": "MultipleApplicationResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"name\": \"wc-demo\",\n\t\"parallelism\": \"SERIAL\",\n\t\"version\": \"1.00\",\n\t\"helpURI\": \"http: //www.gnu.org/s/coreutils/manual/html_node/wc-invocation.html\",\n\t\"label\": \"Word Count\",\n\t\"shortDescription\": \"Count words in a file\",\n\t\"longDescription\": \"\",\n\t\"tags\": [\n\t\t\"textutils\",\n\t\t\"gnu\"\n\t],\n\t\"ontology\": [\n\t\t\"http: //sswapmeet.sswap.info/algorithms/wc\"\n\t],\n\t\"defaultMemory\": 1,\n\t\"defaultProcessors\": 1,\n\t\"defaultQueue\": \"debug\",\n\t\"deploymentPath\": \"apps/wc-1.00\",\n\t\"deploymentSystem\": \"demo.storage.example.com\",\n\t\"executionSystem\": \"demo.execute.example.com\",\n\t\"executionType\": \"HPC\",\n\t\"templatePath\": \"wrapper.sh\",\n\t\"testPath\": \"wrapper.sh\",\n\t\"checkpointable\": false,\n\t\"modules\": [\n\t\t\"purge\",\n\t\t\"load TACC\"\n\t],\n\t\"inputs\": [\n\t\t{\n\t\t\t\"id\": \"query1\",\n\t\t\t\"value\": {\n\t\t\t\t\"default\": \"agave: //demo.storage.example.com/apps/wc-1.00/picksumipsum.txt\",\n\t\t\t\t\"validator\": \"\",\n\t\t\t\t\"required\": true,\n\t\t\t\t\"visible\": true\n\t\t\t},\n\t\t\t\"details\": {\n\t\t\t\t\"label\": \"File to count words in: \",\n\t\t\t\t\"description\": \"\"\n\t\t\t},\n\t\t\t\"semantics\": {\n\t\t\t\t\"ontology\": [\n\t\t\t\t\t\"http: //sswapmeet.sswap.info/util/TextDocument\"\n\t\t\t\t],\n\t\t\t\t\"minCardinality\": 1,\n\t\t\t\t\"maxCardinality\": 1,\n\t\t\t\t\"fileTypes\": [\n\t\t\t\t\t\"text-0\"\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t],\n\t\"parameters\": [\n\t\t{\n\t\t\t\"id\": \"printLongestLine\",\n\t\t\t\"value\": {\n\t\t\t\t\"default\": false,\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"validator\": \"\",\n\t\t\t\t\"visible\": true,\n\t\t\t\t\"required\": false\n\t\t\t},\n\t\t\t\"details\": {\n\t\t\t\t\"label\": \"Print the length of the longest line\",\n\t\t\t\t\"description\": \"Command option -L\"\n\t\t\t},\n\t\t\t\"semantics\": {\n\t\t\t\t\"ontology\": [\n\t\t\t\t\t\"xs: boolean\"\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t]\n}",
                                        "description": "The description of the app to add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ApplicationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "add",
                                "notes": "This is a generic endpoint to add and update applications. If the name and version combination don't exist already, a new application is created. If the combination does exist, the applciation will be updated and the revision incremented.",
                                "is_websocket": false,
                                "summary": "Register and update new applications.",
                                "type": "SingleApplicationResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/apps/v2/",
                        "description": "Register and update new applications.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    }
                                ],
                                "nickname": "get",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Get details of an application by it's unique id.",
                                "type": "SingleApplicationResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"name\": \"wc-demo\",\n\t\"parallelism\": \"SERIAL\",\n\t\"version\": \"1.00\",\n\t\"helpURI\": \"http: //www.gnu.org/s/coreutils/manual/html_node/wc-invocation.html\",\n\t\"label\": \"Word Count\",\n\t\"shortDescription\": \"Count words in a file\",\n\t\"longDescription\": \"\",\n\t\"tags\": [\n\t\t\"textutils\",\n\t\t\"gnu\"\n\t],\n\t\"ontology\": [\n\t\t\"http: //sswapmeet.sswap.info/algorithms/wc\"\n\t],\n\t\"defaultMemory\": 1,\n\t\"defaultProcessors\": 1,\n\t\"defaultQueue\": \"debug\",\n\t\"deploymentPath\": \"apps/wc-1.00\",\n\t\"deploymentSystem\": \"demo.storage.example.com\",\n\t\"executionSystem\": \"demo.execute.example.com\",\n\t\"executionType\": \"HPC\",\n\t\"templatePath\": \"wrapper.sh\",\n\t\"testPath\": \"wrapper.sh\",\n\t\"checkpointable\": false,\n\t\"modules\": [\n\t\t\"purge\",\n\t\t\"load TACC\"\n\t],\n\t\"inputs\": [\n\t\t{\n\t\t\t\"id\": \"query1\",\n\t\t\t\"value\": {\n\t\t\t\t\"default\": \"agave: //demo.storage.example.com/apps/wc-1.00/picksumipsum.txt\",\n\t\t\t\t\"validator\": \"\",\n\t\t\t\t\"required\": true,\n\t\t\t\t\"visible\": true\n\t\t\t},\n\t\t\t\"details\": {\n\t\t\t\t\"label\": \"File to count words in: \",\n\t\t\t\t\"description\": \"\"\n\t\t\t},\n\t\t\t\"semantics\": {\n\t\t\t\t\"ontology\": [\n\t\t\t\t\t\"http: //sswapmeet.sswap.info/util/TextDocument\"\n\t\t\t\t],\n\t\t\t\t\"minCardinality\": 1,\n\t\t\t\t\"maxCardinality\": 1,\n\t\t\t\t\"fileTypes\": [\n\t\t\t\t\t\"text-0\"\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t],\n\t\"parameters\": [\n\t\t{\n\t\t\t\"id\": \"printLongestLine\",\n\t\t\t\"value\": {\n\t\t\t\t\"default\": false,\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"validator\": \"\",\n\t\t\t\t\"visible\": true,\n\t\t\t\t\"required\": false\n\t\t\t},\n\t\t\t\"details\": {\n\t\t\t\t\"label\": \"Print the length of the longest line\",\n\t\t\t\t\"description\": \"Command option -L\"\n\t\t\t},\n\t\t\t\"semantics\": {\n\t\t\t\t\"ontology\": [\n\t\t\t\t\t\"xs: boolean\"\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t]\n}",
                                        "description": "The description of the app to add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ApplicationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "update",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Update an application.",
                                "type": "SingleApplicationResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"action\":\"clone\",\n\t\"name\": \"wc-demo-clone\",\n\t\"version\": \"1.0.0\",\n\t\"deploymentPath\": \"apps/wc-1.0.0-copy\",\n\t\"deploymentSystem\": \"demo.storage.example.com\",\n\t\"executionSystem\": \"demo.execute.example.com\"\n}",
                                        "description": "The operation to perform.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ApplicationOperationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "manage",
                                "notes": "The PUT operation allows users to performan several management tasks on applications such as cloning a public app for use privately as well as publishing an app for public use. Note that only API administrators can publish applications. Cloning a public app will copy the deployment folder of the public app to your deploymentSystem. Cloning private apps will not.",
                                "is_websocket": false,
                                "summary": "Edit an application.",
                                "type": "SingleApplicationResponse",
                                "method": "PUT"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "Disables an application from further use. The application dependencies remain unchanged, however the application is not longer available from the registry. Once deleted, applications cannot be brought back into service.",
                                "is_websocket": false,
                                "summary": "Deletes an application.",
                                "type": "EmptyApplicationResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/apps/v2/{appId}",
                        "description": "Get application details",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissions",
                                "notes": "Users must have read access to this application to view the permissions.",
                                "is_websocket": false,
                                "summary": "Get the permission ACL for this application.",
                                "type": "ApplicationPermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ_EXECUTE\"\n}",
                                        "description": "The permission add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ApplicationPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateApplicationPermissions",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "summary": "Add or update a user's permission for an application.",
                                "type": "EmptyApplicationResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    }
                                ],
                                "nickname": "deletePermissions",
                                "notes": "This will reset the permissions such that only the user who registered the permission will be able to view it. Application owners cannot remote their own permissions from an application.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions on an application.",
                                "type": "EmptyApplicationResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/apps/v2/{appId}/pems",
                        "description": "Get application permission details",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissionsForUser",
                                "notes": "Users must have read access to this application to view the permissions.",
                                "is_websocket": false,
                                "summary": "Get a specific user's permissions for an application.",
                                "type": "ApplicationPermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ_EXECUTE\"\n}",
                                        "description": "The permission add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "ApplicationPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissionsForUser",
                                "notes": "To delete a single user, use the DELETE operation or set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "summary": "Add or update a user's permission for an application.",
                                "type": "EmptyApplicationResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "appId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "nickname": "deletePermissionsForUser",
                                "notes": "This will remove all permissions on an application for a user. Application owners cannot remote their own permissions from an application.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions for the given user on an application.",
                                "type": "EmptyApplicationResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/apps/v2/{appId}/pems/{username}",
                        "description": "Get application permission details for a specific user.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the application. This should not include the version number.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "name"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only public apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "publicOnly"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only private apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "privateOnly"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listByName",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Get a list of applications with the given name.",
                                "type": "MultipleApplicationResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/apps/v2/name/{name}",
                        "description": "List applications matching the the given name",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The tag of the application.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "tag"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only public apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "publicOnly"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only private apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "privateOnly"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listByTag",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Get a list of applications with the given tag.",
                                "type": "MultipleApplicationResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/apps/v2/tag/{tag}",
                        "description": "List applications matching the the given tag",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The tag of the ontological term.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "term"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only public apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "publicOnly"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only private apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "privateOnly"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listByOntologyTerm",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Get a list of applications with the given ontological term.",
                                "type": "MultipleApplicationResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/apps/v2/ontology/{term}",
                        "description": "List applications matching the the given ontological term",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [],
                                "nickname": "getJobSubmissionForm",
                                "notes": "The form will vary from application to application as each application is different, but the basic structure will remain the same.",
                                "is_websocket": false,
                                "summary": "Get a submission form for the named application.",
                                "type": "ApplicationFormResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/apps/v2/{uniqueName}/form",
                        "description": "Generate a HTML form to run this application.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The system in question",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only public apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "publicOnly"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Whether to return only private apps.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "privateOnly"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listBySystemId",
                                "notes": "If authenticated, private applications will be included in the response. If not, only public applications will be returned.",
                                "is_websocket": false,
                                "summary": "Get a list of applications with the given systemId as their executionHost.",
                                "type": "MultipleApplicationResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/apps/v2/system/{systemId}",
                        "description": "List applications registered on the given system",
                        "has_websocket": false
                    }
                ],
                "resourcePath": "/apps/v2",
                "apiVersion": "2.2.14"
            },
            "name": "apps"
        },
        {
            "url": "http://localhost:9999/files",
            "path": "/files",
            "description": "Move and manage data",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "sourcefilePath"
                                    }
                                ],
                                "produces": [
                                    "application/octet-stream"
                                ],
                                "type": "void",
                                "notes": "This will return the raw file from the user's default storage location.",
                                "is_websocket": false,
                                "summary": "Download a file from the user's default storage location.",
                                "nickname": "downloadFromDefaultSystem",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "sourcefilePath"
                                    },
                                    {
                                        "description": "The file format this file is in. Defaults to raw. This will be used in file transform operations.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "fileType"
                                    },
                                    {
                                        "description": "The URI to notify when the import is complete. This can be an email address or http URL. If a URL is given, a GET will be made to this address. URL templating is supported. Valid template values are: ${NAME}, ${SOURCE_FORMAT}, ${DEST_FORMAT}, ${STATUS}",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "callbackURL"
                                    },
                                    {
                                        "description": "The name of the file after importing. If not specified, the uploaded file name will be used.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "fileName"
                                    },
                                    {
                                        "description": "The URL to import the file from. This parameter is used if not file is uploaded with this post.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "urlToIngest"
                                    },
                                    {
                                        "description": "The file object to import.",
                                        "name": "fileToUpload",
                                        "paramType": "form",
                                        "dataType": "file",
                                        "type": "void",
                                        "required": false
                                    }
                                ],
                                "type": "SingleRemoteFileResponse",
                                "notes": "This will return a handle to the file upload.",
                                "consumes": [
                                    "multipart/form-data"
                                ],
                                "is_websocket": false,
                                "summary": "Import a file via direct upload or importing from a url to the user's default storage location.",
                                "nickname": "importToDefaultSystem",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "sourcefilePath"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"action\":\"mkdir\",\n\t\"path\": \"deleteme\"\n}",
                                        "description": "The operation to perform. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "FileOperationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "manageOnDefaultSystem",
                                "notes": "This will return a handle to the file upload.",
                                "is_websocket": false,
                                "summary": "Perform an action on a file or folder.",
                                "type": "EmptyRemoteFileResponse",
                                "method": "PUT"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "sourcefilePath"
                                    }
                                ],
                                "nickname": "deleteFromDefaultSystem",
                                "notes": "This will delete the file or folder at the given path from the user's default storage location.",
                                "is_websocket": false,
                                "summary": "Deletes a file or folder.",
                                "type": "EmptyRemoteFileResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/files/v2/media/{sourcefilePath}",
                        "description": "Manage files and folders",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    }
                                ],
                                "produces": [
                                    "application/octet-stream"
                                ],
                                "type": "void",
                                "notes": "This will return the raw file from the user's default storage location.",
                                "is_websocket": false,
                                "summary": "Download a file from the user's default storage location.",
                                "nickname": "download",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "description": "The file format this file is in. Defaults to raw. This will be used in file transform operations.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "fileType"
                                    },
                                    {
                                        "description": "The URI to notify when the import is complete. This can be an email address or http URL. If a URL is given, a GET will be made to this address. URL templating is supported. Valid template values are: ${NAME}, ${SOURCE_FORMAT}, ${DEST_FORMAT}, ${STATUS}",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "callbackURL"
                                    },
                                    {
                                        "description": "The name of the file after importing. If not specified, the uploaded file name will be used.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "fileName"
                                    },
                                    {
                                        "description": "The URL to import the file from. This parameter is used if not file is uploaded with this post.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "form",
                                        "name": "urlToIngest"
                                    },
                                    {
                                        "description": "The file object to import.",
                                        "name": "fileToUpload",
                                        "paramType": "form",
                                        "dataType": "file",
                                        "type": "void",
                                        "required": false
                                    },
                                    {
                                        "defaultValue": "[]",
                                        "description": "A list of notification objects to apply to the transfer. ",
                                        "allowMultiple": true,
                                        "required": false,
                                        "type": "FileNotificationRequest",
                                        "paramType": "form",
                                        "name": "notifications"
                                    }

                                ],
                                "type": "SingleRemoteFileResponse",
                                "notes": "This will return a handle to the file upload.",
                                "consumes": [
                                    "multipart/form-data"
                                ],
                                "is_websocket": false,
                                "summary": "Import a file via direct upload or importing from a url to the user's default storage location.",
                                "nickname": "importData",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"action\":\"mkdir\",\n\t\"dirName\": \"deleteme\"\n}",
                                        "description": "The operation to perform. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "FileOperationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "manage",
                                "notes": "This will return a handle to the file upload.",
                                "is_websocket": false,
                                "summary": "Perform an action on a file or folder.",
                                "type": "EmptyRemoteFileResponse",
                                "method": "PUT"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "This will delete the file or folder at the given path from the user's default storage location.",
                                "is_websocket": false,
                                "summary": "Deletes a file or folder.",
                                "type": "EmptyRemoteFileResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/files/v2/media/system/{systemId}/{filePath}",
                        "description": "Manage files and folders on a specific system",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listOnDefaultSystem",
                                "notes": "This will return the a directory listing or information about a single file if the path is not a directory.",
                                "is_websocket": false,
                                "summary": "Get a remote directory listing.",
                                "type": "MultipleRemoteFileResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/files/v2/listings/{filePath}",
                        "description": "Obtain remote directory listings.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "list",
                                "notes": "This will return the a directory listing or information about a single file if the path is not a directory.",
                                "is_websocket": false,
                                "summary": "Get a remote directory listing on a specific system.",
                                "type": "MultipleRemoteFileResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/files/v2/listings/system/{systemId}/{filePath}",
                        "description": "Obtian remote directory listings.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "getHistoryOnDefaultSystem",
                                "notes": "This will return the raw file from the user's default storage location.",
                                "is_websocket": false,
                                "summary": "Download a file from the user's default storage location.",
                                "type": "FileHistoryResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/files/v2/history/{filePath}",
                        "description": "View history of api actions on this file/folder",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The path of the file relative to the given system root location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "getHistory",
                                "notes": "This will return history of api actions on this file/folder.",
                                "is_websocket": false,
                                "summary": "Return history of api actions.",
                                "type": "FileHistoryResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/files/v2/history/system/{systemId}/{filePath}",
                        "description": "View history of api actions on this file/folder",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissionsOnDefaultSystem",
                                "notes": "You must have read permission on this file or folder to call this endpoint",
                                "is_websocket": false,
                                "summary": "List all the share permissions for a file or folder.",
                                "type": "MultiplePermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ_EXECUTE\",\n\t\"recursive\": false\n}",
                                        "description": "The permission add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "FilePermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissionsOnDefaultSystem",
                                "notes": "Due to the nature of the underlying file system, permissions are autonomous. READ and WRITE are exclusive. ALL implies ownership. If you want someone to be able to see and edit a document, give them all=true permissions.",
                                "is_websocket": false,
                                "summary": "Update permissions for a single user.",
                                "type": "EmptyRemoteFileResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/files/v2/pems/{filePath}",
                        "description": "Manage share permissions on files and folders",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissions",
                                "notes": "You must have read permission on this file or folder to call this endpoint",
                                "is_websocket": false,
                                "summary": "List all the share permissions for a file or folder.",
                                "type": "MultiplePermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ_EXECUTE\",\n\t\"recursive\": false\n}",
                                        "description": "The permission add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "FilePermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissions",
                                "notes": "Due to the nature of the underlying file system, permissions are autonomous. READ and WRITE are exclusive. ALL implies ownership. If you want someone to be able to see and edit a document, give them all=true permissions.",
                                "is_websocket": false,
                                "summary": "Update permissions for a single user.",
                                "type": "MultiplePermissionResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The path of the file relative to the user's default storage location.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "description": "The unique id of the system on which the data resides.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    }
                                ],
                                "nickname": "deletePermissions",
                                "notes": "Once applied, users will not be able to view or edit these files anymore. Keep this in mind before calling this on data referenced by shared applications.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions on a file except those of the owner.",
                                "type": "EmptyRemoteFileResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/files/v2/pems/system/{systemId}/{filePath}",
                        "description": "Manage share permissions on files and folders",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "FileOperationRequest": {
                        "properties": {
                            "action": {
                                "required": true,
                                "type": "string",
                                "description": "Action to perform on the file or folder.",
                                "enum": [
                                    "mkdir",
                                    "rename",
                                    "copy",
                                    "move"
                                ],
                                "name": "action"
                            },
                            "path": {
                                "type": "string",
                                "description": "Destination file or folder.",
                                "name": "path"
                            }
                        },
                        "id": "FileOperationRequest",
                        "name": ""
                    },
                    "SingleRemoteFileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "RemoteFile",
                                "name": "result"
                            }
                        },
                        "id": "SingleRemoteFileResponse",
                        "name": ""
                    },
                    "MultiplePermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "FilePermission"
                                },
                                "type": "array",
                                "description": "One or more file permissions",
                                "name": "result"
                            }
                        },
                        "id": "MultiplePermissionResponse",
                        "name": ""
                    },
                    "FileHistory": {
                        "properties": {
                            "status": {
                                "type": "String",
                                "description": "The status of the file/folder after this event.",
                                "name": "status"
                            },
                            "description": {
                                "type": "String",
                                "description": "A brief description of the event details.",
                                "name": "description"
                            },
                            "created": {
                                "type": "string",
                                "description": "The date of the event.",
                                "name": "created",
                                "format": "date-time"
                            }
                        },
                        "id": "FileHistory",
                        "name": ""
                    },
                    "FileHistoryResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "FileHistory"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "FileHistoryResponse",
                        "name": ""
                    },
                    "RemoteFile": {
                        "properties": {
                            "mimeType": {
                                "type": "string",
                                "description": "The mime type of the file/folder. If unknown, it defaults to application/binary.",
                                "name": "mimeType"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the file/folder.",
                                "name": "name"
                            },
                            "format": {
                                "type": "string",
                                "description": "The file type of the file.",
                                "name": "format"
                            },
                            "lastModified": {
                                "type": "string",
                                "description": "The date this file was last modified in ISO 8601 format.",
                                "name": "lastModified",
                                "format": "date-time"
                            },
                            "system": {
                                "type": "string",
                                "description": "The systemId of the system where this file lives.",
                                "name": "system"
                            },
                            "length": {
                                "type": "integer",
                                "description": "The length of the file/folder.",
                                "name": "length",
                                "format": "int32"
                            },
                            "path": {
                                "type": "string",
                                "description": "The absolute path to the file/folder.",
                                "name": "path"
                            },
                            "type": {
                                "type": "string",
                                "description": "Whether it is a file or folder.",
                                "name": "type"
                            },
                            "permissions": {
                                "type": "string",
                                "description": "The system permission of the invoking user on the file/folder.",
                                "name": "permissions"
                            }
                        },
                        "id": "RemoteFile",
                        "name": ""
                    },
                    "MultipleRemoteFileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "RemoteFile"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleRemoteFileResponse",
                        "name": ""
                    },
                    "Permission": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "The name of the user for this permission object.",
                                "name": "username"
                            },
                            "permission": {
                                "type": "PermissionStanza",
                                "description": "One or more permission objects",
                                "name": "permission"
                            }
                        },
                        "id": "Permission",
                        "name": ""
                    },
                    "PermissionStanza": {
                        "properties": {
                            "read": {
                                "type": "boolean",
                                "description": "Is the file readable",
                                "name": "read"
                            },
                            "write": {
                                "type": "boolean",
                                "description": "Is the file writable",
                                "name": "write"
                            },
                            "execute": {
                                "type": "boolean",
                                "description": "Is the file executable",
                                "name": "execute"
                            }
                        },
                        "id": "PermissionStanza",
                        "name": ""
                    },
                    "FilePermissionRequest": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The username of the api user whose permission is to be set.",
                                "name": "username"
                            },
                            "recursive": {
                                "type": "boolean",
                                "description": "Should updated permissions be applied recursively. Defaults to false.",
                                "name": "recursive"
                            },
                            "permission": {
                                "required": true,
                                "type": "string",
                                "description": "The permission to set",
                                "enum": [
                                    "READ",
                                    "WRITE",
                                    "EXECUTE",
                                    "READ_WRITE",
                                    "READ_EXECUTE",
                                    "WRITE_EXECUTE",
                                    "ALL",
                                    "NONE"
                                ],
                                "name": "permission"
                            }
                        },
                        "id": "FilePermissionRequest",
                        "name": ""
                    },
                    "FileNotificationRequest": {
                        "properties": {
                            "url": {
                                "type": "integer",
                                "description": "The URI to notify when the import is complete. This can be an email address or URL. If a URL is given, a POST will be made to this address. URL templating is supported. Valid template values are: ${JOB_STATUS}, ${JOB_URL}, ${JOB_ID}, ${JOB_SYSTEM}, ${JOB_NAME}, ${JOB_START_TIME}, ${JOB_END_TIME}, ${JOB_SUBMIT_TIME}, ${JOB_ARCHIVE_PATH}, ${JOB_ARCHIVE_URL}, ${JOB_ERROR}",
                                "name": "url",
                                "format": "int32"
                            },
                            "event": {
                                "type": "string",
                                "description": "The event you wish to recieve a notification about. Specify * for all events.",
                                "name": "event"
                            },
                            "persistent": {
                                "type": "boolean",
                                "description": "Whether this event should remain active after it triggers the first time.",
                                "name": "persistent"
                            }
                        },
                        "id": "FileNotificationRequest",
                        "name": ""
                    },
                    "EmptyRemoteFileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "string",
                                "description": "empty result",
                                "name": "result"
                            }
                        },
                        "id": "EmptyRemoteFileResponse",
                        "name": ""
                    },
                    "FilePermission": {
                        "properties": {
                            "owner": {
                                "type": "string",
                                "description": "Local username of the owner.",
                                "name": "owner"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the file/folder.",
                                "name": "name"
                            },
                            "permissions": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "One or more permission objects",
                                "name": "permissions"
                            }
                        },
                        "id": "FilePermission",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/files/v2",
                "apiVersion": "2.2.14"
            },
            "name": "files"
        },
        {
            "url": "http://localhost:9999/jobs",
            "path": "/jobs",
            "description": "Run and manage jobs",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }

                                ],
                                "nickname": "list",
                                "notes": "All jobs both private and shared that are associated with a user.",
                                "is_websocket": false,
                                "summary": "Get a list of jobs the authenticated user had submitted.",
                                "type": "MultipleJobResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"name\":\"wc-demo\",\n\t\"appId\":\"wc-demo-1.00\",\n\t\"memoryPerNode\":1,\n\t\"notifications\":[\n\t\t{\n\t\t\t\"url\":\"nryan@mlb.com\",\n\t\t\t\"event\":\"FINISHED\"\n\t\t}\n\t],\n\t\"inputs\":{\n\t\t\"query1\":\"agave://demo.storage.example.com/apps/wc-1.00/picksumipsum.txt\"\n\t}\n}",
                                        "description": "The description of the job to submit. This can be either a file upload or json posted to the request body.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "submit",
                                "notes": "This is the sole point of submission for new jobs. Users must have permissions both on the app, execution host, and storage host to submit a job. Job requests are processed immediatly, however the actualy submission and execution happen asynchronously, so users are highly encouraged to leverage the callbackUrl parameter to receive notification of updates rather than polling.",
                                "is_websocket": false,
                                "summary": "Submit a new job request.",
                                "type": "SingleJobResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/jobs/v2/",
                        "description": "Submit a new job request.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "get",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Get details of the job with the specific job id.",
                                "type": "SingleJobResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"action\":\"stop\"\n}",
                                        "description": "The operation to perform.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobOperationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "manage",
                                "notes": "Using this method, users can stop a job that is currently running or resumbit the job for re-execution. If resubmitted, a new job will be created with the exact same inputs.",
                                "is_websocket": false,
                                "summary": "Perform an action on a job.",
                                "type": "SingleJobResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "The job will be removed from the user's job history and will no longer show up in listing requests. Any archived data associated with this job will be unaffected. Once deleted, there is no way to recover the deleted job.",
                                "is_websocket": false,
                                "summary": "Deletes a job from the user's history.",
                                "type": "EmptyJobResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}",
                        "description": "Get specific job details",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "getHistory",
                                "notes": "Users must have read access to this job to view the history.",
                                "is_websocket": false,
                                "summary": "Get the history of this job.",
                                "type": "JobHistoryResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/history",
                        "description": "Get detailed job history containing every event in its history.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissions",
                                "notes": "Users must have read access to this job to view the permissions.",
                                "is_websocket": false,
                                "summary": "Get the permission ACL for this job.",
                                "type": "JobPermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ\"\n}",
                                        "description": "The permission add or update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissions",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "summary": "Add or update a user's permission for an application.",
                                "type": "EmptyJobResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "deletePermissions",
                                "notes": "This will reset the permissions such that only the user who submitted the job will be able to view it. Job owners cannot remove their own permissions.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions on an job.",
                                "type": "EmptyJobResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/pems",
                        "description": "Get job permission details",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listPermissionsForUser",
                                "notes": "Users must have read access to this job to view the permissions.",
                                "is_websocket": false,
                                "summary": "Get a specific user's permissions for a job.",
                                "type": "JobPermissionResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ_EXECUTE\",\n\t\"recursive\": false\n}",
                                        "description": "The permission to update. ",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "JobPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissionsForUser",
                                "notes": "To delete a single user, use the DELETE operation or set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "summary": "Add or update a user's permission for an job.",
                                "type": "EmptyJobResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the application. The application id is made up of the name and version separated by a dash.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uniqueName"
                                    },
                                    {
                                        "description": "The username of the api user associated with the permission",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "nickname": "deletePermissionsForUser",
                                "notes": "This will remove all permissions on an job for a user. Job owners cannot remote their own permissions.",
                                "is_websocket": false,
                                "summary": "Deletes all permissions for the given user on an job.",
                                "type": "EmptyApplicationResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/pems/{username}",
                        "description": "Get job permission details for a specific user.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    }
                                ],
                                "nickname": "getStatus",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Get the status of the job.",
                                "type": "JobStatusResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/status",
                        "description": "Return just the status of the job",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "Path to an output file or folder relative to the job output directory. This resource will follow data around as it moves from the execution system to archival storage.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listOutputs",
                                "notes": "If issued against an un-archived job, inputs and intermediate files will also be visible and accesible.",
                                "is_websocket": false,
                                "summary": "List contents of a job's output directory.",
                                "type": "MultipleRemoteFileResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/outputs/listings/{filePath}",
                        "description": "Return a listing of the output folder from the job.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the job.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "jobId"
                                    },
                                    {
                                        "description": "Path to an output file relative to the job output directory.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    }
                                ],
                                "produces": [
                                    "application/octet-stream"
                                ],
                                "type": "JobOutputFileDownload",
                                "notes": "This service will follow data around as it moves from the execution system to archival storage. You can use this endpoint to keep a permanent handle of the output of a job. Directory download is not currently supported.",
                                "is_websocket": false,
                                "summary": "Download an output file from a specific job.",
                                "nickname": "downloadOutput",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{jobId}/outputs/media/{filePath}",
                        "description": "Download an output file.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The attribute to query by. This can be any job field.",
                                        "allowMultiple": true,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "attribute"
                                    },
                                    {
                                        "description": "The value of the attribute to query for.",
                                        "allowMultiple": true,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "value"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "search",
                                "notes": "Search by combinations of attributes and values. The URL should be constructed with alternating attribute and value fields.",
                                "is_websocket": false,
                                "summary": "Find jobs matching the given attribute/value combination(s).",
                                "type": "MultipleJobResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/jobs/v2/{attribute}/{value}",
                        "description": "Search for jobs matching given attribute/value combination(s).",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "JobParameters": {
                        "properties": {
                            "parameter1": {
                                "required": false,
                                "type": "string",
                                "description": "One or more parameters identified in the description of the app you're running. ",
                                "name": "parameter1"
                            }
                        },
                        "id": "JobParameters",
                        "name": ""
                    },
                    "Notification": {
                        "properties": {
                            "url": {
                                "type": "integer",
                                "description": "The URI to notify when the import is complete. This can be an email address or URL. If a URL is given, a POST will be made to this address. URL templating is supported. Valid template values are: ${JOB_STATUS}, ${JOB_URL}, ${JOB_ID}, ${JOB_SYSTEM}, ${JOB_NAME}, ${JOB_START_TIME}, ${JOB_END_TIME}, ${JOB_SUBMIT_TIME}, ${JOB_ARCHIVE_PATH}, ${JOB_ARCHIVE_URL}, ${JOB_ERROR}",
                                "name": "url",
                                "format": "int32"
                            },
                            "event": {
                                "type": "string",
                                "description": "The event you wish to recieve a notification about. Specify * for all events.",
                                "name": "event"
                            },
                            "persistent": {
                                "type": "boolean",
                                "description": "Whether this event should remain active after it triggers the first time.",
                                "name": "persistent"
                            }
                        },
                        "id": "Notification",
                        "name": ""
                    },
                    "ACL": {
                        "properties": {
                            "read": {
                                "type": "boolean",
                                "description": "can read",
                                "name": "read"
                            },
                            "write": {
                                "type": "boolean",
                                "description": "can write",
                                "name": "write"
                            }
                        },
                        "id": "ACL",
                        "name": ""
                    },
                    "JobOperationRequest": {
                        "properties": {
                            "action": {
                                "required": true,
                                "type": "string",
                                "description": "Action to perform on the job.",
                                "enum": [
                                    "resubmit",
                                    "stop"
                                ],
                                "name": "action"
                            }
                        },
                        "id": "JobOperationRequest",
                        "name": ""
                    },
                    "JobHistory": {
                        "properties": {
                            "status": {
                                "type": "String",
                                "description": "The status of the job after this event.",
                                "name": "status"
                            },
                            "description": {
                                "type": "String",
                                "description": "A brief description of the event details.",
                                "name": "description"
                            },
                            "created": {
                                "type": "string",
                                "description": "The date of the event.",
                                "name": "created",
                                "format": "date-time"
                            }
                        },
                        "id": "JobHistory",
                        "name": ""
                    },
                    "Permission": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "Username associate with this permission",
                                "name": "username"
                            },
                            "permission": {
                                "type": "ACL",
                                "name": "permission"
                            }
                        },
                        "id": "Permission",
                        "name": ""
                    },
                    "MultipleRemoteFileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "RemoteFile"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleRemoteFileResponse",
                        "name": ""
                    },
                    "MultipleJobResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "JobSummary"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleJobResponse",
                        "name": ""
                    },
                    "JobHistoryResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "JobHistory"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "JobHistoryResponse",
                        "name": ""
                    },
                    "Job": {
                        "properties": {
                            "localId": {
                                "type": "string",
                                "description": "The process or local job id of the job on the remote execution system.",
                                "name": "localId"
                            },
                            "memoryPerNode": {
                                "type": "string",
                                "description": "The requested memory for this application to run given in GB.",
                                "name": "memoryPerNode"
                            },
                            "archiveSystem": {
                                "type": "string",
                                "description": "The unique id of the storage system on which this job's output will be staged.",
                                "name": "archiveSystem"
                            },
                            "processorsPerNode": {
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "processorsPerNode",
                                "format": "int32"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The job owner.",
                                "name": "owner"
                            },
                            "message": {
                                "type": "string",
                                "description": "The error message incurred when the job failed.",
                                "name": "message"
                            },
                            "id": {
                                "type": "string",
                                "description": "The unique id of the job.",
                                "name": "id"
                            },
                            "parameters": {
                                "type": "JobParameters",
                                "description": "The application specific parameters needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. The actual dataType will be determined by the application description.",
                                "name": "parameters"
                            },
                            "archivePath": {
                                "type": "string",
                                "description": "The path of the archive folder for this job on the user's default storage sytem.",
                                "name": "archivePath"
                            },
                            "archive": {
                                "type": "boolean",
                                "description": "Whether the output from this job should be archived. If true, all new files created by this application's execution will be archived to the archivePath in the user's default storage system.",
                                "name": "archive"
                            },
                            "outputPath": {
                                "type": "String",
                                "description": "Relative path of the job's output data.",
                                "name": "outputPath"
                            },
                            "maxRunTime": {
                                "type": "string",
                                "description": "The requested compute time needed for this application to complete given in HH:mm:ss format.",
                                "name": "maxRunTime"
                            },
                            "status": {
                                "type": "string",
                                "description": "The status of the job. Possible values are: PENDING, STAGING_INPUTS, CLEANING_UP, ARCHIVING, STAGING_JOB, FINISHED, KILLED, FAILED, STOPPED, RUNNING, PAUSED, QUEUED, SUBMITTING, STAGED, PROCESSING_INPUTS, ARCHIVING_FINISHED, ARCHIVING_FAILED",
                                "name": "status"
                            },
                            "inputs": {
                                "type": "JobInputs",
                                "description": "The application specific input files needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. Inputs may be given as relative paths in the user's default storage system or as URI. If a URI is given, the data will be staged in by the IO service and made avaialble to the application at run time.",
                                "name": "inputs"
                            },
                            "submitTime": {
                                "type": "string",
                                "description": "The date the job was submitted in ISO 8601 format.",
                                "name": "submitTime",
                                "format": "date-time"
                            },
                            "notifications": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "An array of notifications you wish to receive.",
                                "name": "notifications"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "The system id of the execution system.",
                                "name": "executionSystem"
                            },
                            "startTime": {
                                "type": "string",
                                "description": "The date the job started in ISO 8601 format.",
                                "name": "startTime",
                                "format": "date-time"
                            },
                            "appId": {
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "nodeCount": {
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "nodeCount",
                                "format": "int32"
                            },
                            "retries": {
                                "type": "integer",
                                "description": "The number of retires it took to submit this job.",
                                "name": "retries",
                                "format": "int32"
                            },
                            "workPath": {
                                "type": "string",
                                "description": "The directory on the remote execution system from which the job is running.",
                                "name": "workPath"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "batchQueue": {
                                "type": "string",
                                "description": "The queue to which this job should be submitted. This is optional and only applies when the execution system has a batch scheduler.",
                                "name": "batchQueue"
                            },
                            "endTime": {
                                "type": "string",
                                "description": "The date the job stopped running due to termination, completion, or error in ISO 8601 format.",
                                "name": "endTime",
                                "format": "date-time"
                            }
                        },
                        "id": "Job",
                        "name": ""
                    },
                    "JobSummary": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "The status of the job. Possible values are: PENDING, STAGING_INPUTS, CLEANING_UP, ARCHIVING, STAGING_JOB, FINISHED, KILLED, FAILED, STOPPED, RUNNING, PAUSED, QUEUED, SUBMITTING, STAGED, PROCESSING_INPUTS, ARCHIVING_FINISHED, ARCHIVING_FAILED",
                                "name": "status"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "executionSystem": {
                                "type": "string",
                                "description": "The system id of the execution system.",
                                "name": "executionSystem"
                            },
                            "startTime": {
                                "type": "string",
                                "description": "The date the job started in ISO 8601 format.",
                                "name": "startTime",
                                "format": "date-time"
                            },
                            "appId": {
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The job owner.",
                                "name": "owner"
                            },
                            "endTime": {
                                "type": "string",
                                "description": "The date the job ended in ISO 8601 format.",
                                "name": "endTime",
                                "format": "date-time"
                            },
                            "id": {
                                "type": "string",
                                "description": "The unique id of the job.",
                                "name": "id"
                            }
                        },
                        "id": "JobSummary",
                        "name": ""
                    },
                    "JobRequest": {
                        "properties": {
                            "inputs": {
                                "required": true,
                                "type": "JobInputs",
                                "description": "The application specific input files needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. Inputs may be given as relative paths in the user's default storage system or as URI. If a URI is given, the data will be staged in by the IO service and made avaialble to the application at run time.",
                                "name": "inputs"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "parameters": {
                                "required": true,
                                "type": "JobParameters",
                                "description": "The application specific parameters needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. The actual dataType will be determined by the application description.",
                                "name": "parameters"
                            },
                            "batchQueue": {
                                "type": "string",
                                "description": "The queue to which this job should be submitted. This is optional and only applies when the execution system has a batch scheduler.",
                                "name": "batchQueue"
                            },
                            "archiveSystem": {
                                "type": "string",
                                "description": "The unique id of the storage system on which this job's output will be staged.",
                                "name": "archiveSystem"
                            },
                            "processorsPerNode": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "processorsPerNode",
                                "format": "int32"
                            },
                            "memoryPerNode": {
                                "type": "string",
                                "description": "The requested memory for this application to run given in GB.",
                                "name": "memoryPerNode"
                            },
                            "archivePath": {
                                "type": "string",
                                "description": "The path of the archive folder for this job on the user's default storage sytem.",
                                "name": "archivePath"
                            },
                            "notifications": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "An array of notifications you wish to receive.",
                                "name": "notifications"
                            },
                            "appId": {
                                "required": true,
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "nodeCount": {
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "nodeCount",
                                "format": "int32"
                            },
                            "archive": {
                                "required": true,
                                "type": "boolean",
                                "description": "Whether the output from this job should be archived. If true, all new files created by this application's execution will be archived to the archivePath in the user's default storage system.",
                                "name": "archive"
                            },
                            "maxRunTime": {
                                "type": "string",
                                "description": "The requested compute time needed for this application to complete given in HH:mm:ss format.",
                                "name": "maxRunTime"
                            }
                        },
                        "id": "JobRequest",
                        "name": ""
                    },
                    "JobPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }                        },
                        "id": "JobPermissionResponse",
                        "name": ""
                    },
                    "SingleJobResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Job",
                                "name": "result"
                            }
                        },
                        "id": "SingleJobResponse",
                        "name": ""
                    },
                    "JobInputs": {
                        "properties": {
                            "parameter1": {
                                "required": false,
                                "type": "string",
                                "description": "One or more inputs identified in the description of the app you're running. ",
                                "name": "parameter1"
                            }
                        },
                        "id": "JobInputs",
                        "name": ""
                    },
                    "JobOutputFileDownload": {
                        "properties": {},
                        "id": "JobOutputFileDownload",
                        "name": ""
                    },
                    "JobStatus": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "The status of the job. Possible values are: PENDING, STAGING_INPUTS, CLEANING_UP, ARCHIVING, STAGING_JOB, FINISHED, KILLED, FAILED, STOPPED, RUNNING, PAUSED, QUEUED, SUBMITTING, STAGED, PROCESSING_INPUTS, ARCHIVING_FINISHED, ARCHIVING_FAILED",
                                "name": "status"
                            },
                            "id": {
                                "type": "string",
                                "description": "The unique id of the job.",
                                "name": "id"
                            }
                        },
                        "id": "JobStatus",
                        "name": ""
                    },
                    "PermissionListing": {
                        "properties": {
                            "owner": {
                                "type": "string",
                                "description": "Owner of the application.",
                                "name": "owner"
                            },
                            "name": {
                                "type": "string",
                                "description": "Unique name of the application to which this permissions apply.",
                                "name": "name"
                            },
                            "permissions": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "Permissions granted on this application.",
                                "name": "permissions"
                            }
                        },
                        "id": "PermissionListing",
                        "name": ""
                    },
                    "RemoteFile": {
                        "properties": {
                            "mimeType": {
                                "type": "string",
                                "description": "The mime type of the file/folder. If unknown, it defaults to application/binary.",
                                "name": "mimeType"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the file/folder.",
                                "name": "name"
                            },
                            "format": {
                                "type": "string",
                                "description": "The file type of the file.",
                                "name": "format"
                            },
                            "lastModified": {
                                "type": "string",
                                "description": "The date this file was last modified in ISO 8601 format.",
                                "name": "lastModified",
                                "format": "date-time"
                            },
                            "system": {
                                "type": "string",
                                "description": "The systemId of the system where this file lives.",
                                "name": "system"
                            },
                            "length": {
                                "type": "integer",
                                "description": "The length of the file/folder.",
                                "name": "length",
                                "format": "int32"
                            },
                            "path": {
                                "type": "string",
                                "description": "The absolute path to the file/folder.",
                                "name": "path"
                            },
                            "type": {
                                "type": "string",
                                "description": "Whether it is a file or folder.",
                                "name": "type"
                            },
                            "permissions": {
                                "type": "string",
                                "description": "The system permission of the invoking user on the file/folder.",
                                "name": "permissions"
                            }
                        },
                        "id": "RemoteFile",
                        "name": ""
                    },
                    "JobStatusResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "JobStatus",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "JobStatusResponse",
                        "name": ""
                    },
                    "JobSubmission": {
                        "properties": {
                            "inputs": {
                                "type": "JobInputs",
                                "description": "The application specific input files needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. Inputs may be given as relative paths in the user's default storage system or as URI. If a URI is given, the data will be staged in by the IO service and made avaialble to the application at run time.",
                                "name": "inputs"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of the job.",
                                "name": "name"
                            },
                            "parameters": {
                                "type": "JobParameters",
                                "description": "The application specific parameters needed for this job. These vary from application to application and should be entered as multiple individual parameters in the form. The actual dataType will be determined by the application description.",
                                "name": "parameters"
                            },
                            "batchQueue": {
                                "type": "string",
                                "description": "The queue to which this job should be submitted. This is optional and only applies when the execution system has a batch scheduler.",
                                "name": "batchQueue"
                            },
                            "archiveSystem": {
                                "type": "string",
                                "description": "The system on which the job data will be archived",
                                "name": "archiveSystem"
                            },
                            "processorsPerNode": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The number of processors this application should utilize while running.",
                                "name": "processorsPerNode",
                                "format": "int32"
                            },
                            "maxMemory": {
                                "type": "string",
                                "description": "The maximum amount of memory needed for this application to run given in GB.",
                                "name": "maxMemory"
                            },
                            "archivePath": {
                                "type": "string",
                                "description": "The path of the archive folder for this job on the archiveSystem. Defaults to the user's default storage system.",
                                "name": "archivePath"
                            },
                            "notifications": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "An array of notifications you wish to receive.",
                                "name": "notifications"
                            },
                            "appId": {
                                "type": "string",
                                "description": "The unique name of the application being run by this job. This must be a valid application that the calling user has permission to run.",
                                "name": "appId"
                            },
                            "nodeCount": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The number of nodes this application should utilize while running. If the application is not of executionType PARALLEL, this should be 1.",
                                "name": "nodeCount",
                                "format": "int32"
                            },
                            "archive": {
                                "type": "boolean",
                                "description": "Whether the output from this job should be archived. If true, all new files created by this application's execution will be archived to the archivePath in the user's default storage system.",
                                "name": "archive"
                            },
                            "maxRunTime": {
                                "type": "string",
                                "description": "The estimated compute time needed for this application to complete given in hh:mm:ss format.",
                                "name": "maxRunTime"
                            }
                        },
                        "id": "JobSubmission",
                        "name": ""
                    },
                    "JobPermissionRequest": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The username of the api user whose permission is to be set.",
                                "name": "username"
                            },
                            "permission": {
                                "required": true,
                                "type": "string",
                                "description": "The permission to set",
                                "enum": [
                                    "READ",
                                    "WRITE",
                                    "EXECUTE",
                                    "READ_WRITE",
                                    "READ_EXECUTE",
                                    "WRITE_EXECUTE",
                                    "ALL",
                                    "NONE"
                                ],
                                "name": "permission"
                            }
                        },
                        "id": "JobPermissionRequest",
                        "name": ""
                    },
                    "EmptyJobResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "string",
                                "description": "empty result",
                                "name": "result"
                            }
                        },
                        "id": "EmptyJobResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/jobs/v2",
                "apiVersion": "2.2.14"
            },
            "name": "jobs"
        },
        {
            "url": "http://localhost:9999/meta",
            "path": "/meta",
            "description": "Create and manage metadata",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The query to perform. Traditional MongoDB queries are supported",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "q"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    },
                                    {
                                        "defaultValue": true,
                                        "description": "If false, implicit permissions are ignored and only records to which the user has explicit permissions are returned",
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "privileged"
                                    }
                                ],
                                "type": "MultipleMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID or supplies an invalid JSON query",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified metadata cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "List and/or search metadata.",
                                "nickname": "listMetadata",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"name\": \"color\",\n\t\"value\": \"blue\"\n\t\"schemaId\": null,\n\t\"associatedIds\": []\n}",
                                        "description": "The metadata to add.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MetadataRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update or Add new Metadata.",
                                "nickname": "addMetadata",
                                "method": "POST"
                            }
                        ],
                        "path": "/meta/v2/data",
                        "description": "Search and manage metadata resources",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified metadata cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve Metadata.",
                                "nickname": "getMetadata",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"name\": \"color\",\n\t\"value\": \"blue\"\n\t\"schemaId\": null,\n\t\"associatedIds\": []\n}",
                                        "description": "The metadata to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MetadataRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update or Add new Metadata.",
                                "nickname": "updateMetadata",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    }
                                ],
                                "type": "EmptyMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies no UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Remove Metadata from the system.",
                                "nickname": "deleteMetadata",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/meta/v2/data/{uuid}",
                        "description": "Query for the metadata with the given UUID",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MetadataSchemaResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a Schema UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve Metadata Schemata.",
                                "nickname": "searchSchema",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\t\"title\": \"profile\",\n\t\t\"type\" : \"object\",\n\t\t\"properties\": {\n\t\t\t\"firstName\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"lastName\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"city\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"state\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"email\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"team\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"position\": {\n\t\t\t\t\"enum\": [ \n\t\t\t\t\t\t\"pitcher\",\n\t\t\t\t\t\t\"catcher\",\n\t\t\t\t\t\t\"first\",\n\t\t\t\t\t\t\"second\",\n\t\t\t\t\t\t\"third\",\n\t\t\t\t\t\t\"shortstop\",\n\t\t\t\t\t\t\"left\",\n\t\t\t\t\t\t\"right\",\n\t\t\t\t\t\t\"center\",\n\t\t\t\t\t\t\"manager\"\n\t\t\t\t\t] \n\t\t\t},\n\t\t\t\"wins\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"losses\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"era\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"so\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"ip\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"games\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"ba\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"hr\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"hits\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"runs\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"slg\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"obp\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"status\": {\n\t\t\t\t\t\"enum\": [ \n\t\t\t\t\t\t\"active\",\n\t\t\t\t\t\t\"retired\",\n\t\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\t\"banned\"\n\t\t\t\t\t] \n\t\t\t}\n\t\t},\n\t\t\"required\" : [ \n\t\t\t\"firstName\", \n\t\t\t\"lastName\", \n\t\t\t\"email\",\n\t\t\t\"position\"\n\t\t]\n}",
                                        "description": "A valid JSON Schema object",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataSchemaResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form or JSON schema",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Add a new Metadata Schema.",
                                "nickname": "addSchema",
                                "method": "POST"
                            }
                        ],
                        "path": "/meta/v2/schemas",
                        "description": "Operations on schemata.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MetadataSchemaResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a Schema UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve Metadata Schemata.",
                                "nickname": "getSchema",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": "{\n\t\t\"title\": \"profile\",\n\t\t\"type\" : \"object\",\n\t\t\"properties\": {\n\t\t\t\"firstName\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"lastName\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"city\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"state\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"email\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"team\": {\n\t\t\t\t\"type\" : \"string\"\n\t\t\t},\n\t\t\t\"position\": {\n\t\t\t\t\"enum\": [ \n\t\t\t\t\t\t\"pitcher\",\n\t\t\t\t\t\t\"catcher\",\n\t\t\t\t\t\t\"first\",\n\t\t\t\t\t\t\"second\",\n\t\t\t\t\t\t\"third\",\n\t\t\t\t\t\t\"shortstop\",\n\t\t\t\t\t\t\"left\",\n\t\t\t\t\t\t\"right\",\n\t\t\t\t\t\t\"center\",\n\t\t\t\t\t\t\"manager\"\n\t\t\t\t\t] \n\t\t\t},\n\t\t\t\"wins\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"losses\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"era\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"so\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"ip\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"games\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"ba\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"hr\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"hits\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"runs\": {\n\t\t\t\t\"type\" : \"integer\"\n\t\t\t},\n\t\t\t\"slg\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"obp\": {\n\t\t\t\t\"type\" : \"number\"\n\t\t\t},\n\t\t\t\"status\": {\n\t\t\t\t\t\"enum\": [ \n\t\t\t\t\t\t\"active\",\n\t\t\t\t\t\t\"retired\",\n\t\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\t\"banned\"\n\t\t\t\t\t] \n\t\t\t}\n\t\t},\n\t\t\"required\" : [ \n\t\t\t\"firstName\", \n\t\t\t\"lastName\", \n\t\t\t\"email\",\n\t\t\t\"position\"\n\t\t]\n}",
                                        "description": "A valid JSON Schema object",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataSchemaResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form or JSON schema",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update or Add a new Metadata Schema.",
                                "nickname": "updateSchema",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    }
                                ],
                                "type": "EmptyMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a Schema UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Remove Metadata Schema from the system.",
                                "nickname": "deleteSchema",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/meta/v2/schemas/{uuid}",
                        "description": "Operations on metadata schema.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultipleMetadataPermissionResponse",
                                "notes": "Users must have read access to this metadata to view the permissions.",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a metadata UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified metadata.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified metadata cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the permission ACL for this metadata.",
                                "nickname": "listMetadataPermissions",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ\"\n}",
                                        "description": "The metadata permission to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MetadataPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataPermissionResponse",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a valid metadata UUID is not supplied or if the form is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified metadata.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified user cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Add or update a user's permission for the given metadata.",
                                "nickname": "updateMetadataPermissions",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    }
                                ],
                                "type": "EmptyMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a metadata UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified metadata.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Deletes all permissions on the given metadata.",
                                "nickname": "deleteMetadataPermission",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/meta/v2/data/{uuid}/pems",
                        "description": "Query the permissions for the metadata with the given UUID",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "description": "The username of the permission owner",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "type": "MetadataPermissionResponse",
                                "notes": "Users must have read access to this metadata to view the permissions.",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a metadata UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified metadata.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified metadata cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the permission ACL for this metadata.",
                                "nickname": "listMetadataPermissionsForUser",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "description": "The username of the permission owner",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ\"\n}",
                                        "description": "The metadata permission to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MetadataPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataPermissionResponse",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a valid metadata UUID is not supplied or if the form is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified metadata.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified user cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Add or update a user's permission for the given metadata.",
                                "nickname": "updateMetadataPermissionsForUser",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "description": "The username of the permission owner",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "type": "EmptyMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a metadata UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified metadata.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Deletes all permissions on the given metadata.",
                                "nickname": "deleteMetadataPermissionsForUser",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/meta/v2/data/{uuid}/pems/{username}",
                        "description": "Query the permissions for the metadata with the given UUID",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultipleMetadataSchemaPermissionResponse",
                                "notes": "Users must have read access to this schema to view the permissions.",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a schema UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified schema.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified schema cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the permission ACL for this schema.",
                                "nickname": "listSchemaPermissions",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ\"\n}",
                                        "description": "The schema permission to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MetadataPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataSchemaPermissionResponse",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a valid schema UUID is not supplied or if the form is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified schema.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified user cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Add or update a user's permission for the given schema.",
                                "nickname": "updateSchemaPermissions",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    }
                                ],
                                "type": "EmptyMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a schema UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified schema.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Deletes all permissions on the given schema.",
                                "nickname": "deleteSchemaPermissions",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/meta/v2/schemas/{uuid}/pems",
                        "description": "Query the permissions for the metadata schema with the given UUID",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "description": "The username of the permission owner",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "type": "MetadataSchemaPermissionResponse",
                                "notes": "Users must have read access to this schema to view the permissions.",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a schema UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified schema.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified schema cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the permission ACL for this schema.",
                                "nickname": "listSchemaPermissionsForUser",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "description": "The username of the permission owner",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\":\"\",\n\t\"permission\": \"READ\"\n}",
                                        "description": "The schema permission to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MetadataPermissionRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MetadataSchemaPermissionResponse",
                                "notes": "To delete a single user, set their permission to NONE or an empty string",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a valid schema UUID is not supplied or if the form is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified schema.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified user cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the metadata schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Add or update a user's permission for the given metadata schema.",
                                "nickname": "updateSchemaPermissionsForUser",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the metadata schema item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "description": "The username of the permission owner",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "type": "EmptyMetadataResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a schema UUID is not supplied or is invalid.",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user or the user is not authorized to access the specified schema.",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the metadata schema database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Deletes all permissions on the given metadata.",
                                "nickname": "deleteSchemaPermissionsForUser",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/meta/v2/schemas/{uuid}/pems/{username}",
                        "description": "Query the permissions for the metadata schema with the given UUID",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "EmptyMetadata": {
                        "properties": {},
                        "id": "EmptyMetadata",
                        "name": ""
                    },
                    "MultipleMetadataResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "items": {
                                    "$ref": "MetadataResponse"
                                },
                                "type": "array",
                                "description": "Metadata resources matching the query.",
                                "name": "result"
                            }
                        },
                        "id": "MultipleMetadataResponse",
                        "name": ""
                    },
                    "MetadataSchemaPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "Permission",
                                "description": "Permissions granted on this schema resource.",
                                "name": "result"
                            }
                        },
                        "id": "MetadataSchemaPermissionResponse",
                        "name": ""
                    },
                    "Permission": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "Username associate with this permission",
                                "name": "username"
                            },
                            "permission": {
                                "type": "ACL",
                                "name": "permission"
                            }
                        },
                        "id": "Permission",
                        "name": ""
                    },
                    "MultipleMetadataPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "Permissions granted on this metadata resource.",
                                "name": "result"
                            }
                        },
                        "id": "MultipleMetadataPermissionResponse",
                        "name": ""
                    },
                    "MetadataSchema": {
                        "properties": {
                            "uuid": {
                                "type": "string",
                                "description": "The UUID for this Schema.",
                                "name": "uuid"
                            },
                            "created": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this Metadata was created in the metadata schema store.",
                                "name": "created"
                            },
                            "lastUpdated": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this Metadata was last updated in the metadata schema store.",
                                "name": "lastUpdated"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The API user who owns this Schema.",
                                "name": "owner"
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "The name of the Internal User, if any, who owns this schema.",
                                "name": "internalUsername"
                            },
                            "schema": {
                                "type": "string",
                                "description": "A JSON Schema",
                                "name": "schema"
                            }
                        },
                        "id": "MetadataSchema",
                        "name": ""
                    },
                    "ACL": {
                        "properties": {
                            "read": {
                                "type": "boolean",
                                "description": "can read",
                                "name": "read"
                            },
                            "write": {
                                "type": "boolean",
                                "description": "can write",
                                "name": "write"
                            }
                        },
                        "id": "ACL",
                        "name": ""
                    },
                    "MultipleMetadataSchemaPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Permission"
                                },
                                "type": "array",
                                "description": "Permissions granted on this schema resource.",
                                "name": "result"
                            }
                        },
                        "id": "MultipleMetadataSchemaPermissionResponse",
                        "name": ""
                    },
                    "EmptyMetadataResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "EmptyMetadata",
                                "name": "result"
                            }
                        },
                        "id": "EmptyMetadataResponse",
                        "name": ""
                    },
                    "MetadataSchemaResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "MetadataSchema",
                                "name": "result"
                            }
                        },
                        "id": "MetadataSchemaResponse",
                        "name": ""
                    },
                    "MetadataRequest": {
                        "properties": {
                            "schemaId": {
                                "type": "string",
                                "description": "The UUID of the schema that should be used to validate this request.",
                                "name": "schemaId"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "The name of this metadata",
                                "name": "name"
                            },
                            "value": {
                                "required": true,
                                "type": "string",
                                "description": "A free text or JSON string containing the metadata stored for the given associationIds",
                                "name": "value"
                            },
                            "associationIds": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
                                "name": "associationIds"
                            }
                        },
                        "id": "MetadataRequest",
                        "name": ""
                    },
                    "MetadataResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "Metadata",
                                "name": "result"
                            }
                        },
                        "id": "MetadataResponse",
                        "name": ""
                    },
                    "MetadataPermissionRequest": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The username of the api user whose permission is to be set.",
                                "name": "username"
                            },
                            "permission": {
                                "required": true,
                                "type": "string",
                                "description": "The permission to set",
                                "enum": [
                                    "READ",
                                    "WRITE",
                                    "READ_WRITE",
                                    "ALL",
                                    "NONE"
                                ],
                                "name": "permission"
                            }
                        },
                        "id": "MetadataPermissionRequest",
                        "name": ""
                    },
                    "MetadataPermissionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Error message caused by this request",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "Permission",
                                "description": "Permissions granted on this metadata resource.",
                                "name": "result"
                            }
                        },
                        "id": "MetadataPermissionResponse",
                        "name": ""
                    },
                    "Metadata": {
                        "properties": {
                            "name": {
                                "type": "string",
                                "description": "The name of this metadata",
                                "name": "name"
                            },
                            "created": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this Metadata was created in the metadata store.",
                                "name": "created"
                            },
                            "uuid": {
                                "type": "string",
                                "description": "The UUID for this Metadata.",
                                "name": "uuid"
                            },
                            "lastUpdated": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this Metadata was last updated in the metadata store.",
                                "name": "lastUpdated"
                            },
                            "associationIds": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "UUIDs of associated Agave entities, including the Data to which this Metadata belongs.",
                                "name": "associationIds"
                            },
                            "value": {
                                "type": "string",
                                "description": "A free text or JSON string containing the metadata stored for the given associationIds",
                                "name": "value"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The API user who owns this Metadata.",
                                "name": "owner"
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "The name of the Internal User, if any, who owns this metadata.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "Metadata",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/meta/v2",
                "apiVersion": "2.2.14"
            },
            "name": "meta"
        },
        {
            "url": "http://localhost:9999/monitors",
            "path": "/monitors",
            "description": "Create and manage system monitors",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The target to search for.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "target"
                                    },
                                    {
                                        "enum": [
                                            "true",
                                            "false"
                                        ],
                                        "description": "Filter by monitors that are active or inactive.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "active"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultipleMonitorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID or supplies an invalid JSON query",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified Monitor cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve Monitor for a specific resource.",
                                "nickname": "list",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{ \n\t\"active\": true, \n\t\"frequency\": 720, \n\t\"internalUsername\": null, \n\t\"target\": \"data.iplantcollaborative.org\", \n\t\"updateSystemStatus\": false \n}",
                                        "description": "The description of the app to add or update. This can be either a file upload or json posted to the request body.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MonitorRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MonitorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to save the monitor.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update or Add new Monitor.",
                                "nickname": "add",
                                "method": "POST"
                            }
                        ],
                        "path": "/monitors/v2/",
                        "description": "Search and manage monitoring tasks",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the monitor",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "monitorId"
                                    }
                                ],
                                "type": "MonitorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified Monitor cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve a specific monitor.",
                                "nickname": "get",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{ \n\t\"active\": true, \n\t\"frequency\": 720, \n\t\"internalUsername\": null, \n\t\"target\": \"data.iplantcollaborative.org\", \n\t\"updateSystemStatus\": false \n}",
                                        "description": "The description of the app to add or update. This can be either a file upload or json posted to the request body.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MonitorRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "MonitorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Updates an existing monitor.",
                                "nickname": "update",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the monitor",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "monitorId"
                                    }
                                ],
                                "type": "EmptyMonitorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies no UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Deletes a monitor.",
                                "nickname": "delete",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/monitors/v2/{monitorId}",
                        "description": "Query for the monitor with the given id",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the monitor",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "monitorId"
                                    },
                                    {
                                        "description": "A timestamp indicating the earliest time of the first monitor check in ISO 8601 format",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "startDate"
                                    },
                                    {
                                        "description": "A timestamp indicating the latest time of the first monitor check in ISO 8601 format",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "endDate"
                                    },
                                    {
                                        "enum": [
                                            "PASSED",
                                            "FAILED",
                                            "UNKNOWN"
                                        ],
                                        "description": "A timestamp indicating the latest time of the first monitor check in ISO 8601 format",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "result"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultipleMonitorCheckResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID or supplies an invalid JSON query",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified Monitor cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve monitor checks for a specific resource.",
                                "nickname": "listChecks",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the monitor",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "monitorId"
                                    }
                                ],
                                "type": "MonitorCheckResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Forces a monitor check to run.",
                                "nickname": "runCheck",
                                "method": "POST"
                            }
                        ],
                        "path": "/monitors/v2/{monitorId}/checks",
                        "description": "Query for monitor checks",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the monitor",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "monitorId"
                                    },
                                    {
                                        "description": "The id of the monitor check",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "checkId"
                                    }
                                ],
                                "type": "MonitorCheckResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified Monitor cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to process the request.",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve a specific monitor check",
                                "nickname": "getCheck",
                                "method": "GET"
                            }
                        ],
                        "path": "/monitors/v2/{monitorId}/checks/{checkId}",
                        "description": "Query for the monitor check with the given id",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "MultipleMonitorCheckResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Description of an error. null otherwise.",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "items": {
                                    "$ref": "MonitorCheck"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleMonitorCheckResponse",
                        "name": ""
                    },
                    "MonitorCheckResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "MonitorCheck",
                                "name": "result"
                            }
                        },
                        "id": "MonitorCheckResponse",
                        "name": ""
                    },
                    "MultipleMonitorResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Description of an error. null otherwise.",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "items": {
                                    "$ref": "MonitorDescription"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleMonitorResponse",
                        "name": ""
                    },
                    "MonitorResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "MonitorDescription",
                                "name": "result"
                            }
                        },
                        "id": "MonitorResponse",
                        "name": ""
                    },
                    "MonitorCheck": {
                        "properties": {
                            "result": {
                                "enum": [
                                    "PASSED",
                                    "FAILED",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The results of this monitor check.",
                                "name": "result",
                                "required": true
                            },
                            "message": {
                                "type": "string",
                                "description": "The error message if this monitor check failed.",
                                "name": "message"
                            },
                            "id": {
                                "type": "string",
                                "description": "The UUID for this monitor check.",
                                "name": "id"
                            },
                            "created": {
                                "required": true,
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this monitor check was created.",
                                "name": "created"
                            }
                        },
                        "id": "MonitorCheck",
                        "name": ""
                    },
                    "MonitorRequest": {
                        "properties": {
                            "active": {
                                "defaultValue": true,
                                "required": true,
                                "type": "boolean",
                                "description": "Whether this monitor is currently active.",
                                "name": "active"
                            },
                            "frequency": {
                                "description": "The interval in minutes on which this monitor will run. Minimum is 5. Default is 720.",
                                "format": "int32",
                                "defaultValue": 720,
                                "required": true,
                                "minimum": 5,
                                "type": "integer",
                                "name": "frequency"
                            },
                            "updateSystemStatus": {
                                "defaultValue": false,
                                "type": "boolean",
                                "description": "Whether this Monitor should update the system status when the results change. You must have the ADMIN role on the target system to use this feature.",
                                "name": "updateSystemStatus"
                            },
                            "target": {
                                "defaultValue": "data.iplantcollaborative.org",
                                "required": true,
                                "type": "string",
                                "description": "The id of the sytem to be monitored. This must be an active system registered with the Systems service.",
                                "name": "target"
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "Internal user account used to perform the check.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "MonitorRequest",
                        "name": ""
                    },
                    "MonitorDescription": {
                        "properties": {
                            "target": {
                                "type": "boolean",
                                "description": "The id of the sytem to be monitored. This must be an active system registered with the Systems service.",
                                "name": "target"
                            },
                            "created": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this Monitor was created.",
                                "name": "created"
                            },
                            "lastSuccess": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating the last time this Monitor succeeded in ISO 8601 format",
                                "name": "lastSuccess"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The API user who owns this Monitor.",
                                "name": "owner"
                            },
                            "lastUpdated": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating the last time this Monitor was updated in ISO 8601 format",
                                "name": "lastUpdated"
                            },
                            "lastCheck": {
                                "type": "MonitorCheck",
                                "description": "The results of the last check run by this monitor.",
                                "name": "lastCheck"
                            },
                            "frequency": {
                                "type": "integer",
                                "description": "The interval in minutes on which this monitor will run. Minimum is 5. Default is 720.",
                                "name": "frequency",
                                "format": "int32"
                            },
                            "updateSystemStatus": {
                                "type": "boolean",
                                "description": "Whether this Monitor should update the system status when the results change. You must have the ADMIN role on the target system to use this feature.",
                                "name": "updateSystemStatus"
                            },
                            "active": {
                                "type": "boolean",
                                "description": "Whether this monitor is currently active.",
                                "name": "active"
                            },
                            "nextUpdate": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating the next time this Monitor will be run in ISO 8601 format",
                                "name": "nextUpdate"
                            },
                            "id": {
                                "type": "string",
                                "description": "The UUID for this monitor.",
                                "name": "id"
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "Internal user account used to perform the check.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "MonitorDescription",
                        "name": ""
                    },
                    "EmptyMonitor": {
                        "properties": {},
                        "id": "EmptyMonitor",
                        "name": ""
                    },
                    "EmptyMonitorResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "EmptyMonitor",
                                "name": "result"
                            }
                        },
                        "id": "EmptyMonitorResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/monitors/v2",
                "apiVersion": "2.2.14"
            },
            "name": "monitors"
        },
        {
            "url": "http://localhost:9999/notifications",
            "path": "/notifications",
            "description": "Subscribe to and manage notifications",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"url\" : \"http://requestb.in/1jj4jnz1?uuid={UUID}&status=${EVENT}\",\n\t\"event\" : \"*\",\n\t\"associatedUuid\" : \"<insert uuid here>\",\n\t\"persistent\": true\n}",
                                        "description": "The notification to add.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "NotificationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "NotificationResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the notification database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update or Add new notification.",
                                "nickname": "add",
                                "method": "POST"
                            }
                        ],
                        "path": "/notifications/v2/",
                        "description": "Search and manage notification resources",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the associated resource. All notifications for this resource visible to the user will be returned.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "associatedUuid"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultipleNotificationResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID or supplies an invalid JSON query",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified notification cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the notification database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve notification for a specific resource.",
                                "nickname": "list",
                                "method": "GET"
                            }
                        ],
                        "path": "/notifications/v2/",
                        "description": "Query for the notification with the given UUID",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the notification item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    }
                                ],
                                "type": "NotificationResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user does not supply a UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The specified notification cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the notification database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve notification.",
                                "nickname": "get",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the notification item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"url\" : \"http://requestb.in/1jj4jnz1?uuid={UUID}&status=${EVENT}\",\n\t\"event\" : \"*\",\n\t\"associatedUuid\" : \"<insert uuid here>\",\n\t\"persistent\": true\n}",
                                        "description": "The notification to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "NotificationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "NotificationResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid form",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the notification database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update or Add new notification.",
                                "nickname": "update",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The uuid of the notification item",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "uuid"
                                    }
                                ],
                                "type": "EmptyNotificationResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies no UUID",
                                        "code": 400
                                    },
                                    {
                                        "message": "Raised if the user is not authorized.",
                                        "code": 401
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the notification database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Remove notification from the system.",
                                "nickname": "delete",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/notifications/v2/{uuid}",
                        "description": "Query for the notification with the given UUID",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "NotificationResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "Notification",
                                "name": "result"
                            }
                        },
                        "id": "NotificationResponse",
                        "name": ""
                    },
                    "EmptyNotificationResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "type": "EmptyNotification",
                                "name": "result"
                            }
                        },
                        "id": "EmptyNotificationResponse",
                        "name": ""
                    },
                    "Notification": {
                        "properties": {
                            "uuid": {
                                "type": "string",
                                "description": "The UUID for this notification.",
                                "name": "uuid"
                            },
                            "success": {
                                "type": "boolean",
                                "description": "Whether this notification was sent successfully.",
                                "name": "success"
                            },
                            "created": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating when this notification was created in the notification store.",
                                "name": "created"
                            },
                            "url": {
                                "type": "string",
                                "description": "The url or email address that will be notified of the event.",
                                "name": "url"
                            },
                            "persistent": {
                                "type": "boolean",
                                "description": "Whether this notification should stay active after it fires the first time.",
                                "name": "persistent"
                            },
                            "attempts": {
                                "type": "integer",
                                "description": "The number of times this notification has been attempted to be fulfilled.",
                                "name": "attempts",
                                "format": "int32"
                            },
                            "lastSent": {
                                "type": "string",
                                "format": "date-time",
                                "description": "A timestamp indicating the last time this notification was sent.",
                                "name": "lastSent"
                            },
                            "responseCode": {
                                "type": "integer",
                                "description": "The response code from POSTing to the url or sending an email.",
                                "name": "responseCode",
                                "format": "int32"
                            },
                            "owner": {
                                "type": "string",
                                "description": "The API user who owns this notification.",
                                "name": "owner"
                            },
                            "associatedUuid": {
                                "type": "string",
                                "description": "UUID of resource to whome the event applies.",
                                "name": "associatedUuid"
                            }
                        },
                        "id": "Notification",
                        "name": ""
                    },
                    "NotificationRequest": {
                        "properties": {
                            "url": {
                                "required": true,
                                "type": "string",
                                "description": "The url or email address that will be notified of the event.",
                                "name": "url"
                            },
                            "associatedUuid": {
                                "required": true,
                                "type": "string",
                                "description": "UUID of resource to whome the event applies.",
                                "name": "associatedUuid"
                            },
                            "persistent": {
                                "required": true,
                                "type": "boolean",
                                "description": "Whether this notification should stay active after it fires the first time.",
                                "name": "persistent"
                            }
                        },
                        "id": "NotificationRequest",
                        "name": ""
                    },
                    "MultipleNotificationResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "Description of an error. null otherwise.",
                                "name": "message"
                            },
                            "version": {
                                "type": "string",
                                "description": "API version number",
                                "name": "version"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Notification"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleNotificationResponse",
                        "name": ""
                    },
                    "EmptyNotification": {
                        "properties": {},
                        "id": "EmptyNotification",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/notifications/v2",
                "apiVersion": "2.2.14"
            },
            "name": "notifications"
        },
        {
            "url": "http://localhost:9999/postits",
            "path": "/postits",
            "description": "Create pre-authenticated, disposable URLs",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultiplePostItResponse",
                                "notes": "Retrieve a list of your active PostIts.",
                                "is_websocket": false,
                                "responseMessages": [],
                                "summary": "List existing PostIts",
                                "nickname": "list",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"url\": \"https://{{ api_server_base }}/files/v2/media/system/demo.storage.example.com/wc-1.00/picksumipsum.txt\",\n\t\"method\": \"GET\",\n\t\"maxUses\": 25,\n\t\"lifetime\": 3600,\n\t\"noauth\": false\n}",
                                        "description": "The PostIt to create.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "PostItRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "PostIt",
                                "notes": "A PostIt is a pre-authenticated URI that can be given to colleagues, third party services, or reused internally in leu of making a formal authenticated request to the destination URI. PostIts can be used one or more times, limited to a specific lifetime, or both.",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The user profile cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the profile database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Create a new PostIt",
                                "nickname": "create",
                                "method": "POST"
                            }
                        ],
                        "path": "/postits/v2/",
                        "description": "Create a new PostIt.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The nonce of this PostIt URL",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "nonce"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Immediately invalidates this PostIt URL.",
                                "type": "SinglePostItResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/postits/v2/{nonce}",
                        "description": "Operations on a specific PostIt.",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "PostIt": {
                        "properties": {
                            "expires": {
                                "type": "string",
                                "description": "The expiration date in ISO 8601 format.",
                                "name": "expires",
                                "format": "date-time"
                            },
                            "creator": {
                                "type": "string",
                                "description": "The api user who made the PostIt creation request.",
                                "name": "creator"
                            },
                            "url": {
                                "type": "string",
                                "description": "The url that will be invoked when the PostIt is redeemed.",
                                "name": "url"
                            },
                            "remainingUses": {
                                "type": "integer",
                                "description": "The number of invocations remaining on this token. ",
                                "name": "remainingUses",
                                "format": "int32"
                            },
                            "postit": {
                                "type": "string",
                                "description": "The PostIt nonce.",
                                "name": "postit"
                            },
                            "created": {
                                "type": "string",
                                "description": "The creation date in ISO 8601 format.",
                                "name": "created",
                                "format": "date-time"
                            },
                            "method": {
                                "type": "string",
                                "description": "The url that will be invoked when the PostIt is redeemed.",
                                "name": "method"
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "The username of the internal user attached to this PostIt.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "PostIt",
                        "name": ""
                    },
                    "SinglePostItResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "PostIt",
                                "name": "result"
                            }
                        },
                        "id": "SinglePostItResponse",
                        "name": ""
                    },
                    "PostItRequest": {
                        "properties": {
                            "url": {
                                "required": true,
                                "type": "string",
                                "description": "The url that will be invoked when the PostIt is redeemed.",
                                "name": "url"
                            },
                            "maxUses": {
                                "type": "integer",
                                "description": "The maximum number of invocations remaining on this PostIt. Defaults to no limit",
                                "name": "maxUses",
                                "format": "int32"
                            },
                            "noauth": {
                                "type": "boolean",
                                "description": "If true, the provided url will be called without authentication. Default is false",
                                "name": "noauth"
                            },
                            "lifetime": {
                                "minimum": 1,
                                "type": "integer",
                                "description": "The maximum lifetime in seconds of this PostIt on this token. Defaults to 2592000 (30 days)",
                                "name": "lifetime",
                                "format": "int32"
                            },
                            "method": {
                                "enum": [
                                    "GET",
                                    "PUT",
                                    "POST",
                                    "DELETE"
                                ],
                                "type": "string",
                                "description": "The method that will be invoked when the PostIt is redeemed.",
                                "name": "method"
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "The username of the internal user attached to this PostIt.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "PostItRequest",
                        "name": ""
                    },
                    "MultiplePostItResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "PostIt"
                                },
                                "type": "array",
                                "description": "list of postits",
                                "name": "result"
                            }
                        },
                        "id": "MultiplePostItResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/postits/v2",
                "apiVersion": "2.2.14"
            },
            "name": "postits"
        },
        {
            "url": "http://localhost:9999/profiles",
            "path": "/profiles",
            "description": "Create and manage application users",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    },
                                    {
                                        "description": "Filter results by name.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "name"
                                    },
                                    {
                                        "description": "Filter results by email.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "email"
                                    },
                                    {
                                        "description": "Filter results by first_name.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "first_name"
                                    },
                                    {
                                        "description": "Filter results by last_name.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "last_name"
                                    },
                                    {
                                        "description": "Filter results by full_name.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "full_name"
                                    },
                                    {
                                        "description": "Filter results by status.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "status"
                                    },
                                    {
                                        "description": "Filter results by username.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "username"
                                    }
                                ],
                                "type": "MultipleProfileResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The user profile cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the profile database",
                                        "code": 500
                                    }
                                ],
                                "summary": "List user profiles",
                                "nickname": "list",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The profile information for a new user",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "SingleProfileResponse",
                                "notes": "Internal users will not be returned",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to create the user",
                                        "code": 500
                                    }
                                ],
                                "summary": "Create new user profile",
                                "nickname": "create",
                                "method": "POST"
                            }
                        ],
                        "path": "/profiles/v2",
                        "description": "Create and list profiles.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [],
                                "type": "SingleProfileResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The user profile cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the profile database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Find authenticated user profile",
                                "nickname": "get",
                                "method": "GET"
                            }
                        ],
                        "path": "/profiles/v2/me",
                        "description": "Retrieve the profile of the requesting user.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The username of a valid api user",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "type": "SingleProfileResponse",
                                "notes": "Internal users will not be returned",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The user profile cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the profile database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Find api user profile by their api username",
                                "nickname": "listByUsername",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The username of a valid api user",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "description": "Updated profile information for a user",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "SingleProfileResponse",
                                "notes": "Internal users will not be returned",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Raised if a user supplies an invalid username format",
                                        "code": 400
                                    },
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The user profile cannot be found",
                                        "code": 404
                                    },
                                    {
                                        "message": "The service was unable to query the profile database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Update user profile",
                                "nickname": "update",
                                "method": "PUT"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The username of a valid api user",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "type": "SingleProfileResponse",
                                "notes": "Internal users will not be returned",
                                "is_websocket": false,
                                "summary": "Depete user profile",
                                "nickname": "delete",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/profiles/v2/{username}",
                        "description": "Retrieve and update the profile of an API user by their exact username.",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "Profile": {
                        "properties": {
                            "researchArea": {
                                "type": "string",
                                "description": "The api user's primary area of research.",
                                "name": "researchArea"
                            },
                            "city": {
                                "type": "string",
                                "description": "The api user's city.",
                                "name": "city"
                            },
                            "fax": {
                                "type": "string",
                                "description": "The api user's fax number.",
                                "name": "fax"
                            },
                            "firstName": {
                                "type": "string",
                                "description": "The api user's first name.",
                                "name": "firstName"
                            },
                            "country": {
                                "type": "string",
                                "description": "The api user's country.",
                                "name": "country"
                            },
                            "lastName": {
                                "type": "string",
                                "description": "The api user's last name.",
                                "name": "lastName"
                            },
                            "institution": {
                                "type": "string",
                                "description": "The api user's home institution",
                                "name": "institution"
                            },
                            "username": {
                                "type": "string",
                                "description": "The api user's unique username.",
                                "name": "username"
                            },
                            "phone": {
                                "type": "string",
                                "description": "The api user's phone number.",
                                "name": "phone"
                            },
                            "state": {
                                "type": "string",
                                "description": "The api user's state.",
                                "name": "state"
                            },
                            "gender": {
                                "type": "string",
                                "description": "The api user's gender. male or female.",
                                "name": "gender"
                            },
                            "department": {
                                "type": "string",
                                "description": "The api user's institutional department.",
                                "name": "department"
                            },
                            "position": {
                                "type": "string",
                                "description": "The api user's position of employment.",
                                "name": "position"
                            },
                            "email": {
                                "type": "string",
                                "description": "The api user's unique email address.",
                                "name": "email"
                            }
                        },
                        "id": "Profile",
                        "name": ""
                    },
                    "SingleProfileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Profile",
                                "name": "result"
                            }
                        },
                        "id": "SingleProfileResponse",
                        "name": ""
                    },
                    "SingleInternalUserResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "InternalUser",
                                "name": "result"
                            }
                        },
                        "id": "SingleInternalUserResponse",
                        "name": ""
                    },
                    "InternalUserRequest": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The api user's unique username.",
                                "name": "username"
                            },
                            "city": {
                                "type": "string",
                                "description": "The api user's city.",
                                "name": "city"
                            },
                            "fax": {
                                "type": "string",
                                "description": "The api user's fax number.",
                                "name": "fax"
                            },
                            "researchArea": {
                                "type": "string",
                                "description": "The api user's primary area of research.",
                                "name": "researchArea"
                            },
                            "firstName": {
                                "type": "string",
                                "description": "The api user's first name.",
                                "name": "firstName"
                            },
                            "country": {
                                "type": "string",
                                "description": "The api user's country.",
                                "name": "country"
                            },
                            "lastName": {
                                "type": "string",
                                "description": "The api user's last name.",
                                "name": "lastName"
                            },
                            "institution": {
                                "type": "string",
                                "description": "The api user's home institution",
                                "name": "institution"
                            },
                            "phone": {
                                "type": "string",
                                "description": "The api user's phone number.",
                                "name": "phone"
                            },
                            "state": {
                                "type": "string",
                                "description": "The api user's state.",
                                "name": "state"
                            },
                            "status": {
                                "type": "string",
                                "description": "The api user's status. active or deleted.",
                                "name": "status"
                            },
                            "gender": {
                                "enum": [
                                    "male",
                                    "female"
                                ],
                                "type": "string",
                                "description": "The api user's gender. male or female.",
                                "name": "gender"
                            },
                            "department": {
                                "type": "string",
                                "description": "The api user's institutional department.",
                                "name": "department"
                            },
                            "position": {
                                "type": "string",
                                "description": "The api user's position of employment.",
                                "name": "position"
                            },
                            "email": {
                                "required": true,
                                "type": "string",
                                "description": "The api user's unique email address.",
                                "name": "email"
                            }
                        },
                        "id": "InternalUserRequest",
                        "name": ""
                    },
                    "MultipleInternalUserResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "InternalUser"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleInternalUserResponse",
                        "name": ""
                    },
                    "InternalUser": {
                        "properties": {
                            "researchArea": {
                                "type": "string",
                                "description": "The api user's primary area of research.",
                                "name": "researchArea"
                            },
                            "city": {
                                "type": "string",
                                "description": "The api user's city.",
                                "name": "city"
                            },
                            "fax": {
                                "type": "string",
                                "description": "The api user's fax number.",
                                "name": "fax"
                            },
                            "firstName": {
                                "type": "string",
                                "description": "The api user's first name.",
                                "name": "firstName"
                            },
                            "country": {
                                "type": "string",
                                "description": "The api user's country.",
                                "name": "country"
                            },
                            "lastName": {
                                "type": "string",
                                "description": "The api user's last name.",
                                "name": "lastName"
                            },
                            "institution": {
                                "type": "string",
                                "description": "The api user's home institution",
                                "name": "institution"
                            },
                            "username": {
                                "type": "string",
                                "description": "The api user's unique username.",
                                "name": "username"
                            },
                            "phone": {
                                "type": "string",
                                "description": "The api user's phone number.",
                                "name": "phone"
                            },
                            "state": {
                                "type": "string",
                                "description": "The api user's state.",
                                "name": "state"
                            },
                            "status": {
                                "type": "string",
                                "description": "The api user's status. active or deleted.",
                                "name": "status"
                            },
                            "gender": {
                                "type": "string",
                                "description": "The api user's gender. male or female.",
                                "name": "gender"
                            },
                            "department": {
                                "type": "string",
                                "description": "The api user's institutional department.",
                                "name": "department"
                            },
                            "position": {
                                "type": "string",
                                "description": "The api user's position of employment.",
                                "name": "position"
                            },
                            "email": {
                                "type": "string",
                                "description": "The api user's unique email address.",
                                "name": "email"
                            }
                        },
                        "id": "InternalUser",
                        "name": ""
                    },
                    "MultipleProfileResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Profile"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleProfileResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/profiles/v2",
                "apiVersion": "2.2.14"
            },
            "name": "profiles"
        },
        {
            "url": "http://localhost:9999/systems",
            "path": "/systems",
            "description": "Register and manage systems",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "enum": [
                                            "STORAGE",
                                            "EXECUTION"
                                        ],
                                        "description": "The type of system to return",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "string",
                                        "paramType": "query",
                                        "name": "type"
                                    },
                                    {
                                        "description": "Should only default systems be returned",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "default"
                                    },
                                    {
                                        "description": "Should only publicly available systems be returned",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "boolean",
                                        "paramType": "query",
                                        "name": "public"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "list",
                                "notes": "All systems you own, public systems, and systems that have been shared with you.",
                                "is_websocket": false,
                                "summary": "Show all systems available to the user.",
                                "type": "MultipleSystemResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "{\n\t\"id\": \"demo.execute.example.com\",\n\t\"name\": \"Demo SGE + GSISSH demo vm\",\n\t\"status\": \"UP\",\n\t\"type\": \"EXECUTION\",\n\t\"description\": \"My example system using gsissh and gridftp to submit jobs used for testing.\",\n\t\"site\": \"example.com\",\n\t\"executionType\": \"HPC\",\n\t\"queues\": [\n\t\t{\n\t\t\t\"name\": \"debug\",\n\t\t\t\"maxJobs\": 100,\n\t\t\t\"maxUserJobs\": 10,\n\t\t\t\"maxNodes\": 128,\n\t\t\t\"maxMemoryPerNode\": \"2GB\",\n\t\t\t\"maxProcessorsPerNode\": 128,\n\t\t\t\"maxRequestedTime\": \"24:00:00\",\n\t\t\t\"customDirectives\": \"\",\n\t\t\t\"default\": true\n\t\t}\n\t],\n\t\"login\": {\n\t\t\"host\": \"gsissh.example.com\",\n\t\t\"port\": 2222,\n\t\t\"protocol\": \"GSISSH\",\n\t\t\"scratchDir\": \"/scratch\",\n\t\t\"workDir\": \"/work\",\n\t\t\"auth\": {\n\t\t\t\"username\": \"demo\",\n\t\t\t\"password\": \"demo\",\n\t\t\t\"credential\": \"\",\n\t\t\t\"type\": \"X509\",\n\t\t\t\"server\": {\n\t\t\t\t\"id\": \"myproxy.teragrid.org\",\n\t\t\t\t\"name\": \"XSEDE MyProxy Server\",\n\t\t\t\t\"site\": \"ncsa.uiuc.edu\",\n\t\t\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\t\t\"port\": 7512,\n\t\t\t\t\"protocol\": \"MYPROXY\"\n\t\t\t}\n\t\t}\n\t},\n\t\"storage\": {\n\t\t\"host\": \"gridftp.example.com\",\n\t\t\"port\": 2811,\n\t\t\"protocol\": \"GRIDFTP\",\n\t\t\"rootDir\": \"/home/demo\",\n\t\t\"homeDir\": \"/\",\n\t\t\"auth\": {\n\t\t\t\"username\": \"demo\",\n\t\t\t\"password\": \"demo\",\n\t\t\t\"credential\": \"\",\n\t\t\t\"type\": \"X509\",\n\t\t\t\"server\": {\n\t\t\t\t\"id\": \"myproxy.teragrid.org\",\n\t\t\t\t\"name\": \"XSEDE MyProxy Server\",\n\t\t\t\t\"site\": \"ncsa.uiuc.edu\",\n\t\t\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\t\t\"port\": 7512,\n\t\t\t\t\"protocol\": \"MYPROXY\"\n\t\t\t}\n\t\t}\n\t},\n\t\"maxSystemJobs\": 100,\n\t\"maxSystemJobsPerUser\": 10,\n\t\"scheduler\": \"SGE\",\n\t\"environment\": \"\",\n\t\"startupScript\": \"./bashrc\"\n}",
                                        "description": "The description of the system to add or update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "SystemRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "add",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Add or update a system.",
                                "type": "SingleSystemResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/systems/v2/",
                        "description": "Query for the list of available public systems",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    }
                                ],
                                "nickname": "get",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Find information about an individual system.",
                                "type": "SingleSystemResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"id\": \"demo.execute.example.com\",\n\t\"name\": \"Demo SGE + GSISSH demo vm\",\n\t\"status\": \"UP\",\n\t\"type\": \"EXECUTION\",\n\t\"description\": \"My example system using gsissh and gridftp to submit jobs used for testing.\",\n\t\"site\": \"example.com\",\n\t\"executionType\": \"HPC\",\n\t\"queues\": [\n\t\t{\n\t\t\t\"name\": \"debug\",\n\t\t\t\"maxJobs\": 100,\n\t\t\t\"maxUserJobs\": 10,\n\t\t\t\"maxNodes\": 128,\n\t\t\t\"maxMemoryPerNode\": \"2GB\",\n\t\t\t\"maxProcessorsPerNode\": 128,\n\t\t\t\"maxRequestedTime\": \"24:00:00\",\n\t\t\t\"customDirectives\": \"\",\n\t\t\t\"default\": true\n\t\t}\n\t],\n\t\"login\": {\n\t\t\"host\": \"gsissh.example.com\",\n\t\t\"port\": 2222,\n\t\t\"protocol\": \"GSISSH\",\n\t\t\"scratchDir\": \"/scratch\",\n\t\t\"workDir\": \"/work\",\n\t\t\"auth\": {\n\t\t\t\"username\": \"demo\",\n\t\t\t\"password\": \"demo\",\n\t\t\t\"credential\": \"\",\n\t\t\t\"type\": \"X509\",\n\t\t\t\"server\": {\n\t\t\t\t\"id\": \"myproxy.teragrid.org\",\n\t\t\t\t\"name\": \"XSEDE MyProxy Server\",\n\t\t\t\t\"site\": \"ncsa.uiuc.edu\",\n\t\t\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\t\t\"port\": 7512,\n\t\t\t\t\"protocol\": \"MYPROXY\"\n\t\t\t}\n\t\t}\n\t},\n\t\"storage\": {\n\t\t\"host\": \"gridftp.example.com\",\n\t\t\"port\": 2811,\n\t\t\"protocol\": \"GRIDFTP\",\n\t\t\"rootDir\": \"/home/demo\",\n\t\t\"homeDir\": \"/\",\n\t\t\"auth\": {\n\t\t\t\"username\": \"demo\",\n\t\t\t\"password\": \"demo\",\n\t\t\t\"credential\": \"\",\n\t\t\t\"type\": \"X509\",\n\t\t\t\"server\": {\n\t\t\t\t\"id\": \"myproxy.teragrid.org\",\n\t\t\t\t\"name\": \"XSEDE MyProxy Server\",\n\t\t\t\t\"site\": \"ncsa.uiuc.edu\",\n\t\t\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\t\t\"port\": 7512,\n\t\t\t\t\"protocol\": \"MYPROXY\"\n\t\t\t}\n\t\t}\n\t},\n\t\"maxSystemJobs\": 100,\n\t\"maxSystemJobsPerUser\": 10,\n\t\"scheduler\": \"SGE\",\n\t\"environment\": \"\",\n\t\"startupScript\": \"./bashrc\"\n}",
                                        "description": "The description of the system to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "SystemRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "update",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Find information about an individual system.",
                                "type": "SingleSystemResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"action\": \"clone\",\n\t\"name\": \"storage-copy.example.com\",\n}",
                                        "description": "The description of the system to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "SystemOperationRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "manage",
                                "notes": "PUBLISH moves the system from private to public. Only API administrators can peform this action. DEFAULT makes the given system your default system of that type. When no system is explicitly specified in URI, your default storage system will be used. CLONE creates a private copy of the named system. Authentication information will not be cloned, so you must update the system with your own credentials.",
                                "is_websocket": false,
                                "summary": "Perform a management action on the system.",
                                "type": "EmptySystemResponse",
                                "method": "PUT"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The unique id of the system",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    }
                                ],
                                "nickname": "delete",
                                "notes": "Disables the system and all applications registered to it. Once deleted, the system cannot be recovered and the systemId cannot be reused.",
                                "is_websocket": false,
                                "summary": "Delete a system.",
                                "type": "EmptySystemResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/systems/v2/{systemId}",
                        "description": "Find information about an individual system.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listRoles",
                                "notes": "Users must have ADMIN role or greater on a system to view its roles.",
                                "is_websocket": false,
                                "summary": "Get a list of all users and their roles on this system.",
                                "type": "MultipleSystemRoleResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\": \"rclemens\",\n\t\"role\": \"USER\",\n}",
                                        "description": "The role to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "SystemRole",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateRole",
                                "notes": "Setting a user's role to NONE or an empty string is the same as deleting that user's permission. Once all user's roles have been removed from a system, any applications that were registered by the user on the system will be disabled. Users must have ADMIN role or greater on a system to manage its roles.",
                                "is_websocket": false,
                                "summary": "Add or update a user's role on a system.",
                                "type": "EmptySystemResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    }
                                ],
                                "nickname": "deleteRoles",
                                "notes": "This will reset the permissions such that only the user who registered the system will be able to view it. System owners cannot remove their own permissions. All apps registered by the deleted users on this system will be disabled. Users must have ADMIN role or greater on a system to delete its roles.",
                                "is_websocket": false,
                                "summary": "Deletes all roles on a system.",
                                "type": "EmptySystemResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/systems/v2/{systemId}/roles",
                        "description": "List all user roles on this system",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of the user about whose role you are inquiring.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "getRoleForUser",
                                "notes": "Users must have ADMIN role or greater on a system to view its roles.",
                                "is_websocket": false,
                                "summary": "Get a specific user's roles on this system.",
                                "type": "SingleSystemRoleResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the role",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"username\": \"rclemens\",\n\t\"role\": \"USER\",\n}",
                                        "description": "The role to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "SystemRole",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateRoleForUser",
                                "notes": "Setting a user's role to NONE or an empty string is the same as deleting that user's permission. Once all user's roles have been removed from a system, any applications that were registered by the user on the system will be disabled. Users must have ADMIN role or greater on a system to edit its roles.",
                                "is_websocket": false,
                                "summary": "Add or update a user's role on a system.",
                                "type": "EmptySystemResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of the api user associated with the role",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "username"
                                    }
                                ],
                                "nickname": "deleteRoleForUser",
                                "notes": "This will reset the permissions such that only the user who registered the system will be able to view it. System owners cannot remove their own permissions. All apps registered by the deleted users on this system will be disabled. Users must have ADMIN role or greater on a system to delete its roles.",
                                "is_websocket": false,
                                "summary": "Deletes all roles on a system.",
                                "type": "EmptySystemResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/systems/v2/{systemId}/roles/{username}",
                        "description": "List all user roles on this system",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listCredentials",
                                "notes": "Users must have ADMIN role or greater on a system to view its credentials. No sensitive information will be returned. This is strictly to keep track of which internal users have their own credentials.",
                                "is_websocket": false,
                                "summary": "Get a list of all internal users and their credentials on this system.",
                                "type": "SystemCredentialsResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"internalUsername\": null,\n\t\"username\": \"nryan\",\n\t\"password\": \"<password>\",\n\t\"credential\": null,\n\t\"type\": \"X509\",\n\t\"server\": {\n\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\"port\": 7512,\n\t\t\"protocol\": \"MYPROXY\"\n\t},\n\t\"default\": true\n}",
                                        "description": "The description of the internal user credential to add or update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "UserCredential",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateCredentials",
                                "notes": "Credentials will be valided when submitted. If the credentials are not valid, an error will be returned. Users must have ADMIN role or greater on a system to manage its credentials. No sensitive information will be returned. This is strictly to keep track of which internal users have their own credentials.",
                                "is_websocket": false,
                                "summary": "Add or update a user's credential on a system. This applies both to data and, if applicable, login credenitals.",
                                "type": "EmptySystemResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    }
                                ],
                                "nickname": "deleteCredentials",
                                "notes": "This will delete all credentials except the default system credential. The internal users will remain unchanged and their individual credentials will fall back to the default system credential on all future interactions. Users must have ADMIN role or greater on a system to delete its roles. No sensitive information will be returned.",
                                "is_websocket": false,
                                "summary": "Deletes all credentials registered to a system.",
                                "type": "EmptySystemResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/systems/v2/{systemId}/credentials",
                        "description": "List of internal user credentials on this system",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of a internal user on this system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "internalUsername"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listCredentialsForInternalUser",
                                "notes": "Users must have ADMIN role or greater on a system to view its credentials. No sensitive information will be returned. This is strictly to keep track of which internal users have their own credentials.",
                                "is_websocket": false,
                                "summary": "Get a list of all internal users and their credentials on this system.",
                                "type": "SystemCredentialsResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of a internal user on this system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "internalUsername"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"internalUsername\": null,\n\t\"username\": \"nryan\",\n\t\"password\": \"<password>\",\n\t\"credential\": null,\n\t\"type\": \"X509\",\n\t\"server\": {\n\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\"port\": 7512,\n\t\t\"protocol\": \"MYPROXY\"\n\t},\n\t\"default\": true\n}",
                                        "description": "The description of the internal user credential to add or update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "UserCredential",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateCredentialsForInternalUser",
                                "notes": "Credentials will be valided when submitted. If the credentials are not valid, an error will be returned. The internalUsername value in the POST JSON must match the URI username value or an error message will be returned. Users must have ADMIN role or greater on a system to manage its credentials. No sensitive information will be returned. This is strictly to keep track of which internal users have their own credentials.",
                                "is_websocket": false,
                                "summary": "Add or update a user's credentials on a system.",
                                "type": "EmptySystemResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of a internal user on this system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "internalUsername"
                                    }
                                ],
                                "nickname": "deleteCredentialsForInternalUser",
                                "notes": "This will delete all internal user credentials on this system. The internal users will remain unchanged and their individual credentials will fall back to the default system credential on all future interactions. Users must have ADMIN role or greater on a system to delete its roles. No sensitive information will be returned.",
                                "is_websocket": false,
                                "summary": "Deletes all credentials registered to a system.",
                                "type": "EmptySystemResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/systems/v2/{systemId}/credentials/{internalUsername}",
                        "description": "List of internal user credentials on this system",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of a internal user on this system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "internalUsername"
                                    },
                                    {
                                        "enum": [
                                            "STORAGE",
                                            "LOGIN"
                                        ],
                                        "description": "The configuration type to which to apply this credential.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "credentialType"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "nickname": "listCredentialsForInternalUserByType",
                                "notes": "If the internal user has no personal credential registered, the system default credential of the specified type will be returned. Users must have ADMIN role or greater on a system to view its credentials. No sensitive information will be returned. This is strictly to keep track of which internal users have their own credentials.",
                                "is_websocket": false,
                                "summary": "Get the internal user credential of the given type on the system.",
                                "type": "SystemCredentialsResponse",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of a internal user on this system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "internalUsername"
                                    },
                                    {
                                        "enum": [
                                            "STORAGE",
                                            "LOGIN"
                                        ],
                                        "description": "The configuration type to which to apply this credential.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "credentialType"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"internalUsername\": null,\n\t\"username\": \"nryan\",\n\t\"password\": \"<password>\",\n\t\"credential\": null,\n\t\"type\": \"X509\",\n\t\"server\": {\n\t\t\"endpoint\": \"myproxy.teragrid.org\",\n\t\t\"port\": 7512,\n\t\t\"protocol\": \"MYPROXY\"\n\t},\n\t\"default\": true\n}",
                                        "description": "The description of the internal user credential to add or update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "UserCredential",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateCredentialsForInternalUserByType",
                                "notes": "Credentials will be valided when submitted. If the credentials are not valid, an error will be returned. The internalUsername value in the POST JSON must match the URI username value or an error message will be returned. Users must have ADMIN role or greater on a system to manage its credentials. No sensitive information will be returned. This is strictly to keep track of which internal users have their own credentials.",
                                "is_websocket": false,
                                "summary": "Add or update a credential of the given type on a system.",
                                "type": "EmptySystemResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "systemId"
                                    },
                                    {
                                        "description": "The username of a internal user on this system.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "internalUsername"
                                    },
                                    {
                                        "enum": [
                                            "STORAGE",
                                            "LOGIN"
                                        ],
                                        "description": "The configuration type to which to apply this credential.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "credentialType"
                                    }
                                ],
                                "nickname": "deleteCredentialsForInternalUserByType",
                                "notes": "This will delete all internal user credentials for the specified type on this system. The internal users will remain unchanged and their individual credentials will fall back to the default system credential on all future interactions. Users must have ADMIN role or greater on a system to delete its roles. No sensitive information will be returned.",
                                "is_websocket": false,
                                "summary": "Deletes the internal user credentials for the given credential type on a system.",
                                "type": "EmptySystemResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/systems/v2/{systemId}/credentials/{internalUsername}/{credentialType}",
                        "description": "List of internal user credentials on this system",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "SystemOperationRequest": {
                        "properties": {
                            "action": {
                                "required": true,
                                "type": "string",
                                "description": "Action to perform on the system.",
                                "enum": [
                                    "ENABLE",
                                    "DISABLE",
                                    "PUBLISH",
                                    "UNPUBLISH",
                                    "SETDEFAULT",
                                    "UNSETDEFAULT",
                                    "SETGLOBALDEFAULT",
                                    "UNSETGLOBALDEFAULT",
                                    "CLONE"
                                ],
                                "name": "action"
                            },
                            "id": {
                                "type": "string",
                                "description": "The new system id of the cloned system",
                                "name": "id"
                            }
                        },
                        "id": "SystemOperationRequest",
                        "name": ""
                    },
                    "MultipleSystemResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "SystemSummary"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleSystemResponse",
                        "name": ""
                    },
                    "SystemRole": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "The username of the api user granted this role.",
                                "name": "username"
                            },
                            "role": {
                                "enum": [
                                    "USER",
                                    "PUBLISHER",
                                    "ADMIN",
                                    "OWNER"
                                ],
                                "type": "string",
                                "description": "The role granted this user.",
                                "name": "role"
                            }
                        },
                        "id": "SystemRole",
                        "name": ""
                    },
                    "BatchQueue": {
                        "properties": {
                            "maxUserJobs": {
                                "type": "integer",
                                "description": "The maximum number of jobs per user that can be in queue at once.",
                                "name": "maxUserJobs",
                                "format": "int32"
                            },
                            "maxRequestedTime": {
                                "type": "string",
                                "description": "The max length of jobs submitted to this queue in hhh:mm:ss format.",
                                "name": "maxRequestedTime"
                            },
                            "maxJobs": {
                                "type": "integer",
                                "description": "The maximum number of jobs that can be in queue at once.",
                                "name": "maxJobs",
                                "format": "int32"
                            },
                            "default": {
                                "required": true,
                                "type": "boolean",
                                "description": "Is this the default queue for the system.",
                                "name": "default"
                            },
                            "maxMemoryPerNode": {
                                "type": "string",
                                "description": "The max memory available per node to jobs submitted to this queue.",
                                "name": "maxMemoryPerNode"
                            },
                            "maxNodes": {
                                "type": "string",
                                "description": "The max nodes available per node to jobs submitted to this queue.",
                                "name": "maxNodes"
                            },
                            "customDirectives": {
                                "type": "string",
                                "description": "Any custom directives that should be appended to scheduler directives. ex. #$ -A TG-12345",
                                "name": "customDirectives"
                            },
                            "maxProcessorsPerNode": {
                                "type": "integer",
                                "description": "The max processors per node available to jobs submitted to this queue.",
                                "name": "maxProcessorsPerNode",
                                "format": "int32"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "The name of the batch queue.",
                                "name": "name"
                            }
                        },
                        "id": "BatchQueue",
                        "name": ""
                    },
                    "SystemSummary": {
                        "properties": {
                            "status": {
                                "enum": [
                                    "UP",
                                    "DOWN",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The status of this system. Systems must be in UP status to be used.",
                                "name": "status"
                            },
                            "description": {
                                "type": "string",
                                "description": "Verbose description of this system.",
                                "name": "description"
                            },
                            "default": {
                                "type": "boolean",
                                "description": "Is the system the default for the authenticated user?",
                                "name": "default"
                            },
                            "id": {
                                "type": "string",
                                "description": "Unique identifier for this system.",
                                "name": "id"
                            },
                            "type": {
                                "enum": [
                                    "EXECUTION",
                                    "STORAGE"
                                ],
                                "type": "string",
                                "description": "The type of this system.",
                                "name": "type"
                            },
                            "public": {
                                "type": "boolean",
                                "description": "Is the system publicly available?",
                                "name": "public"
                            },
                            "name": {
                                "type": "string",
                                "description": "Common name for this system.",
                                "name": "name"
                            }
                        },
                        "id": "SystemSummary",
                        "name": ""
                    },
                    "UserCredentialServer": {
                        "properties": {
                            "endpoint": {
                                "required": true,
                                "type": "string",
                                "description": "The hostname or ip address of the remote server.",
                                "name": "endpoint"
                            },
                            "protocol": {
                                "enum": [
                                    "MYPROXY",
                                    "OA4MP"
                                ],
                                "type": "string",
                                "description": "The protocol used to obtain a credential from the remote server.",
                                "name": "protocol",
                                "required": true
                            },
                            "port": {
                                "required": true,
                                "type": "int",
                                "description": "The port number of the remote server..",
                                "name": "port",
                                "format": "int32"
                            }
                        },
                        "id": "UserCredentialServer",
                        "name": ""
                    },
                    "StorageConfig": {
                        "properties": {
                            "protocol": {
                                "enum": [
                                    "GRIDFTP",
                                    "FTP",
                                    "SFTP",
                                    "IRODS",
                                    "LOCAL"
                                ],
                                "type": "string",
                                "description": "The protocol used to authenticate to the storage server.",
                                "name": "protocol",
                                "required": true
                            },
                            "homeDir": {
                                "type": "string",
                                "description": "The path on the remote system to use as the home directory for all API requests. For cases where the home directory should be dynamically defined, the ${USERNAME} token can be included in the homeDir value to represent the username of the authenticated user. ex. /home/${USERNAME}.",
                                "name": "homeDir"
                            },
                            "zone": {
                                "type": "string",
                                "description": "The name of the zone when defining an IRODS system.",
                                "name": "zone"
                            },
                            "rootDir": {
                                "type": "string",
                                "description": "The path on the remote system to use as the root for all API requests.",
                                "name": "rootDir"
                            },
                            "auth": {
                                "required": true,
                                "type": "UserCredential",
                                "description": "The default authentication credential used for this system.",
                                "name": "auth"
                            },
                            "host": {
                                "required": true,
                                "type": "string",
                                "description": "The hostname or ip address of the storage server",
                                "name": "host"
                            },
                            "publicAppsDir": {
                                "type": "string",
                                "description": "The path on the remote system where apps will be stored if this is set as the default public storage system.",
                                "name": "publicAppsDir"
                            },
                            "mirror": {
                                "type": "boolean",
                                "description": "Whether the permissions set on the server should be pushed to the storage system itself. This only applies to IRODS and AWS systems.",
                                "name": "mirror"
                            },
                            "resource": {
                                "type": "string",
                                "description": "The name of the target resource when defining an IRODS system.",
                                "name": "resource"
                            },
                            "port": {
                                "required": true,
                                "type": "integer",
                                "description": "The port number of the storage server.",
                                "name": "port",
                                "format": "int32"
                            }
                        },
                        "id": "StorageConfig",
                        "name": ""
                    },
                    "System": {
                        "subTypes": [
                            "StorageSystem",
                            "ExecutionSystem"
                        ],
                        "properties": {
                            "maxSystemJobs": {
                                "type": "int",
                                "description": "The maximum number of jobs that can be simultaneously run on the system across all queues.",
                                "name": "maxSystemJobs",
                                "format": "int32"
                            },
                            "site": {
                                "type": "string",
                                "description": "The site associated with this system.",
                                "name": "site"
                            },
                            "executionType": {
                                "enum": [
                                    "HPC",
                                    "CONDOR",
                                    "CLI"
                                ],
                                "type": "string",
                                "description": "The execution paradigm used to run jobs on this system.",
                                "name": "executionType"
                            },
                            "id": {
                                "type": "string",
                                "description": "Unique identifier for this system.",
                                "name": "id"
                            },
                            "workDir": {
                                "type": "string",
                                "description": "The work directory where job execution directories will be created at runtime. This is used if scratchDir is not specified. If neither are specified, the job directory will be created in the system homeDir.",
                                "name": "workDir"
                            },
                            "uuid": {
                                "type": "string",
                                "description": "The uuid of this system.",
                                "name": "uuid"
                            },
                            "storage": {
                                "type": "StorageConfig",
                                "description": "The storage config defining how to connect to this system for data staging.",
                                "name": "storage"
                            },
                            "environment": {
                                "type": "string",
                                "description": "Environment variables to set upon login prior to job submission.",
                                "name": "environment"
                            },
                            "type": {
                                "enum": [
                                    "EXECUTION",
                                    "STORAGE"
                                ],
                                "type": "string",
                                "description": "The type of this system.",
                                "name": "type"
                            },
                            "public": {
                                "type": "boolean",
                                "description": "Is the system publicly available?",
                                "name": "public"
                            },
                            "revision": {
                                "type": "int",
                                "description": "The number of times this app has been updated.",
                                "name": "revision"
                            },
                            "status": {
                                "enum": [
                                    "UP",
                                    "DOWN",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The status of this system. Systems must be in UP status to be used.",
                                "name": "status"
                            },
                            "description": {
                                "type": "string",
                                "description": "Verbose description of this system.",
                                "name": "description"
                            },
                            "scratchDir": {
                                "type": "string",
                                "description": "The scratch directory where job execution directories will be created at runtime. The workDir is used if this is not specified.",
                                "name": "scratchDir"
                            },
                            "scheduler": {
                                "enum": [
                                    "COBALT",
                                    "CONDOR",
                                    "FORK",
                                    "LOADLEVELER",
                                    "LSF",
                                    "MOAB",
                                    "PBS",
                                    "SGE",
                                    "SLURM",
                                    "TORQUE",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The type of scheduled used to run jobs.",
                                "name": "scheduler"
                            },
                            "startupScript": {
                                "type": "string",
                                "description": "Script to be run after login and prior to execution.",
                                "name": "startupScript"
                            },
                            "name": {
                                "type": "string",
                                "description": "Common name for this system.",
                                "name": "name"
                            },
                            "default": {
                                "type": "boolean",
                                "description": "Is the system the default for the authenticated user?",
                                "name": "default"
                            },
                            "lastModified": {
                                "type": "string",
                                "description": "The date this system was last modified in ISO 8601 format.",
                                "name": "lastModified",
                                "format": "date-time"
                            },
                            "queues": {
                                "items": {
                                    "$ref": "BatchQueue"
                                },
                                "type": "array",
                                "description": "The execution paradigm used to run jobs on this system.",
                                "name": "queues"
                            },
                            "maxSystemJobsPerUser": {
                                "type": "int",
                                "description": "The maximum number of jobs that can be simultaneously run on the system across all queues by a single user.",
                                "name": "maxSystemJobsPerUser",
                                "format": "int32"
                            },
                            "login": {
                                "type": "LoginConfig",
                                "description": "The login config defining how to connect to this system for job submission.",
                                "name": "login"
                            }
                        },
                        "discriminator": "type",
                        "id": "System",
                        "name": ""
                    },
                    "LoginConfig": {
                        "properties": {
                            "host": {
                                "required": true,
                                "type": "string",
                                "description": "The hostname or ip address of the submission server",
                                "name": "host"
                            },
                            "protocol": {
                                "enum": [
                                    "GSISSH",
                                    "SSH",
                                    "LOCAL"
                                ],
                                "type": "string",
                                "description": "The protocol used to authenticate to the submission server.",
                                "name": "protocol",
                                "required": true
                            },
                            "port": {
                                "required": true,
                                "type": "integer",
                                "description": "The port number of the submission server.",
                                "name": "port",
                                "format": "int32"
                            },
                            "auth": {
                                "required": true,
                                "type": "UserCredential",
                                "description": "The default authentication credential used for this system.",
                                "name": "auth"
                            }
                        },
                        "id": "LoginConfig",
                        "name": ""
                    },
                    "SystemRequest": {
                        "name": "",
                        "required": [
                            "id",
                            "storage",
                            "name",
                            "status",
                            "type"
                        ],
                        "id": "SystemRequest",
                        "discriminator": "type",
                        "subTypes": [
                            "StorageSystem",
                            "ExecutionSystem"
                        ],
                        "properties": {
                            "status": {
                                "enum": [
                                    "UP",
                                    "DOWN",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The status of this system. Systems must be in UP status to be used.",
                                "name": "status",
                                "required": true
                            },
                            "workDir": {
                                "type": "string",
                                "description": "The work directory where job execution directories will be created at runtime. This is used if scratchDir is not specified. If neither are specified, the job directory will be created in the system homeDir.",
                                "name": "workDir"
                            },
                            "description": {
                                "type": "string",
                                "description": "Verbose description of this system.",
                                "name": "description"
                            },
                            "maxSystemJobs": {
                                "type": "int",
                                "description": "The maximum number of jobs that can be simultaneously run on the system across all queues.",
                                "name": "maxSystemJobs",
                                "format": "int32"
                            },
                            "queues": {
                                "items": {
                                    "$ref": "BatchQueue"
                                },
                                "required": true,
                                "type": "array",
                                "description": "The execution paradigm used to run jobs on this system.",
                                "name": "queues"
                            },
                            "storage": {
                                "required": true,
                                "type": "StorageConfig",
                                "description": "The storage config defining how to connect to this system for data staging.",
                                "name": "storage"
                            },
                            "site": {
                                "type": "string",
                                "description": "The site associated with this system.",
                                "name": "site"
                            },
                            "executionType": {
                                "enum": [
                                    "HPC",
                                    "CONDOR",
                                    "CLI"
                                ],
                                "type": "string",
                                "description": "The execution paradigm used to run jobs on this system.",
                                "name": "executionType",
                                "required": true
                            },
                            "environment": {
                                "type": "string",
                                "description": "Environment variables to set upon login prior to job submission.",
                                "name": "environment"
                            },
                            "scratchDir": {
                                "type": "string",
                                "description": "The scratch directory where job execution directories will be created at runtime. The workDir is used if this is not specified.",
                                "name": "scratchDir"
                            },
                            "scheduler": {
                                "enum": [
                                    "COBALT",
                                    "CONDOR",
                                    "FORK",
                                    "LOADLEVELER",
                                    "LSF",
                                    "MOAB",
                                    "PBS",
                                    "SGE",
                                    "SLURM",
                                    "TORQUE",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The type of scheduled used to run jobs.",
                                "name": "scheduler",
                                "required": true
                            },
                            "startupScript": {
                                "type": "string",
                                "description": "Script to be run after login and prior to execution.",
                                "name": "startupScript"
                            },
                            "login": {
                                "required": true,
                                "type": "LoginConfig",
                                "description": "The login config defining how to connect to this system for job submission.",
                                "name": "login"
                            },
                            "maxSystemJobsPerUser": {
                                "type": "int",
                                "description": "The maximum number of jobs that can be simultaneously run on the system across all queues by a single user.",
                                "name": "maxSystemJobsPerUser",
                                "format": "int32"
                            },
                            "type": {
                                "enum": [
                                    "EXECUTION",
                                    "STORAGE"
                                ],
                                "type": "string",
                                "description": "The type of this system.",
                                "name": "type",
                                "required": true
                            },
                            "id": {
                                "type": "string",
                                "description": "Unique identifier for this system.",
                                "name": "id"
                            },
                            "name": {
                                "required": true,
                                "type": "string",
                                "description": "Common name for this system.",
                                "name": "name"
                            }
                        }
                    },
                    "UserCredential": {
                        "properties": {
                            "username": {
                                "type": "string",
                                "description": "The local username on the remote system used to authenticate.",
                                "name": "username"
                            },
                            "credential": {
                                "type": "string",
                                "description": "The credential used to authenticate to the remote system. Depending on the authentication protocol of the remote system, this could be an OAuth Token, X.509 certificate, Kerberose token, or an private key..",
                                "name": "credential"
                            },
                            "privateKey": {
                                "type": "string",
                                "description": "The public ssh key used to authenticate to the remote system..",
                                "name": "privateKey"
                            },
                            "server": {
                                "type": "UserCredentialServer",
                                "description": "The server from which a credential may be obtained.",
                                "name": "server"
                            },
                            "publicKey": {
                                "type": "string",
                                "description": "The public ssh key used to authenticate to the remote system.",
                                "name": "publicKey"
                            },
                            "password": {
                                "type": "string",
                                "description": "The password on the remote system used to authenticate.",
                                "name": "password"
                            },
                            "type": {
                                "enum": [
                                    "LOCAL",
                                    "PAM",
                                    "PASSWORD",
                                    "SSHKEYS",
                                    "TOKEN",
                                    "X509"
                                ],
                                "type": "string",
                                "description": "The authentication type.",
                                "name": "type",
                                "required": true
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "The username of the internal user associated with this credential.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "UserCredential",
                        "name": ""
                    },
                    "MultipleSystemRoleResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "SystemRole"
                                },
                                "type": "array",
                                "description": "All matching roles for this system",
                                "name": "result"
                            }
                        },
                        "id": "MultipleSystemRoleResponse",
                        "name": ""
                    },
                    "SingleSystemRoleResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "SystemRole",
                                "description": "The user's role for this system",
                                "name": "result"
                            }
                        },
                        "id": "SingleSystemRoleResponse",
                        "name": ""
                    },
                    "StoredCredential": {
                        "properties": {
                            "username": {
                                "required": true,
                                "type": "string",
                                "description": "The local username on the remote system used to authenticate.",
                                "name": "username"
                            },
                            "credential": {
                                "type": "string",
                                "description": "The credential used to authenticate to the remote system. Depending on the authentication protocol of the remote system, this could be an OAuth Token, X.509 certificate, Kerberose token, or an private key..",
                                "name": "credential"
                            },
                            "default": {
                                "type": "boolean",
                                "description": "Is this the default credential for this internal user of this type on this system?",
                                "name": "default"
                            },
                            "privateKey": {
                                "type": "string",
                                "description": "The public ssh key used to authenticate to the remote system..",
                                "name": "privateKey"
                            },
                            "server": {
                                "type": "UserCredentialServer",
                                "description": "The server from which a credential may be obtained.",
                                "name": "server"
                            },
                            "publicKey": {
                                "type": "string",
                                "description": "The public ssh key used to authenticate to the remote system.",
                                "name": "publicKey"
                            },
                            "parentType": {
                                "enum": [
                                    "STORAGE",
                                    "EXECUTION"
                                ],
                                "type": "string",
                                "description": "The system type this credential is associated with.",
                                "name": "parentType"
                            },
                            "valid": {
                                "type": "boolean",
                                "description": "Is the credential still valid or has it expired?.",
                                "name": "valid"
                            },
                            "expirationDate": {
                                "type": "string",
                                "description": "The date the credential expires in ISO 8601 format.",
                                "name": "expirationDate",
                                "format": "date-time"
                            },
                            "password": {
                                "type": "string",
                                "description": "The password on the remote system used to authenticate.",
                                "name": "password"
                            },
                            "type": {
                                "enum": [
                                    "LOCAL",
                                    "PAM",
                                    "PASSWORD",
                                    "SSHKEYS",
                                    "TOKEN",
                                    "X509"
                                ],
                                "type": "string",
                                "description": "The authentication type.",
                                "name": "type",
                                "required": true
                            },
                            "internalUsername": {
                                "type": "string",
                                "description": "The username of the internal user associated with this credential.",
                                "name": "internalUsername"
                            }
                        },
                        "id": "StoredCredential",
                        "name": ""
                    },
                    "SystemCredentialsResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "StoredCredential",
                                "name": "result"
                            }
                        },
                        "id": "SystemCredentialsResponse",
                        "name": ""
                    },
                    "SingleSystemResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "System",
                                "name": "result"
                            }
                        },
                        "id": "SingleSystemResponse",
                        "name": ""
                    },
                    "EmptySystemResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "string",
                                "description": "empty result",
                                "name": "result"
                            }
                        },
                        "id": "EmptySystemResponse",
                        "name": ""
                    },
                    "ExecutionSystem": {
                        "properties": {
                            "workDir": {
                                "type": "string",
                                "description": "The work directory where job execution directories will be created at runtime. This is used if scratchDir is not specified. If neither are specified, the job directory will be created in the system homeDir.",
                                "name": "workDir"
                            },
                            "maxSystemJobs": {
                                "type": "int",
                                "description": "The maximum number of jobs that can be simultaneously run on the system across all queues.",
                                "name": "maxSystemJobs",
                                "format": "int32"
                            },
                            "queues": {
                                "items": {
                                    "$ref": "BatchQueue"
                                },
                                "required": true,
                                "type": "array",
                                "description": "The execution paradigm used to run jobs on this system.",
                                "name": "queues"
                            },
                            "maxSystemJobsPerUser": {
                                "type": "int",
                                "description": "The maximum number of jobs that can be simultaneously run on the system across all queues by a single user.",
                                "name": "maxSystemJobsPerUser",
                                "format": "int32"
                            },
                            "scratchDir": {
                                "type": "string",
                                "description": "The scratch directory where job execution directories will be created at runtime. The workDir is used if this is not specified.",
                                "name": "scratchDir"
                            },
                            "scheduler": {
                                "enum": [
                                    "COBALT",
                                    "CONDOR",
                                    "FORK",
                                    "LOADLEVELER",
                                    "LSF",
                                    "MOAB",
                                    "PBS",
                                    "SGE",
                                    "SLURM",
                                    "TORQUE",
                                    "UNKNOWN"
                                ],
                                "type": "string",
                                "description": "The type of scheduled used to run jobs.",
                                "name": "scheduler",
                                "required": true
                            },
                            "login": {
                                "required": true,
                                "type": "LoginConfig",
                                "description": "The login config defining how to connect to this system for job submission.",
                                "name": "login"
                            },
                            "executionType": {
                                "enum": [
                                    "HPC",
                                    "CONDOR",
                                    "CLI"
                                ],
                                "type": "string",
                                "description": "The execution paradigm used to run jobs on this system.",
                                "name": "executionType",
                                "required": true
                            }
                        },
                        "required": [
                            "executionType",
                            "login",
                            "queues",
                            "scheduler"
                        ],
                        "id": "ExecutionSystem",
                        "name": ""
                    },
                    "StorageSystem": {
                        "properties": {},
                        "id": "StorageSystem",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/systems/v2",
                "apiVersion": "2.2.14"
            },
            "name": "systems"
        },
        {
            "url": "http://localhost:9999/transforms",
            "path": "/transforms",
            "description": "Transform and stage data",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [],
                                "nickname": "list",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Find all transforms for use within the api.",
                                "type": "MultipleTransformResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/transforms/v2/",
                        "description": "Get a list of all available transforms",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the transform requested.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "transformId"
                                    }
                                ],
                                "nickname": "get",
                                "notes": "This will perform a partial match on the name value returning everything with the given string in the name.",
                                "is_websocket": false,
                                "summary": "Find all transforms matching the given name.",
                                "type": "MultipleTransformResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/transforms/v2/{transformId}",
                        "description": "Get information about a specific transform.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the transform to apply to the given file.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "transformId"
                                    },
                                    {
                                        "description": "The name of the api user owning the file at the given path.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "owner"
                                    },
                                    {
                                        "description": "The path to the file to be transformed and staged",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"url\": \"agave://demo.storage.example.com/apps/wc-1.00/picksumipsum.txt\",\n\t\"callbackUrl\": \"psherman@wallabydentistry.com.au\",\n\t\"nativeFormat\": \"raw\"\n}",
                                        "description": "The transfer request details.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "TransformRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "transformAndStage",
                                "notes": "This allows you to fire and forget a data transform and staging task.",
                                "is_websocket": false,
                                "summary": "Transform a file and stage it to a specified location.",
                                "type": "MultipleTransformResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/transforms/v2/{transformId}/async/{owner}/{filePath}",
                        "description": "Query for transforms available for a specific file",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The name of the transform to apply to the given file.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "transformId"
                                    },
                                    {
                                        "description": "The name of the api user owning the file at the given path.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "owner"
                                    },
                                    {
                                        "description": "The path to the file to be transformed and downloaded.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "filePath"
                                    },
                                    {
                                        "defaultValue": "{\n\t\"url\": \"agave://demo.storage.example.com/apps/wc-1.00/picksumipsum.txt\",\n\t\"callbackUrl\": \"psherman@wallabydentistry.com.au\",\n\t\"nativeFormat\": \"raw\"\n}",
                                        "description": "The transfer request details.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "TransformRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "produces": [
                                    "application/octet-stream"
                                ],
                                "type": "void",
                                "notes": "This allows you to synchronously transform and download a file. The download blocks until the transform has completed, so use caution when choosing this service as it is likely to time out for larger files.",
                                "is_websocket": false,
                                "summary": "Transform a file and download it directly.",
                                "nickname": "transformAndDownload",
                                "method": "POST"
                            }
                        ],
                        "path": "/transforms/v2/{transformId}/sync/{owner}/{filePath}",
                        "description": "Transform and download files.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The tag to search for transforms on.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "tag"
                                    }
                                ],
                                "nickname": "listByTag",
                                "notes": "This will perform a partial match on the tag value returning everything with the given string in the tag.",
                                "is_websocket": false,
                                "summary": "Find all transforms with the given tag.",
                                "type": "MultipleTransformResponse",
                                "method": "GET"
                            }
                        ],
                        "path": "/transforms/v2/tags/{tag}",
                        "description": "Operations on a specific user.",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "Decoder": {
                        "properties": {
                            "description": {
                                "type": "string",
                                "description": "The description of what this decoder is and what it does.",
                                "name": "description"
                            },
                            "name": {
                                "type": "string",
                                "description": "The decoder name.",
                                "name": "name"
                            }
                        },
                        "id": "Decoder",
                        "name": ""
                    },
                    "Transform": {
                        "properties": {
                            "description": {
                                "type": "string",
                                "description": "Description of this transform.",
                                "name": "description"
                            },
                            "tags": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "The tags describing this transform.",
                                "name": "tags"
                            },
                            "decoders": {
                                "items": {
                                    "$ref": "Decoder"
                                },
                                "type": "array",
                                "description": "The available decoders for this transform.",
                                "name": "decoders"
                            },
                            "enabled": {
                                "type": "boolean",
                                "description": "Whether this transform is enabled or not.",
                                "name": "enabled"
                            },
                            "encoder": {
                                "type": "Encoder",
                                "description": "The encoder to use to convert to this format.",
                                "name": "encoder"
                            },
                            "descriptionurl": {
                                "type": "string",
                                "description": "The URL to find out more information.",
                                "name": "descriptionurl"
                            },
                            "name": {
                                "type": "string",
                                "description": "The name of this transform.",
                                "name": "name"
                            }
                        },
                        "id": "Transform",
                        "name": ""
                    },
                    "Encoder": {
                        "properties": {
                            "description": {
                                "type": "string",
                                "description": "The description of what this encoder is and what it does.",
                                "name": "description"
                            },
                            "name": {
                                "type": "string",
                                "description": "The encoder name.",
                                "name": "name"
                            }
                        },
                        "id": "Encoder",
                        "name": ""
                    },
                    "TransformRequest": {
                        "properties": {
                            "nativeFormat": {
                                "type": "string",
                                "description": "The original file type of the file. If not given, the file type is assumed to be raw.",
                                "name": "nativeFormat"
                            },
                            "url": {
                                "required": true,
                                "type": "string",
                                "description": "The uri to which the transformed file will be staged.",
                                "name": "url"
                            },
                            "callbackUrl": {
                                "type": "string",
                                "description": "The URI to notify when the transfer is complete. This can be an email address or http URL. If a URL is given, a GET will be made to this address. URL templating is supported. Valid template values are: ${NAME}, ${SOURCE_FORMAT}, ${DEST_FORMAT}, ${STATUS}",
                                "name": "callbackUrl"
                            }
                        },
                        "id": "TransformRequest",
                        "name": ""
                    },
                    "SingleTransformResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Transform",
                                "name": "result"
                            }
                        },
                        "id": "SingleTransformResponse",
                        "name": ""
                    },
                    "MultipleTransformResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Transform"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleTransformResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/transforms/v2",
                "apiVersion": "2.2.14"
            },
            "name": "transforms"
        },
        {
            "url": "http://localhost:9999/actors",
            "path": "/actors",
            "description": "Create and manage actors.",
            "api_declaration": {
                "authorizations": [
                    "oauth2"
                ],
                "swaggerVersion": "1.2",
                "apis": [
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "MultipleActorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "List actors",
                                "nickname": "list",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "defaultValue": "",
                                        "description": "The description of the actor to add.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "Actor",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "add",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Register an actor.",
                                "type": "SingleActorResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/actors/v2",
                        "description": "Retrieve a (paginated) list of actors.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "SingleActorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve details about a specific actor.",
                                "nickname": "get",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The description of the actor to update.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "Actor",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "type": "SingleActorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve details about a specific actor.",
                                "nickname": "update",
                                "method": "PUT"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "EmptyActorResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Delete a specific actor.",
                                "nickname": "delete",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/actors/v2/{actorId}",
                        "description": "Manage a specific actor.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "ActorMessagesResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the current number of messages for an actor.",
                                "nickname": "getMessages",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "Optional dictionary of environmental variables",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "dict",
                                        "paramType": "query",
                                        "name": "environment"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The description of the message to add.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MessageRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "sendMessage",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Send a message to an actor mailbox.",
                                "type": "ActorMessageRequestResponse",
                                "method": "POST"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "Optional dictionary of environmental variables",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "dict",
                                        "paramType": "query",
                                        "name": "environment"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The description of the message to add.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "MessageRequest",
                                        "paramType": "body",
                                        "name": "message"
                                    }
                                ],
                                "nickname": "sendBinaryMessage",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Send a message to an actor mailbox.",
                                "type": "ActorMessageRequestResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/messages",
                        "description": "Work with actor messages.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "ActorStateResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the current state for an actor.",
                                "nickname": "getState",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The value of the state. Should be JSON-serializable.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updateState",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Update an actor's state with a JSON-serializable object.",
                                "type": "ActorStateRequestResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/state",
                        "description": "Work with an actor's state.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "ActorPermissionsResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the current permissions for an actor.",
                                "nickname": "getPermissions",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The permission record; user and level fields required.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "PermissionsUpdateRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "updatePermissions",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Update an actor's permissions with a new permission for a user.",
                                "type": "ActorPermissionsRequestResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/permissions",
                        "description": "Work with an actor's permissions.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "MultipleActorWorkerResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "List the current workers for an actor.",
                                "nickname": "listWorkers",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The description of the workers to add.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "AddWorkersRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "addWorker",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Add a worker to an actor.",
                                "type": "ActorWorkersRequestResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/workers",
                        "description": "Work with actor workers.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the worker.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "workerId"
                                    }
                                ],
                                "type": "SingleActorWorkerResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the details about a specific worker for an actor.",
                                "nickname": "getWorker",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the worker.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "workerId"
                                    }
                                ],
                                "nickname": "deleteWorker",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Delete a worker.",
                                "type": "EmptyActorWorkerRequestResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/workers/{workerId}",
                        "description": "Work with a specific worker.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    }
                                ],
                                "type": "MultipleActorNonceResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "List the current nonces for an actor.",
                                "nickname": "listNonces",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "defaultValue": "",
                                        "description": "The description of the nonce to add.",
                                        "allowMultiple": false,
                                        "required": false,
                                        "type": "AddNonceRequest",
                                        "paramType": "body",
                                        "name": "body"
                                    }
                                ],
                                "nickname": "addNonce",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Add a nonce to an actor.",
                                "type": "ActorNonceRequestResponse",
                                "method": "POST"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/nonces",
                        "description": "Work with actor nonces.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the nonce.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "nonceId"
                                    }
                                ],
                                "type": "SingleActorNonceResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get the details about a specific nonce for an actor.",
                                "nickname": "getNonce",
                                "method": "GET"
                            },
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the nonce.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "nonceId"
                                    }
                                ],
                                "nickname": "deleteNonce",
                                "notes": "",
                                "is_websocket": false,
                                "summary": "Delete a nonce.",
                                "type": "EmptyActorNonceRequestResponse",
                                "method": "DELETE"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/nonces/{nonceId}",
                        "description": "Work with a specific nonce.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "defaultValue": 250,
                                        "description": "The max number of results.",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "limit"
                                    },
                                    {
                                        "defaultValue": 0,
                                        "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                                        "format": "int32",
                                        "allowMultiple": false,
                                        "required": false,
                                        "min": 0,
                                        "type": "integer",
                                        "paramType": "query",
                                        "name": "offset"
                                    }
                                ],
                                "type": "ExecutionsSummaryResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Summary data of all actor executions.",
                                "nickname": "listExecutions",
                                "method": "GET"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/executions",
                        "description": "Worker with actor executions.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the execution.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "executionId"
                                    }
                                ],
                                "type": "SingleActorExecutionResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Retrieve details about a specific actor execution.",
                                "nickname": "getExecution",
                                "method": "GET"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/executions/{executionId}",
                        "description": "Manage a specific execution for a specific actor.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the execution.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "executionId"
                                    }
                                ],
                                "type": "string",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get result for a specific actor execution.",
                                "nickname": "getOneExecutionResult",
                                "method": "GET"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/executions/{executionId}/results",
                        "description": "Get result for a specific execution.",
                        "has_websocket": false
                    },
                    {
                        "operations": [
                            {
                                "parameters": [
                                    {
                                        "description": "The id of the actor.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "actorId"
                                    },
                                    {
                                        "description": "The id of the execution.",
                                        "allowMultiple": false,
                                        "required": true,
                                        "type": "string",
                                        "paramType": "path",
                                        "name": "executionId"
                                    }
                                ],
                                "type": "ExecutionLogsResponse",
                                "notes": "",
                                "is_websocket": false,
                                "responseMessages": [
                                    {
                                        "message": "Failed to authenticate the user",
                                        "code": 403
                                    },
                                    {
                                        "message": "The service was unable to query the actor database",
                                        "code": 500
                                    }
                                ],
                                "summary": "Get logs for a specific actor execution.",
                                "nickname": "getExecutionLogs",
                                "method": "GET"
                            }
                        ],
                        "path": "/actors/v2/{actorId}/executions/{executionId}/logs",
                        "description": "Manage logs for a specific execution.",
                        "has_websocket": false
                    }
                ],
                "models": {
                    "Actor": {
                        "properties": {
                            "id": {
                                "type": "string",
                                "description": "The unique id of the actor.",
                                "name": "id"
                            },
                            "image": {
                                "type": "string",
                                "description": "Docker image associated with the actor.",
                                "name": "image"
                            },
                            "stateless": {
                                "type": "boolean",
                                "description": "Whether the actor stores private state.",
                                "name": "stateless"
                            },
                            "owner": {
                                "type": "string",
                                "description": "username of the owner of the actor.",
                                "name": "owner"
                            },
                            "description": {
                                "type": "string",
                                "description": "Description of this actor.",
                                "name": "description"
                            },
                            "privileged": {
                                "type": "boolean",
                                "description": "Whether this actor runs in privileged mode.",
                                "name": "privileged"
                            },
                            "defaultEnvironment": {
                                "type": "dict",
                                "description": "Default environmental variables and values.",
                                "name": "defaultEnvironment"
                            },
                            "status": {
                                "type": "string",
                                "description": "Current status of the actor.",
                                "name": "status"
                            }
                        },
                        "id": "Actor",
                        "name": ""
                    },
                    "SingleActorResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Actor",
                                "name": "result"
                            }
                        },
                        "id": "SingleActorResponse",
                        "name": ""
                    },
                    "EmptyActorResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "String",
                                "name": "result"
                            }
                        },
                        "id": "EmptyActorResponse",
                        "name": ""
                    },
                    "MultipleActorResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Actor"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleActorResponse",
                        "name": ""
                    },
                    "ActorMessages": {
                        "properties": {
                            "messages": {
                                "type": "int",
                                "description": "The number of messages waiting in queue to be processed by this actor.",
                                "name": "messages"
                            }
                        },
                        "id": "ActorMessages",
                        "name": ""
                    },
                    "MessageRequest": {
                        "properties": {
                            "message": {
                                "type": "string",
                                "description": "The message to send to the actor.",
                                "name": "message"
                            }
                        },
                        "id": "MessageRequest",
                        "name": ""
                    },
                    "ActorMessagesResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorMessages",
                                "name": "result"
                            }
                        },
                        "id": "ActorMessagesResponse",
                        "name": ""
                    },
                    "ActorMessageResponse": {
                        "properties": {
                            "executionId": {
                                "type": "string",
                                "description": "The id of the resulting execution.",
                                "name": "executionId"
                            },
                            "msg": {
                                "type": "string",
                                "description": "The message variable for the execution.",
                                "name": "msg"
                            }
                        },
                        "id": "ActorMessageResponse",
                        "name": ""
                    },
                   "ActorMessageRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorMessageResponse",
                                "name": "result"
                            }
                        },
                        "id": "ActorMessageRequestResponse",
                        "name": ""
                   },
                    "ActorState": {
                        "properties": {
                            "state": {
                                "type": "string",
                                "description": "The current state of the actor.",
                                "name": "state"
                            }
                        },
                        "id": "ActorState",
                        "name": ""
                    },
                    "ActorStateResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorState",
                                "name": "result"
                            }
                        },
                        "id": "ActorStateResponse",
                        "name": ""
                    },
                    "ActorStateRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorState",
                                "name": "result"
                            }
                        },
                        "id": "ActorStateRequestResponse",
                        "name": ""
                   },
                    "ActorPermissions": {
                        "properties": {
                            "permissions": {
                                "type": "string",
                                "description": "The dictionary of permissions associated with the actor.",
                                "name": "permissions"
                            }
                        },
                        "id": "ActorPermissions",
                        "name": ""
                    },
                    "ActorPermissionsResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorPermissions",
                                "name": "result"
                            }
                        },
                        "id": "ActorPermissionsResponse",
                        "name": ""
                    },
                   "ActorPermissionsRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorPermissionsResponse",
                                "name": "result"
                            }
                        },
                        "id": "ActorPermissionsRequestResponse",
                        "name": ""
                   },
                    "PermissionsUpdateRequest": {
                        "properties": {
                            "user": {
                                "type": "string",
                                "description": "The user associated with the permission.",
                                "name": "user"
                            },
                            "level": {
                                "type": "string",
                                "description": "The level associated with the permission.",
                                "name": "level"
                            }
                        },
                        "id": "PermissionsUpdateRequest",
                        "name": ""
                   },
                    "ActorWorker": {
                        "properties": {
                            "id": {
                                "type": "string",
                                "description": "The unique id of this worker.",
                                "name": "id"
                            },
                            "image": {
                                "type": "string",
                                "description": "Docker image associated with the actor.",
                                "name": "image"
                            },
                            "last_execution": {
                                "type": "int",
                                "description": "Last execution for this worker.",
                                "name": "last_execution"
                            },
                            "location": {
                                "type": "string",
                                "description": "Location of docker daemon that this worker is using.",
                                "name": "location"
                            },
                            "cid": {
                                "type": "string",
                                "description": "Container id of this worker.",
                                "name": "cid"
                            },
                            "host_id": {
                                "type": "string",
                                "description": "id of the host where this worker is running.",
                                "name": "host_id"
                            },
                            "host_ip": {
                                "type": "string",
                                "description": "IP address of the host where this worker is running.",
                                "name": "host_id"
                            },
                            "status": {
                                "type": "string",
                                "description": "status of the worker.",
                                "name": "status"
                            },
                            "tenant": {
                                "type": "string",
                                "description": "tenant this worker belongs to.",
                                "name": "tenant"
                            }
                        },
                        "id": "ActorWorker",
                        "name": ""
                    },
                    "SingleActorWorkerResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorWorker",
                                "name": "result"
                            }
                        },
                        "id": "SingleActorWorkerResponse",
                        "name": ""
                    },
                    "MultipleActorWorkerResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "ActorWorker"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleActorWorkerResponse",
                        "name": ""
                    },
                    "EmptyActorWorkerRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "String",
                                "name": "result"
                            }
                        },
                        "id": "EmptyActorWorkerRequestResponse",
                        "name": ""
                    },
                    "AddWorkersRequest": {
                        "properties": {
                            "num": {
                                "type": "int",
                                "description": "The number of workers to ensure are running.",
                                "name": "num"
                            }
                        },
                        "id": "AddWorkersRequest",
                        "name": ""
                    },
                    "ActorWorkersRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "EmptyActorWorkerRequestResponse",
                                "name": "result"
                            }
                        },
                        "id": "ActorWorkersRequestResponse",
                        "name": ""
                    },
                    "ActorNonce": {
                        "properties": {
                            "id": {
                                "type": "string",
                                "description": "The unique id of the nonce.",
                                "name": "id"
                            },
                            "level": {
                                "type": "string",
                                "description": "Permission level associated with nonce.",
                                "name": "level"
                            },
                            "actor_id": {
                                "type": "string",
                                "description": "Actor id associated with nonce.",
                                "name": "actor_id"
                            },
                            "last_use_time": {
                                "type": "string",
                                "description": "Last time nonce was used.",
                                "name": "last_use_time"
                            },
                            "max_uses": {
                                "type": "string",
                                "description": "Max number of uses for this nonce.",
                                "name": "max_uses"
                            },
                            "create_time": {
                                "type": "string",
                                "description": "Time stamp when nonce was created.",
                                "name": "create_time"
                            },
                            "remaining_uses": {
                                "type": "int",
                                "description": "Remaining uses of nonce.",
                                "name": "remaining_uses"
                            }
                        },
                        "id": "ActorNonce",
                        "name": ""
                    },

                    "SingleActorNonceResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ActorNonce",
                                "name": "result"
                            }
                        },
                        "id": "SingleActorNonceResponse",
                        "name": ""
                    },
                    "MultipleActorNonceResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "ActorNonce"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleActorNonceResponse",
                        "name": ""
                    },
                    "EmptyActorNonceRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "String",
                                "name": "result"
                            }
                        },
                        "id": "EmptyActorNonceRequestResponse",
                        "name": ""
                    },
                    "AddNonceRequest": {
                        "properties": {
                            "maxUses": {
                                "type": "int",
                                "description": "Max number of times nonce can be redeemed.",
                                "name": "num"
                            },
                            "level": {
                                "type": "string",
                                "description": "Permissions level associated with this nonce (default is EXECUTE).",
                                "name": "num"
                            }

                        },
                        "id": "AddNonceRequest",
                        "name": ""
                    },
                    "ActorNonceRequestResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "EmptyActorNonceRequestResponse",
                                "name": "result"
                            }
                        },
                        "id": "ActorNonceRequestResponse",
                        "name": ""
                    },
                    "ExecutionsSummary": {
                        "properties": {
                            "ids": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array",
                                "description": "The ids of all executions.",
                                "name": "ids"
                            },
                            "actorId": {
                                "type": "string",
                                "description": "The id of the associated actor.",
                                "name": "actorId"
                            },
                            "owner": {
                                "type": "string",
                                "description": "username of the owner of the actor.",
                                "name": "owner"
                            },
                            "totalCpu": {
                                "type": "int",
                                "description": "CPU usage, in user jiffies, of all executions.",
                                "name": "totalCpu"
                            },
                            "totalRuntime": {
                                "type": "int",
                                "description": "Runtime, in milliseconds, of all executions.",
                                "name": "totalRuntime"
                            },
                            "totalIo": {
                                "type": "int",
                                "description": "Block I/O usage, in number of 512-byte sectors read from and written to, by all executions.",
                                "name": "totalIo"
                            }
                        },
                        "id": "ExecutionsSummary",
                        "name": ""
                    },
                    "ExecutionsSummaryResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ExecutionsSummary",
                                "name": "result"
                            }
                        },
                        "id": "ExecutionsSummaryResponse",
                        "name": ""
                    },
                    "Execution": {
                        "properties": {
                            "id": {
                                "type": "string",
                                "description": "The id of this executions.",
                                "name": "id"
                            },
                            "actorId": {
                                "type": "string",
                                "description": "The id of the associated actor.",
                                "name": "actorId"
                            },
                            "owner": {
                                "type": "string",
                                "description": "username of the owner of the actor.",
                                "name": "owner"
                            },
                            "status": {
                                "type": "string",
                                "description": "status of the execution.",
                                "name": "status"
                            },
                            "cpu": {
                                "type": "int",
                                "description": "CPU usage, in user jiffies, of this execution.",
                                "name": "cpu"
                            },
                            "runtime": {
                                "type": "int",
                                "description": "Runtime, in milliseconds, of this execution.",
                                "name": "runtime"
                            },
                            "io": {
                                "type": "int",
                                "description": "Block I/O usage, in number of 512-byte sectors read from and written to, by this execution.",
                                "name": "io"
                            }
                        },
                        "id": "Execution",
                        "name": ""
                    },
                    "SingleActorExecutionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "Execution",
                                "name": "result"
                            }
                        },
                        "id": "SingleActorExecutionResponse",
                        "name": ""
                    },
                    "MultipleExecutionResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "items": {
                                    "$ref": "Execution"
                                },
                                "type": "array",
                                "description": "response body",
                                "name": "result"
                            }
                        },
                        "id": "MultipleExecutionResponse",
                        "name": ""
                    },
                    "ExecutionLogs": {
                        "properties": {
                            "logs": {
                                "type": "string",
                                "description": "The logs (standard out) of this execution.",
                                "name": "id"
                            }
                        },
                        "id": "ExecutionLogs",
                        "name": ""
                    },
                    "ExecutionLogsResponse": {
                        "properties": {
                            "status": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "status"
                            },
                            "message": {
                                "type": "string",
                                "description": "success or failure",
                                "name": "message"
                            },
                            "result": {
                                "type": "ExecutionLogs",
                                "name": "result"
                            }
                        },
                        "id": "ExecutionLogsResponse",
                        "name": ""
                    }
                },
                "basePath": "https://{{ api_server_base }}",
                "resourcePath": "/actors/v2",
                "apiVersion": "0.5.2"
            },
            "name": "actors"
        },
        {
            "url": "http://localhost:9999/admin",
            "path": "/admin",
            "description": "Tenant admin services.",
            "api_declaration": {
              "authorizations": [
                "oauth2"
              ],
              "swaggerVersion": "1.2",
              "apis": [
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "defaultValue": 250,
                          "description": "The max number of results.",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "limit"
                        },
                        {
                          "defaultValue": 0,
                          "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "offset"
                        }
                      ],
                      "type": "MultipleServiceAccountsResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "List service accounts",
                      "nickname": "listAccounts",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "defaultValue": "",
                          "description": "The description of the service account to add.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "ServiceAccount",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "nickname": "addAccount",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Register a service account.",
                      "type": "SingleServiceAccountResponse",
                      "method": "POST"
                    }
                  ],
                  "path": "/admin/v2/service_accounts",
                  "description": "Retrieve a (paginated) list of service accounts.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        }
                      ],
                      "type": "SingleServiceAccountResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Retrieve details about a specific service account.",
                      "nickname": "getAccount",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        },
                        {
                          "defaultValue": "",
                          "description": "The description of the service account to update.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "ServiceAccount",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "type": "SingleServiceAccountResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Update a specific service account.",
                      "nickname": "updateAccount",
                      "method": "PUT"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        }
                      ],
                      "type": "EmptyServiceAccountResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Delete a specific service account.",
                      "nickname": "deleteAccount",
                      "method": "DELETE"
                    }
                  ],
                  "path": "/admin/v2/service_accounts/{accountId}",
                  "description": "Manage a specific service account.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        }
                      ],
                      "type": "ServiceAccountRolesResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "List the roles occupied by a service account.",
                      "nickname": "listAccountRoles",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        },
                        {
                          "defaultValue": "",
                          "description": "The description of the role to add.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "AddRoleToAccountRequest",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "nickname": "addRoleToAccount",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Add a role to a service account.",
                      "type": "AddRoleToAccountRequestResponse",
                      "method": "POST"
                    }
                  ],
                  "path": "/admin/v2/service_accounts/{accountId}/roles",
                  "description": "Work with the roles occupied by a service account.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        },
                        {
                          "description": "The id of the role.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "roleId"
                        }
                      ],
                      "nickname": "deleteRoleFromAccount",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Delete a role from the list of occupied roles of a service account.",
                      "type": "EmptyServiceAccountRoleResponse",
                      "method": "DELETE"
                    }
                  ],
                  "path": "/admin/v2/service_accounts/{accountId}/roles/{roleId}",
                  "description": "Work with a specific role of a service account.",
                  "has_websocket": false
                },

                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "defaultValue": 250,
                          "description": "The max number of results.",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "limit"
                        },
                        {
                          "defaultValue": 0,
                          "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "offset"
                        }
                      ],
                      "type": "MultipleRolesResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "List service roles.",
                      "nickname": "listRoles",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "defaultValue": "",
                          "description": "The description of the service role to add.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "Role",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "nickname": "addRole",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Register a service role.",
                      "type": "SingleRoleResponse",
                      "method": "POST"
                    }
                  ],
                  "path": "/admin/v2/service_roles",
                  "description": "Retrieve a (paginated) list of service roles.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the service role.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "roleId"
                        }
                      ],
                      "type": "SingleRoleResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Retrieve details about a specific service role.",
                      "nickname": "getRole",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the service role.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "roleId"
                        }
                      ],
                      "type": "EmptyRoleResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Delete a specific service role.",
                      "nickname": "deleteRole",
                      "method": "DELETE"
                    }
                  ],
                  "path": "/admin/v2/service_roles/{roleId}",
                  "description": "Manage a specific service role.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the service role.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "roleId"
                        }
                      ],
                      "type": "ServiceRoleAccountsResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Get the service accounts that occupy a service role.",
                      "nickname": "listAccountsInRole",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the service role.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "roleId"
                        },
                        {
                          "defaultValue": "",
                          "description": "The description of the service account to add.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "AddServiceAccountToRoleRequest",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "nickname": "addAccountToRole",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Add a service account to a role.",
                      "type": "AddServiceAccountToRoleResponse",
                      "method": "POST"
                    }
                  ],
                  "path": "/admin/v2/service_roles/{roleId}/service_accounts",
                  "description": "Work with the service account that occupy a role.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the service role.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "roleId"
                        },
                        {
                          "description": "The id of the service account.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "accountId"
                        }
                      ],
                      "nickname": "deleteAccountFromRole",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Delete a service from the list of accounts occupying a service role.",
                      "type": "EmptyRoleServiceAccountResponse",
                      "method": "DELETE"
                    }
                  ],
                  "path": "/admin/v2/service_roles/{roleId}/service_accounts/{accountId}",
                  "description": "Work with a specific role of a service account.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "defaultValue": 250,
                          "description": "The max number of results.",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "limit"
                        },
                        {
                          "defaultValue": 0,
                          "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "offset"
                        }
                      ],
                      "type": "MultipleClientsResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "List clients.",
                      "nickname": "listClients",
                      "method": "GET"
                    }
                  ],
                  "path": "/admin/v2/clients",
                  "description": "Retrieve a (paginated) list of OAuth clients.",
                  "has_websocket": false
                },                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "defaultValue": 250,
                          "description": "The max number of results.",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "limit"
                        },
                        {
                          "defaultValue": 0,
                          "description": "The number of records to when returning the results. When paginating results, the page number = ceil(offset/limit)",
                          "format": "int32",
                          "allowMultiple": false,
                          "required": false,
                          "min": 0,
                          "type": "integer",
                          "paramType": "query",
                          "name": "offset"
                        }
                      ],
                      "type": "MultipleApiResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "List APIs.",
                      "nickname": "listApis",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "defaultValue": "",
                          "description": "The description of the API to add.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "ApiRequestBody",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "nickname": "addApi",
                      "notes": "",
                      "is_websocket": false,
                      "summary": "Register an API.",
                      "type": "SingleApiResponse",
                      "method": "POST"
                    }
                  ],
                  "path": "/admin/v2/apis",
                  "description": "Retrieve a (paginated) list of APIs.",
                  "has_websocket": false
                },
                {
                  "operations": [
                    {
                      "parameters": [
                        {
                          "description": "The id of the API.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "apiId"
                        }
                      ],
                      "type": "SingleApiResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Retrieve details about a specific API.",
                      "nickname": "getApi",
                      "method": "GET"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the API.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "apiId"
                        }
                      ],
                      "type": "EmptyApiResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Delete a specific API.",
                      "nickname": "deleteApi",
                      "method": "DELETE"
                    },
                    {
                      "parameters": [
                        {
                          "description": "The id of the API.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "string",
                          "paramType": "path",
                          "name": "apiId"
                        },
                        {
                          "defaultValue": "",
                          "description": "The new status for the API.",
                          "allowMultiple": false,
                          "required": true,
                          "type": "ApiStatus",
                          "paramType": "body",
                          "name": "body"
                        }
                      ],
                      "type": "SingleApiResponse",
                      "notes": "",
                      "is_websocket": false,
                      "responseMessages": [
                        {
                          "message": "Failed to authenticate the user",
                          "code": 403
                        },
                        {
                          "message": "The service was unable to query the admin database",
                          "code": 500
                        }
                      ],
                      "summary": "Update a specific API.",
                      "nickname": "updateApiStatus",
                      "method": "PUT"
                    }
                  ],
                  "path": "/admin/v2/apis/{apiId}",
                  "description": "Manage a specific API.",
                  "has_websocket": false
                }

              ],
              "models": {
                "ServiceAccountSummary": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique id of the service account.",
                      "name": "id"
                    }
                  },
                  "id": "ServiceAccountSummary",
                  "name": ""
                },
                "ServiceAccount": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique id of the service account.",
                      "name": "accountId"
                    },
                    "password": {
                      "type": "string",
                      "description": "The password for the service account.",
                      "name": "password"
                    },
                    "roles": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "roles occupied by service account.",
                      "name": "roles"
                    }
                  },
                  "id": "ServiceAccount",
                  "name": ""
                },
                "SingleServiceAccountResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "ServiceAccount",
                      "name": "result"
                    }
                  },
                  "id": "SingleServiceAccountResponse",
                  "name": ""
                },
                "EmptyServiceAccountResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "String",
                      "name": "result"
                    }
                  },
                  "id": "EmptyServiceAccountResponse",
                  "name": ""
                },
                "EmptyServiceAccountRoleResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "String",
                      "name": "result"
                    }
                  },
                  "id": "EmptyServiceAccountRoleResponse",
                  "name": ""
                },
                "MultipleServiceAccountsResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "items": {
                        "$ref": "ServiceAccountSummary"
                      },
                      "type": "array",
                      "description": "response body",
                      "name": "result"
                    }
                  },
                  "id": "MultipleServiceAccountsResponse",
                  "name": ""
                },
                "MultipleRolesResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "items": {
                        "$ref": "RoleSummary"
                      },
                      "type": "array",
                      "description": "response body",
                      "name": "result"
                    }
                  },
                  "id": "MultipleRolesResponse",
                  "name": ""
                },
                "SingleRoleResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "RoleDetails",
                      "name": "result"
                    }
                  },
                  "id": "SingleRoleResponse",
                  "name": ""
                },
                "EmptyRoleResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "String",
                      "name": "result"
                    }
                  },
                  "id": "EmptyRoleResponse",
                  "name": ""
                },
                "ServiceAccountRolesResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "ServiceAccount",
                      "name": "result"
                    }
                  },
                  "id": "ServiceAccountRolesResponse",
                  "name": ""
                },
                "AddRoleToAccountRequest": {
                  "properties": {
                    "role_id": {
                      "type": "string",
                      "description": "The id of the role to add to the service account.",
                      "name": "role_id"
                    }
                  },
                  "id": "AddRoleToAccountRequest",
                  "name": ""
                },
                "AddRoleToAccountRequestResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "ServiceAccount",
                      "name": "result"
                    }
                  },
                  "id": "AddRoleToAccountRequestResponse",
                  "name": ""
                },
                "ServiceAccountRoleResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "RoleDetails",
                      "name": "result"
                    }
                  },
                  "id": "ServiceAccountRoleResponse",
                  "name": ""
                },
                "RoleDetails": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique id of the role.",
                      "name": "id"
                    },
                    "accounts": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "service accounts that occupy this role.",
                      "name": "accounts"
                    }
                  },
                  "id": "RoleDetails",
                  "name": ""
                },
                "Role": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique id of the role.",
                      "name": "id"
                    }
                  },
                  "id": "Role",
                  "name": ""
                },
                "RoleSummary": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique id of the role.",
                      "name": "id"
                    }
                  },
                  "id": "RoleSummary",
                  "name": ""
                },
                "ServiceRoleAccountsResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "RoleDetails",
                      "name": "result"
                    }
                  },
                  "id": "ServiceRoleAccountsResponse",
                  "name": ""
                },
                "AddServiceAccountToRoleRequest": {
                  "properties": {
                    "role_id": {
                      "type": "string",
                      "description": "The id of the service account to add to the role.",
                      "name": "account_id"
                    }
                  },
                  "id": "AddServiceAccountToRoleRequest",
                  "name": ""
                },
                "AddServiceAccountToRoleResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "RoleDetails",
                      "name": "result"
                    }
                  },
                  "id": "AddServiceAccountToRoleResponse",
                  "name": ""
                },
                "EmptyRoleServiceAccountResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "String",
                      "name": "result"
                    }
                  },
                  "id": "EmptyRoleServiceAccountResponse",
                  "name": ""
                },
                "MultipleClientsResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "items": {
                        "$ref": "Client"
                      },
                      "type": "array",
                      "description": "response body",
                      "name": "result"
                    }
                  },
                  "id": "MultipleClientsResponse",
                  "name": ""
                },
                "Client": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique id of the client.",
                      "name": "id"
                    },
                    "clientName": {
                      "type": "string",
                      "description": "Name of the client.",
                      "name": "clientName"
                    },
                    "owner": {
                      "type": "string",
                      "description": "Account name of the owner of the client.",
                      "name": "owner"
                    }
                  },
                  "id": "Client",
                  "name": ""
                },
                "SingleApiResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "Api",
                      "name": "result"
                    }
                  },
                  "id": "SingleApiResponse",
                  "name": ""
                },
                "EmptyApiResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "type": "String",
                      "name": "result"
                    }
                  },
                  "id": "EmptyApiResponse",
                  "name": ""
                },
                "MultipleApiResponse": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "status"
                    },
                    "message": {
                      "type": "string",
                      "description": "success or failure",
                      "name": "message"
                    },
                    "result": {
                      "items": {
                        "$ref": "ApiSummary"
                      },
                      "type": "array",
                      "description": "response body",
                      "name": "result"
                    }
                  },
                  "id": "MultipleApiResponse",
                  "name": ""
                },
                "Api": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique id of the API.",
                      "name": "id"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the API, also used as part of the id.",
                      "name": "name"
                    },
                    "context": {
                      "type": "string",
                      "description": "Root path (context) for the API, starting with a slash character.",
                      "name": "context"
                    },
                    "environments": {
                      "type": "string",
                      "description": "Environments in which the API is available.",
                      "name": "environments"
                    },
                    "owner": {
                      "type": "string",
                      "description": "Account name of the owner of the API.",
                      "name": "owner"
                    },
                    "version": {
                      "type": "string",
                      "description": "Platform version of the API.",
                      "name": "version"
                    },
                    "status": {
                      "type": "string",
                      "description": "Publication status of the API.",
                      "name": "status"
                    },
                    "templates": {
                      "items": {
                        "$ref": "ApiTemplate"
                      },
                      "type": "array",
                      "description": "List of API template tuples which provide the mappings from the frontend to the backend.",
                      "name": "templates"
                    },
                    "resources": {
                      "items": {
                        "$ref": "ApiResource"
                      },
                      "type": "array",
                      "description": "List of API resources which provide auth and throttling information for the API.",
                      "name": "resources"
                    }
                  },
                  "id": "Api",
                  "name": ""
                },
                "ApiSummary": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique id of the API.",
                      "name": "id"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the API, also used as part of the id.",
                      "name": "name"
                    },
                    "owner": {
                      "type": "string",
                      "description": "Account name of the owner of the API.",
                      "name": "owner"
                    },
                    "status": {
                      "type": "string",
                      "description": "Publication status of the API.",
                      "name": "status"
                    },
                    "version": {
                      "type": "string",
                      "description": "Platform version of the API.",
                      "name": "version"
                    }
                  },
                  "id": "ApiSummary",
                  "name": ""
                },
                "ApiTemplate": {
                  "properties": {
                    "route": {
                      "type": "string",
                      "description": "Path of the template.",
                      "name": "route"
                    },
                    "methods": {
                      "type": "string",
                      "description": "Methods associated with the template.",
                      "name": "methods"
                    },
                    "roles": {
                      "type": "string",
                      "description": "roles associated with the template.",
                      "name": "roles"
                    },
                    "tiers": {
                      "type": "string",
                      "description": "Throttling tiers associated with the template.",
                      "name": "tiers"
                    }
                  },
                  "id": "ApiTemplate",
                  "name": ""
                },
                "ApiResource": {
                  "properties": {
                    "http_verbs": {
                      "type": "dict",
                      "description": "Http verbs and associated auth.",
                      "name": "http_verbs"
                    },
                    "url_pattern": {
                      "type": "string",
                      "description": "URL pattern associated with the resource..",
                      "name": "url_pattern"
                    }
                  },
                  "id": "ApiResource",
                  "name": ""
                },
                "ApiRequestBody": {
                  "properties": {
                    "api_name": {
                      "type": "string",
                      "description": "Name of the API, which will also be used to identify the API.",
                      "name": "api_name"
                    },
                    "context": {
                      "type": "string",
                      "description": "Root path (context) for the API, starting with a slash character.",
                      "name": "context"
                    },
                    "url": {
                      "type": "string",
                      "description": "Fully qualified production URL for the backend service (should include http or https).",
                      "name": "url"
                    },
                    "methods": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "List of allowed methods from (GET, POST, PUT, DELETE, HEAD).",
                      "name": "methods"
                    },
                    "auth": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "List of quth type per method from (none, oauth). Can also be single string for all methods.",
                      "name": "auth"
                    },
                    "visibility": {
                      "type": "string",
                      "description": "Optionally set the visibility to 'public' or 'restricted' (default is public).",
                      "name": "visibility"
                    },
                    "roles": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "description": "List of required roles to subscribe to API (required when visibility is 'restricted')",
                      "name": "roles"
                    }
                  },
                  "id": "ApiRequestBody",
                  "name": ""
                },
                "ApiStatus": {
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Status of the API: one of (CREATED, PUBLISHED, RETIRED).",
                      "name": "status"
                    }
                  },
                  "id": "ApiStatus",
                  "name": ""
              }
            },
            "basePath": "https://{{ api_server_base }}",
            "resourcePath": "/admin/v2",
            "apiVersion": "0.1"
            },
            "name": "admin"
        }

    ],
    "url": "https://{{ api_server_base }}/",
    "produces": [
        "application/json"
    ],
    "apiVersion": "2"
}
