8.5 KB · v2.31.0
syntax = "proto3";// Package grpc.gateway.protoc_gen_openapiv3.options defines the minimal set of// OpenAPI 3.1.0 override messages consumed by protoc-gen-openapiv3.package grpc.gateway.protoc_gen_openapiv3.options;import "google/protobuf/struct.proto";option go_package = "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv3/options";// Document is a file-level override applied to the top of the generated// OpenAPI document. Only non-empty sub-fields replace the defaults the// generator would otherwise synthesize from the proto file name.//// Spec: https://spec.openapis.org/oas/v3.1.0#openapi-objectmessage Document { // Provides metadata about the API. The metadata MAY be used by tooling as // required. Info info = 1; // An array of Server Objects, which provide connectivity information to a // target server. If the servers property is not provided, or is an empty // array, the default value would be a Server Object with a url value of /. repeated Server servers = 2; // Additional external documentation. ExternalDocs external_docs = 3; // A list of tags used by the document with additional metadata. Tags // declared here are merged with the tags derived from proto services: an // entry here whose name matches a service's tag replaces the default, // and entries with new names are appended. This is the only way to // attach a description (or external docs) to a tag referenced by a // method-level `openapiv3_operation.tags` override, since those tags // would otherwise appear in the document with no metadata. repeated Tag tags = 4; // Custom specification extensions rendered at the root of the OpenAPI // document. Keys MUST start with "x-". // // See: https://spec.openapis.org/oas/v3.1.0#specification-extensions map<string, google.protobuf.Value> extensions = 5;}// Info mirrors the fields of the OpenAPI 3.1.0 Info object that users most// often want to set from proto.//// Spec: https://spec.openapis.org/oas/v3.1.0#info-objectmessage Info { // The title of the API. string title = 1; // A short summary of the API. string summary = 2; // A description of the API. CommonMark syntax MAY be used for rich text // representation. string description = 3; // A URL to the Terms of Service for the API. This MUST be in the form of a // URL. string terms_of_service = 4; // The contact information for the exposed API. Contact contact = 5; // The license information for the exposed API. License license = 6; // The version of the OpenAPI document (which is distinct from the OpenAPI // Specification version or the API implementation version). string version = 7; // Custom specification extensions rendered on the Info object. Keys MUST // start with "x-". // // See: https://spec.openapis.org/oas/v3.1.0#specification-extensions map<string, google.protobuf.Value> extensions = 8;}// Contact information for the exposed API.//// Spec: https://spec.openapis.org/oas/v3.1.0#contact-objectmessage Contact { // The identifying name of the contact person/organization. string name = 1; // The URL pointing to the contact information. This MUST be in the form of // a URL. string url = 2; // The email address of the contact person/organization. This MUST be in the // form of an email address. string email = 3;}// License information for the exposed API. `identifier` and `url` are// mutually exclusive in the OpenAPI 3.1.0 spec, so they are modeled as a// oneof: setting one clears the other.//// Spec: https://spec.openapis.org/oas/v3.1.0#license-objectmessage License { // The license name used for the API. string name = 1; // Source identifying the license. Either an SPDX expression or a URL, // mutually exclusive per the OpenAPI 3.1.0 spec. oneof source { // An SPDX expression for the API. string identifier = 2; // A URL to the license used for the API. This MUST be in the form of a // URL. string url = 3; }}// Server represents an API server.//// Spec: https://spec.openapis.org/oas/v3.1.0#server-objectmessage Server { // A URL to the target host. This URL supports Server Variables and MAY be // relative, to indicate that the host location is relative to the location // where the OpenAPI document is being served. string url = 1; // An optional string describing the host designated by the URL. CommonMark // syntax MAY be used for rich text representation. string description = 2;}// Operation is a method-level override applied to the generated Operation// object. Non-empty fields replace values the generator would otherwise// derive from proto comments or defaults.//// Spec: https://spec.openapis.org/oas/v3.1.0#operation-objectmessage Operation { // A list of tags for API documentation control. Tags can be used for // logical grouping of operations by resources or any other qualifier. repeated string tags = 1; // A short summary of what the operation does. string summary = 2; // A verbose explanation of the operation behavior. CommonMark syntax MAY // be used for rich text representation. string description = 3; // Additional external documentation for this operation. ExternalDocs external_docs = 4; // Unique string used to identify the operation. The id MUST be unique among // all operations described in the API. string operation_id = 5; // Declares this operation to be deprecated. Consumers SHOULD refrain from // usage of the declared operation. Default value is false. Setting this to // false does not un-deprecate a method that is marked deprecated in proto // (`option deprecated = true` on the method, service, or file). bool deprecated = 6; // An alternative `servers` array to service this operation. If a `servers` // array is specified at the Path Item Object or OpenAPI Object level, it // will be overridden by this value. repeated Server servers = 7; // Custom specification extensions rendered on the Operation object. Keys // MUST start with "x-". // // See: https://spec.openapis.org/oas/v3.1.0#specification-extensions map<string, google.protobuf.Value> extensions = 8;}// Schema is a message- or field-level override applied to the generated// JSON Schema. Non-empty fields replace values the generator would// otherwise derive from proto comments or the proto type.//// Both `openapiv3_schema` (on MessageOptions) and `openapiv3_field` (on// FieldOptions) use this message.//// Spec: https://spec.openapis.org/oas/v3.1.0#schema-object// Underlying dialect: https://json-schema.org/draft/2020-12/json-schema-coremessage Schema { // A preferably short string describing the purpose of the instance // described by the schema. string title = 1; // A string providing explanation about the purpose of the instance // described by the schema. string description = 2; // Declares this schema to be deprecated. Consumers SHOULD refrain from // usage of the declared schema. Default value is false. Setting this to // false does not un-deprecate a schema that is marked deprecated in proto // (`option deprecated = true` on the message, field, or file). bool deprecated = 3; // Custom specification extensions rendered on the Schema object. Keys // MUST start with "x-". Setting this on a field-level annotation forces // a schema body (like `title`), so a $ref-typed field carrying extensions // is wrapped in `allOf`. // // See: https://spec.openapis.org/oas/v3.1.0#specification-extensions map<string, google.protobuf.Value> extensions = 4;}// ExternalDocs is a link to external documentation.//// Spec: https://spec.openapis.org/oas/v3.1.0#external-documentation-objectmessage ExternalDocs { // A description of the target documentation. CommonMark syntax MAY be used // for rich text representation. string description = 1; // The URL for the target documentation. This MUST be in the form of a URL. string url = 2;}// Tag adds metadata to a single tag that is used by the Operation Object. It// is not mandatory to have a Tag Object per tag defined in the Operation// Object instances.//// Spec: https://spec.openapis.org/oas/v3.1.0#tag-objectmessage Tag { // The name of the tag. string name = 1; // A description for the tag. CommonMark syntax MAY be used for rich text // representation. string description = 2; // Additional external documentation for this tag. ExternalDocs external_docs = 3; // Custom specification extensions rendered on the Tag object. Keys MUST // start with "x-". // // See: https://spec.openapis.org/oas/v3.1.0#specification-extensions map<string, google.protobuf.Value> extensions = 4;}