| // Copyright 2017 Google Inc. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // THIS FILE IS AUTOMATICALLY GENERATED. |
| |
| syntax = "proto3"; |
| |
| package openapi.v2; |
| |
| import "google/protobuf/any.proto"; |
| |
| // This option lets the proto compiler generate Java code inside the package |
| // name (see below) instead of inside an outer class. It creates a simpler |
| // developer experience by reducing one-level of name nesting and be |
| // consistent with most programming languages that don't support outer classes. |
| option java_multiple_files = true; |
| |
| // The Java outer classname should be the filename in UpperCamelCase. This |
| // class is only used to hold proto descriptor, so developers don't need to |
| // work with it directly. |
| option java_outer_classname = "OpenAPIProto"; |
| |
| // The Java package name must be proto package name with proper prefix. |
| option java_package = "org.openapi_v2"; |
| |
| // A reasonable prefix for the Objective-C symbols generated from the package. |
| // It should at a minimum be 3 characters long, all uppercase, and convention |
| // is to use an abbreviation of the package name. Something short, but |
| // hopefully unique enough to not conflict with things that may come along in |
| // the future. 'GPB' is reserved for the protocol buffer implementation itself. |
| option objc_class_prefix = "OAS"; |
| |
| message AdditionalPropertiesItem { |
| oneof oneof { |
| Schema schema = 1; |
| bool boolean = 2; |
| } |
| } |
| |
| message Any { |
| google.protobuf.Any value = 1; |
| string yaml = 2; |
| } |
| |
| message ApiKeySecurity { |
| string type = 1; |
| string name = 2; |
| string in = 3; |
| string description = 4; |
| repeated NamedAny vendor_extension = 5; |
| } |
| |
| message BasicAuthenticationSecurity { |
| string type = 1; |
| string description = 2; |
| repeated NamedAny vendor_extension = 3; |
| } |
| |
| message BodyParameter { |
| // A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed. |
| string description = 1; |
| // The name of the parameter. |
| string name = 2; |
| // Determines the location of the parameter. |
| string in = 3; |
| // Determines whether or not this parameter is required or optional. |
| bool required = 4; |
| Schema schema = 5; |
| repeated NamedAny vendor_extension = 6; |
| } |
| |
| // Contact information for the owners of the API. |
| message Contact { |
| // The identifying name of the contact person/organization. |
| string name = 1; |
| // The URL pointing to the contact information. |
| string url = 2; |
| // The email address of the contact person/organization. |
| string email = 3; |
| repeated NamedAny vendor_extension = 4; |
| } |
| |
| message Default { |
| repeated NamedAny additional_properties = 1; |
| } |
| |
| // One or more JSON objects describing the schemas being consumed and produced by the API. |
| message Definitions { |
| repeated NamedSchema additional_properties = 1; |
| } |
| |
| message Document { |
| // The Swagger version of this document. |
| string swagger = 1; |
| Info info = 2; |
| // The host (name or ip) of the API. Example: 'swagger.io' |
| string host = 3; |
| // The base path to the API. Example: '/api'. |
| string base_path = 4; |
| // The transfer protocol of the API. |
| repeated string schemes = 5; |
| // A list of MIME types accepted by the API. |
| repeated string consumes = 6; |
| // A list of MIME types the API can produce. |
| repeated string produces = 7; |
| Paths paths = 8; |
| Definitions definitions = 9; |
| ParameterDefinitions parameters = 10; |
| ResponseDefinitions responses = 11; |
| repeated SecurityRequirement security = 12; |
| SecurityDefinitions security_definitions = 13; |
| repeated Tag tags = 14; |
| ExternalDocs external_docs = 15; |
| repeated NamedAny vendor_extension = 16; |
| } |
| |
| message Examples { |
| repeated NamedAny additional_properties = 1; |
| } |
| |
| // information about external documentation |
| message ExternalDocs { |
| string description = 1; |
| string url = 2; |
| repeated NamedAny vendor_extension = 3; |
| } |
| |
| // A deterministic version of a JSON Schema object. |
| message FileSchema { |
| string format = 1; |
| string title = 2; |
| string description = 3; |
| Any default = 4; |
| repeated string required = 5; |
| string type = 6; |
| bool read_only = 7; |
| ExternalDocs external_docs = 8; |
| Any example = 9; |
| repeated NamedAny vendor_extension = 10; |
| } |
| |
| message FormDataParameterSubSchema { |
| // Determines whether or not this parameter is required or optional. |
| bool required = 1; |
| // Determines the location of the parameter. |
| string in = 2; |
| // A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed. |
| string description = 3; |
| // The name of the parameter. |
| string name = 4; |
| // allows sending a parameter by name only or with an empty value. |
| bool allow_empty_value = 5; |
| string type = 6; |
| string format = 7; |
| PrimitivesItems items = 8; |
| string collection_format = 9; |
| Any default = 10; |
| double maximum = 11; |
| bool exclusive_maximum = 12; |
| double minimum = 13; |
| bool exclusive_minimum = 14; |
| int64 max_length = 15; |
| int64 min_length = 16; |
| string pattern = 17; |
| int64 max_items = 18; |
| int64 min_items = 19; |
| bool unique_items = 20; |
| repeated Any enum = 21; |
| double multiple_of = 22; |
| repeated NamedAny vendor_extension = 23; |
| } |
| |
| message Header { |
| string type = 1; |
| string format = 2; |
| PrimitivesItems items = 3; |
| string collection_format = 4; |
| Any default = 5; |
| double maximum = 6; |
| bool exclusive_maximum = 7; |
| double minimum = 8; |
| bool exclusive_minimum = 9; |
| int64 max_length = 10; |
| int64 min_length = 11; |
| string pattern = 12; |
| int64 max_items = 13; |
| int64 min_items = 14; |
| bool unique_items = 15; |
| repeated Any enum = 16; |
| double multiple_of = 17; |
| string description = 18; |
| repeated NamedAny vendor_extension = 19; |
| } |
| |
| message HeaderParameterSubSchema { |
| // Determines whether or not this parameter is required or optional. |
| bool required = 1; |
| // Determines the location of the parameter. |
| string in = 2; |
| // A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed. |
| string description = 3; |
| // The name of the parameter. |
| string name = 4; |
| string type = 5; |
| string format = 6; |
| PrimitivesItems items = 7; |
| string collection_format = 8; |
| Any default = 9; |
| double maximum = 10; |
| bool exclusive_maximum = 11; |
| double minimum = 12; |
| bool exclusive_minimum = 13; |
| int64 max_length = 14; |
| int64 min_length = 15; |
| string pattern = 16; |
| int64 max_items = 17; |
| int64 min_items = 18; |
| bool unique_items = 19; |
| repeated Any enum = 20; |
| double multiple_of = 21; |
| repeated NamedAny vendor_extension = 22; |
| } |
| |
| message Headers { |
| repeated NamedHeader additional_properties = 1; |
| } |
| |
| // General information about the API. |
| message Info { |
| // A unique and precise title of the API. |
| string title = 1; |
| // A semantic version number of the API. |
| string version = 2; |
| // A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed. |
| string description = 3; |
| // The terms of service for the API. |
| string terms_of_service = 4; |
| Contact contact = 5; |
| License license = 6; |
| repeated NamedAny vendor_extension = 7; |
| } |
| |
| message ItemsItem { |
| repeated Schema schema = 1; |
| } |
| |
| message JsonReference { |
| string _ref = 1; |
| string description = 2; |
| } |
| |
| message License { |
| // The name of the license type. It's encouraged to use an OSI compatible license. |
| string name = 1; |
| // The URL pointing to the license. |
| string url = 2; |
| repeated NamedAny vendor_extension = 3; |
| } |
| |
| // Automatically-generated message used to represent maps of Any as ordered (name,value) pairs. |
| message NamedAny { |
| // Map key |
| string name = 1; |
| // Mapped value |
| Any value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of Header as ordered (name,value) pairs. |
| message NamedHeader { |
| // Map key |
| string name = 1; |
| // Mapped value |
| Header value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of Parameter as ordered (name,value) pairs. |
| message NamedParameter { |
| // Map key |
| string name = 1; |
| // Mapped value |
| Parameter value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs. |
| message NamedPathItem { |
| // Map key |
| string name = 1; |
| // Mapped value |
| PathItem value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of Response as ordered (name,value) pairs. |
| message NamedResponse { |
| // Map key |
| string name = 1; |
| // Mapped value |
| Response value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of ResponseValue as ordered (name,value) pairs. |
| message NamedResponseValue { |
| // Map key |
| string name = 1; |
| // Mapped value |
| ResponseValue value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of Schema as ordered (name,value) pairs. |
| message NamedSchema { |
| // Map key |
| string name = 1; |
| // Mapped value |
| Schema value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of SecurityDefinitionsItem as ordered (name,value) pairs. |
| message NamedSecurityDefinitionsItem { |
| // Map key |
| string name = 1; |
| // Mapped value |
| SecurityDefinitionsItem value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of string as ordered (name,value) pairs. |
| message NamedString { |
| // Map key |
| string name = 1; |
| // Mapped value |
| string value = 2; |
| } |
| |
| // Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs. |
| message NamedStringArray { |
| // Map key |
| string name = 1; |
| // Mapped value |
| StringArray value = 2; |
| } |
| |
| message NonBodyParameter { |
| oneof oneof { |
| HeaderParameterSubSchema header_parameter_sub_schema = 1; |
| FormDataParameterSubSchema form_data_parameter_sub_schema = 2; |
| QueryParameterSubSchema query_parameter_sub_schema = 3; |
| PathParameterSubSchema path_parameter_sub_schema = 4; |
| } |
| } |
| |
| message Oauth2AccessCodeSecurity { |
| string type = 1; |
| string flow = 2; |
| Oauth2Scopes scopes = 3; |
| string authorization_url = 4; |
| string token_url = 5; |
| string description = 6; |
| repeated NamedAny vendor_extension = 7; |
| } |
| |
| message Oauth2ApplicationSecurity { |
| string type = 1; |
| string flow = 2; |
| Oauth2Scopes scopes = 3; |
| string token_url = 4; |
| string description = 5; |
| repeated NamedAny vendor_extension = 6; |
| } |
| |
| message Oauth2ImplicitSecurity { |
| string type = 1; |
| string flow = 2; |
| Oauth2Scopes scopes = 3; |
| string authorization_url = 4; |
| string description = 5; |
| repeated NamedAny vendor_extension = 6; |
| } |
| |
| message Oauth2PasswordSecurity { |
| string type = 1; |
| string flow = 2; |
| Oauth2Scopes scopes = 3; |
| string token_url = 4; |
| string description = 5; |
| repeated NamedAny vendor_extension = 6; |
| } |
| |
| message Oauth2Scopes { |
| repeated NamedString additional_properties = 1; |
| } |
| |
| message Operation { |
| repeated string tags = 1; |
| // A brief summary of the operation. |
| string summary = 2; |
| // A longer description of the operation, GitHub Flavored Markdown is allowed. |
| string description = 3; |
| ExternalDocs external_docs = 4; |
| // A unique identifier of the operation. |
| string operation_id = 5; |
| // A list of MIME types the API can produce. |
| repeated string produces = 6; |
| // A list of MIME types the API can consume. |
| repeated string consumes = 7; |
| // The parameters needed to send a valid API call. |
| repeated ParametersItem parameters = 8; |
| Responses responses = 9; |
| // The transfer protocol of the API. |
| repeated string schemes = 10; |
| bool deprecated = 11; |
| repeated SecurityRequirement security = 12; |
| repeated NamedAny vendor_extension = 13; |
| } |
| |
| message Parameter { |
| oneof oneof { |
| BodyParameter body_parameter = 1; |
| NonBodyParameter non_body_parameter = 2; |
| } |
| } |
| |
| // One or more JSON representations for parameters |
| message ParameterDefinitions { |
| repeated NamedParameter additional_properties = 1; |
| } |
| |
| message ParametersItem { |
| oneof oneof { |
| Parameter parameter = 1; |
| JsonReference json_reference = 2; |
| } |
| } |
| |
| message PathItem { |
| string _ref = 1; |
| Operation get = 2; |
| Operation put = 3; |
| Operation post = 4; |
| Operation delete = 5; |
| Operation options = 6; |
| Operation head = 7; |
| Operation patch = 8; |
| // The parameters needed to send a valid API call. |
| repeated ParametersItem parameters = 9; |
| repeated NamedAny vendor_extension = 10; |
| } |
| |
| message PathParameterSubSchema { |
| // Determines whether or not this parameter is required or optional. |
| bool required = 1; |
| // Determines the location of the parameter. |
| string in = 2; |
| // A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed. |
| string description = 3; |
| // The name of the parameter. |
| string name = 4; |
| string type = 5; |
| string format = 6; |
| PrimitivesItems items = 7; |
| string collection_format = 8; |
| Any default = 9; |
| double maximum = 10; |
| bool exclusive_maximum = 11; |
| double minimum = 12; |
| bool exclusive_minimum = 13; |
| int64 max_length = 14; |
| int64 min_length = 15; |
| string pattern = 16; |
| int64 max_items = 17; |
| int64 min_items = 18; |
| bool unique_items = 19; |
| repeated Any enum = 20; |
| double multiple_of = 21; |
| repeated NamedAny vendor_extension = 22; |
| } |
| |
| // Relative paths to the individual endpoints. They must be relative to the 'basePath'. |
| message Paths { |
| repeated NamedAny vendor_extension = 1; |
| repeated NamedPathItem path = 2; |
| } |
| |
| message PrimitivesItems { |
| string type = 1; |
| string format = 2; |
| PrimitivesItems items = 3; |
| string collection_format = 4; |
| Any default = 5; |
| double maximum = 6; |
| bool exclusive_maximum = 7; |
| double minimum = 8; |
| bool exclusive_minimum = 9; |
| int64 max_length = 10; |
| int64 min_length = 11; |
| string pattern = 12; |
| int64 max_items = 13; |
| int64 min_items = 14; |
| bool unique_items = 15; |
| repeated Any enum = 16; |
| double multiple_of = 17; |
| repeated NamedAny vendor_extension = 18; |
| } |
| |
| message Properties { |
| repeated NamedSchema additional_properties = 1; |
| } |
| |
| message QueryParameterSubSchema { |
| // Determines whether or not this parameter is required or optional. |
| bool required = 1; |
| // Determines the location of the parameter. |
| string in = 2; |
| // A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed. |
| string description = 3; |
| // The name of the parameter. |
| string name = 4; |
| // allows sending a parameter by name only or with an empty value. |
| bool allow_empty_value = 5; |
| string type = 6; |
| string format = 7; |
| PrimitivesItems items = 8; |
| string collection_format = 9; |
| Any default = 10; |
| double maximum = 11; |
| bool exclusive_maximum = 12; |
| double minimum = 13; |
| bool exclusive_minimum = 14; |
| int64 max_length = 15; |
| int64 min_length = 16; |
| string pattern = 17; |
| int64 max_items = 18; |
| int64 min_items = 19; |
| bool unique_items = 20; |
| repeated Any enum = 21; |
| double multiple_of = 22; |
| repeated NamedAny vendor_extension = 23; |
| } |
| |
| message Response { |
| string description = 1; |
| SchemaItem schema = 2; |
| Headers headers = 3; |
| Examples examples = 4; |
| repeated NamedAny vendor_extension = 5; |
| } |
| |
| // One or more JSON representations for parameters |
| message ResponseDefinitions { |
| repeated NamedResponse additional_properties = 1; |
| } |
| |
| message ResponseValue { |
| oneof oneof { |
| Response response = 1; |
| JsonReference json_reference = 2; |
| } |
| } |
| |
| // Response objects names can either be any valid HTTP status code or 'default'. |
| message Responses { |
| repeated NamedResponseValue response_code = 1; |
| repeated NamedAny vendor_extension = 2; |
| } |
| |
| // A deterministic version of a JSON Schema object. |
| message Schema { |
| string _ref = 1; |
| string format = 2; |
| string title = 3; |
| string description = 4; |
| Any default = 5; |
| double multiple_of = 6; |
| double maximum = 7; |
| bool exclusive_maximum = 8; |
| double minimum = 9; |
| bool exclusive_minimum = 10; |
| int64 max_length = 11; |
| int64 min_length = 12; |
| string pattern = 13; |
| int64 max_items = 14; |
| int64 min_items = 15; |
| bool unique_items = 16; |
| int64 max_properties = 17; |
| int64 min_properties = 18; |
| repeated string required = 19; |
| repeated Any enum = 20; |
| AdditionalPropertiesItem additional_properties = 21; |
| TypeItem type = 22; |
| ItemsItem items = 23; |
| repeated Schema all_of = 24; |
| Properties properties = 25; |
| string discriminator = 26; |
| bool read_only = 27; |
| Xml xml = 28; |
| ExternalDocs external_docs = 29; |
| Any example = 30; |
| repeated NamedAny vendor_extension = 31; |
| } |
| |
| message SchemaItem { |
| oneof oneof { |
| Schema schema = 1; |
| FileSchema file_schema = 2; |
| } |
| } |
| |
| message SecurityDefinitions { |
| repeated NamedSecurityDefinitionsItem additional_properties = 1; |
| } |
| |
| message SecurityDefinitionsItem { |
| oneof oneof { |
| BasicAuthenticationSecurity basic_authentication_security = 1; |
| ApiKeySecurity api_key_security = 2; |
| Oauth2ImplicitSecurity oauth2_implicit_security = 3; |
| Oauth2PasswordSecurity oauth2_password_security = 4; |
| Oauth2ApplicationSecurity oauth2_application_security = 5; |
| Oauth2AccessCodeSecurity oauth2_access_code_security = 6; |
| } |
| } |
| |
| message SecurityRequirement { |
| repeated NamedStringArray additional_properties = 1; |
| } |
| |
| message StringArray { |
| repeated string value = 1; |
| } |
| |
| message Tag { |
| string name = 1; |
| string description = 2; |
| ExternalDocs external_docs = 3; |
| repeated NamedAny vendor_extension = 4; |
| } |
| |
| message TypeItem { |
| repeated string value = 1; |
| } |
| |
| // Any property starting with x- is valid. |
| message VendorExtension { |
| repeated NamedAny additional_properties = 1; |
| } |
| |
| message Xml { |
| string name = 1; |
| string namespace = 2; |
| string prefix = 3; |
| bool attribute = 4; |
| bool wrapped = 5; |
| repeated NamedAny vendor_extension = 6; |
| } |
| |