488 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			JSON
		
	
	
	
			
		
		
	
	
			488 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			JSON
		
	
	
	
{
 | 
						|
  "kind": "discovery#describeItem",
 | 
						|
  "name": "test",
 | 
						|
  "version": "v1",
 | 
						|
  "id": "test:v1",
 | 
						|
  "description": "Discovery doc API used for testing the code generator",
 | 
						|
  "basePath": "/test/",
 | 
						|
  "rootUrl": "https://www.googleapis.com/",
 | 
						|
  "servicePath": "test/v1/",
 | 
						|
  "batchPath": "batch/test/v1",
 | 
						|
  "rpcPath": "/rpc",
 | 
						|
  "auth": {
 | 
						|
    "oauth2": {
 | 
						|
     "scopes": {
 | 
						|
      "https://www.googleapis.com/auth/test": {
 | 
						|
       "description": "View and manage things"
 | 
						|
      },
 | 
						|
      "https://www.googleapis.com/auth/test.readonly": {
 | 
						|
       "description": "View things"
 | 
						|
      }
 | 
						|
     }
 | 
						|
    }
 | 
						|
   },
 | 
						|
   "parameters": {
 | 
						|
    "alt": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Data format for the response.",
 | 
						|
      "default": "json",
 | 
						|
      "enum": [
 | 
						|
        "json"
 | 
						|
      ],
 | 
						|
      "enumDescriptions": [
 | 
						|
        "Responses with Content-Type of application/json"
 | 
						|
      ],
 | 
						|
      "location": "query"
 | 
						|
    },
 | 
						|
    "fields": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Selector specifying which fields to include in a partial response.",
 | 
						|
      "location": "query"
 | 
						|
    },
 | 
						|
    "key": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
 | 
						|
      "location": "query"
 | 
						|
    },
 | 
						|
    "oauth_token": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "OAuth 2.0 token for the current user.",
 | 
						|
      "location": "query"
 | 
						|
    },
 | 
						|
    "prettyPrint": {
 | 
						|
      "type": "boolean",
 | 
						|
      "description": "Returns response with indentations and line breaks.",
 | 
						|
      "default": "true",
 | 
						|
      "location": "query"
 | 
						|
    },
 | 
						|
    "quotaUser": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
 | 
						|
      "location": "query"
 | 
						|
    },
 | 
						|
    "userIp": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
 | 
						|
      "location": "query"
 | 
						|
    }
 | 
						|
  },
 | 
						|
  "schemas": {
 | 
						|
    "Thing": {
 | 
						|
      "id": "Thing",
 | 
						|
      "type": "object",
 | 
						|
      "properties": {
 | 
						|
        "id": {
 | 
						|
          "type": "string"
 | 
						|
        },
 | 
						|
        "etag": {
 | 
						|
          "type": "string"
 | 
						|
        },
 | 
						|
        "kind": {
 | 
						|
          "type": "string",
 | 
						|
          "default": "test#thing"
 | 
						|
        },
 | 
						|
        "name": {
 | 
						|
          "type": "string"
 | 
						|
        },
 | 
						|
        "enabled": {
 | 
						|
          "type": "boolean"
 | 
						|
        },
 | 
						|
        "hat": {
 | 
						|
          "$ref": "Hat"
 | 
						|
        },
 | 
						|
        "recursiveHat": {
 | 
						|
          "$ref": "RecursiveHat"
 | 
						|
        },
 | 
						|
        "properties": {
 | 
						|
          "$ref": "HashLikeThing"
 | 
						|
        },
 | 
						|
        "photo": {
 | 
						|
          "type": "object",
 | 
						|
          "properties": {
 | 
						|
            "filename": {
 | 
						|
              "type": "string"
 | 
						|
            },
 | 
						|
            "hash": {
 | 
						|
              "type": "string"
 | 
						|
            },
 | 
						|
            "hashAlgorithm": {
 | 
						|
              "type": "string"
 | 
						|
            },
 | 
						|
            "size": {
 | 
						|
              "type": "integer"
 | 
						|
            },
 | 
						|
            "type": {
 | 
						|
              "type": "string"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "Hat": {
 | 
						|
      "type": "object",
 | 
						|
      "variant": {
 | 
						|
        "discriminant": "type",
 | 
						|
        "map": [
 | 
						|
          {
 | 
						|
            "type_value": "topHat",
 | 
						|
            "$ref": "TopHat"
 | 
						|
          },
 | 
						|
          {
 | 
						|
            "type_value": "baseballHat",
 | 
						|
            "$ref": "BaseballHat"
 | 
						|
          }
 | 
						|
        ]
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "RecursiveHat": {
 | 
						|
      "id": "RecursiveHat",
 | 
						|
      "type": "object",
 | 
						|
      "properties": {
 | 
						|
        "bool": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "The bool value."
 | 
						|
        },
 | 
						|
        "double": {
 | 
						|
          "type": "number",
 | 
						|
          "description": "The double value.",
 | 
						|
          "format": "double"
 | 
						|
        },
 | 
						|
        "image": {
 | 
						|
          "$ref": "Image",
 | 
						|
          "description": "The image value."
 | 
						|
        },
 | 
						|
        "int": {
 | 
						|
          "type": "integer",
 | 
						|
          "description": "The int value.",
 | 
						|
          "format": "int32"
 | 
						|
        },
 | 
						|
        "kind": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "The kind, fixed to \"test#recursiveHat\".",
 | 
						|
          "default": "test#recursiveHat"
 | 
						|
        },
 | 
						|
        "list": {
 | 
						|
          "type": "array",
 | 
						|
          "description": "The list of typed values.",
 | 
						|
          "items": {
 | 
						|
            "$ref": "RecursiveHat"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        "string": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "The string value."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": {
 | 
						|
        "$ref": "RecursiveHat"
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "TopHat": {
 | 
						|
      "type": "object",
 | 
						|
      "properties": {
 | 
						|
        "type": {
 | 
						|
          "type": "string"
 | 
						|
        },
 | 
						|
        "height": {
 | 
						|
          "type": "number"
 | 
						|
        }
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "BaseballHat": {
 | 
						|
      "type": "object",
 | 
						|
      "properties": {
 | 
						|
        "type": {
 | 
						|
          "type": "string"
 | 
						|
        },
 | 
						|
        "color": {
 | 
						|
          "type": "string"
 | 
						|
        }
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "HashLikeThing": {
 | 
						|
      "id": "HashLikeThing",
 | 
						|
      "type": "object",
 | 
						|
      "additionalProperties": {
 | 
						|
        "type": "string",
 | 
						|
        "description": "A mapping from export format to URL"
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "TestThing": {
 | 
						|
      "id": "TestThing",
 | 
						|
      "type": "object",
 | 
						|
      "properties" :{}
 | 
						|
    },
 | 
						|
    "TestAnotherThing": {
 | 
						|
      "id": "TestAnotherThing",
 | 
						|
      "type": "object",
 | 
						|
      "properties" :{}
 | 
						|
    },
 | 
						|
    "ThingList": {
 | 
						|
      "id": "ThingList",
 | 
						|
      "type": "object",
 | 
						|
      "properties": {
 | 
						|
        "items": {
 | 
						|
          "type": "array",
 | 
						|
          "description": "The actual list of files.",
 | 
						|
          "items": {
 | 
						|
            "$ref": "Thing"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        "kind": {
 | 
						|
          "type": "string",
 | 
						|
          "default": "test#thinglist"
 | 
						|
        }
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "QueryResults": {
 | 
						|
      "id": "QueryResults",
 | 
						|
      "type": "object",
 | 
						|
      "properties": {
 | 
						|
        "rows": {
 | 
						|
          "$ref": "Rows"
 | 
						|
        }
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "Rows": {
 | 
						|
      "id": "QueryResults",
 | 
						|
      "type": "array",
 | 
						|
      "items": {
 | 
						|
        "type": "object",
 | 
						|
        "properties": {
 | 
						|
          "value": {
 | 
						|
            "type": "string"
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  "methods": {
 | 
						|
    "query": {
 | 
						|
      "path": "query",
 | 
						|
      "id": "test.query",
 | 
						|
      "httpMethod": "GET",
 | 
						|
      "response": {
 | 
						|
        "$ref": "QueryResults"
 | 
						|
        //"$ref": "Rows" TODO: Support naked collections as a return value
 | 
						|
      },
 | 
						|
      "parameters": {
 | 
						|
        "s": {
 | 
						|
          "type": "string",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": false
 | 
						|
        },
 | 
						|
        "i": {
 | 
						|
          "type": "integer",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": false,
 | 
						|
          "minimum": "0",
 | 
						|
          "maximum": "4294967295",
 | 
						|
          "default": "20"
 | 
						|
        },
 | 
						|
        "n": {
 | 
						|
          "type": "number",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": false
 | 
						|
        },
 | 
						|
        "b": {
 | 
						|
          "type": "boolean",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": false
 | 
						|
        },
 | 
						|
        "a": {
 | 
						|
          "type": "any",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": false
 | 
						|
        },
 | 
						|
        "e": {
 | 
						|
          "type": "string",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": false,
 | 
						|
          "enum": [
 | 
						|
            "foo",
 | 
						|
            "bar"
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        "er": {
 | 
						|
          "type": "string",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": true,
 | 
						|
          "enum": [
 | 
						|
            "one",
 | 
						|
            "two",
 | 
						|
            "three"
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        "sr": {
 | 
						|
          "type": "string",
 | 
						|
          "location": "query",
 | 
						|
          "required": false,
 | 
						|
          "repeated": true,
 | 
						|
          "pattern": "[a-z]+"
 | 
						|
        },
 | 
						|
        "do": {
 | 
						|
          "type": "string",
 | 
						|
          "location": "query",
 | 
						|
          "required": false
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  "resources": {
 | 
						|
    "things": {
 | 
						|
      "resources": {
 | 
						|
        "subthings": {
 | 
						|
          "methods": {
 | 
						|
            "list": {
 | 
						|
              "path": "things",
 | 
						|
              "id": "test.things.subthings.list",
 | 
						|
              "httpMethod": "GET",
 | 
						|
              "parameters": {
 | 
						|
                "max-results": {
 | 
						|
                  "type": "number",
 | 
						|
                  "location": "query",
 | 
						|
                  "required": false
 | 
						|
                }
 | 
						|
              },
 | 
						|
              "response": {
 | 
						|
                "$ref": "ThingList"
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "methods": {
 | 
						|
        "list": {
 | 
						|
          "path": "things",
 | 
						|
          "id": "test.things.list",
 | 
						|
          "httpMethod": "GET",
 | 
						|
          "parameters": {
 | 
						|
            "max-results": {
 | 
						|
              "type": "number",
 | 
						|
              "location": "query",
 | 
						|
              "required": false
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "response": {
 | 
						|
            "$ref": "ThingList"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        "delete": {
 | 
						|
          "path": "things/{id}",
 | 
						|
          "id": "test.things.delete",
 | 
						|
          "httpMethod": "DELETE",
 | 
						|
          "description": "Delete things",
 | 
						|
          "parameters": {
 | 
						|
            "id": {
 | 
						|
              "location": "path",
 | 
						|
              "required": true,
 | 
						|
              "description": "ID of the thing to delete",
 | 
						|
              "type": "string"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "parameterOrder": [
 | 
						|
            "id"
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        "get": {
 | 
						|
          "path": "things/{id}",
 | 
						|
          "id": "test.things.get",
 | 
						|
          "httpMethod": "GET",
 | 
						|
          "description": "Get things",
 | 
						|
          "supportsMediaDownload": true,
 | 
						|
          "parameters": {
 | 
						|
            "id": {
 | 
						|
              "location": "path",
 | 
						|
              "required": true,
 | 
						|
              "description": "ID of the thing to get",
 | 
						|
              "type": "string"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "supportsMediaDownload": true,
 | 
						|
          "parameterOrder": [
 | 
						|
            "id"
 | 
						|
          ],
 | 
						|
          "response": {
 | 
						|
            "$ref": "Thing"
 | 
						|
          }
 | 
						|
        },
 | 
						|
        "create": {
 | 
						|
          "path": "things",
 | 
						|
          "id": "test.things.create",
 | 
						|
          "httpMethod": "POST",
 | 
						|
          "description": "Create things",
 | 
						|
          "request": {
 | 
						|
            "$ref": "Thing"
 | 
						|
          },
 | 
						|
          "response": {
 | 
						|
            "$ref": "Thing"
 | 
						|
          },
 | 
						|
          "supportsMediaUpload": true,
 | 
						|
          "mediaUpload": {
 | 
						|
            "accept": [
 | 
						|
              "*/*"
 | 
						|
            ],
 | 
						|
            "maxSize": "1KB",
 | 
						|
            "protocols": {
 | 
						|
              "simple": {
 | 
						|
                "multipart": true,
 | 
						|
                "path": "upload/things/{id}"
 | 
						|
              },
 | 
						|
              "resumable": {
 | 
						|
                "multipart": true,
 | 
						|
                "path": "/resumable/upload/things/{id}"
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        },
 | 
						|
        "update": {
 | 
						|
          "path": "things/{id}",
 | 
						|
          "id": "test.things.update",
 | 
						|
          "httpMethod": "PUT",
 | 
						|
          "description": "Update things",
 | 
						|
          "parameters": {
 | 
						|
            "id": {
 | 
						|
              "location": "path",
 | 
						|
              "description": "ID of the thing to update",
 | 
						|
              "type": "string"
 | 
						|
            }
 | 
						|
          },
 | 
						|
          "parameterOrder": [
 | 
						|
            "id"
 | 
						|
          ],
 | 
						|
          "request": {
 | 
						|
            "$ref": "Thing"
 | 
						|
          },
 | 
						|
          "response": {
 | 
						|
            "$ref": "Thing"
 | 
						|
          },
 | 
						|
          "supportsMediaUpload": true,
 | 
						|
          "mediaUpload": {
 | 
						|
            "accept": [
 | 
						|
              "*/*"
 | 
						|
            ],
 | 
						|
            "maxSize": "1KB",
 | 
						|
            "protocols": {
 | 
						|
              "simple": {
 | 
						|
                "multipart": true,
 | 
						|
                "path": "upload/things/{id}"
 | 
						|
              },
 | 
						|
              "resumable": {
 | 
						|
                "multipart": true,
 | 
						|
                "path": "/resumable/upload/things/{id}"
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |