FunctionDeclaration

Structured representation of a function declaration as defined by the OpenAPI 3.0 specification. Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a Tool by the model and executed by the client.

Fields
name string

Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.

description string

Optional. description and purpose of the function. Model uses it to decide how and whether to call the function.

parameters object (Schema)

Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1

response object (Schema)

Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.

JSON representation
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  },
  "response": {
    object (Schema)
  }
}

Schema

Schema is used to define the format of input/output data. Represents a select subset of an OpenAPI 3.0 schema object. More fields may be added in the future as needed.

Fields
type enum (Type)

Optional. The type of the data.

format string

Optional. The format of the data. Supported formats: for NUMBER type: "float", "double" for INTEGER type: "int32", "int64" for STRING type: "email", "byte", etc

title string

Optional. The title of the Schema.

description string

Optional. The description of the data.

nullable boolean

Optional. Indicates if the value may be null.

default value (Value format)

Optional. Default value of the data.

items object (Schema)

Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of type.ARRAY.

minItems string (int64 format)

Optional. Minimum number of the elements for type.ARRAY.

maxItems string (int64 format)

Optional. Maximum number of the elements for type.ARRAY.

enum[] string

Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}

properties map (key: string, value: object (Schema))

Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of type.OBJECT.

propertyOrdering[] string

Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.

required[] string

Optional. Required properties of type.OBJECT.

minProperties string (int64 format)

Optional. Minimum number of the properties for type.OBJECT.

maxProperties string (int64 format)

Optional. Maximum number of the properties for type.OBJECT.

minimum number

Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the type.INTEGER and type.NUMBER

maximum number

Optional. Maximum value of the type.INTEGER and type.NUMBER

minLength string (int64 format)

Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the type.STRING

maxLength string (int64 format)

Optional. Maximum length of the type.STRING

pattern string

Optional. Pattern of the type.STRING to restrict a string to a regular expression.

example value (Value format)

Optional. Example of the object. Will only populated when the object is the root.

anyOf[] object (Schema)

Optional. The value should be validated against any (one or more) of the subschemas in the list.

JSON representation
{
  "type": enum (Type),
  "format": string,
  "title": string,
  "description": string,
  "nullable": boolean,
  "default": value,
  "items": {
    object (Schema)
  },
  "minItems": string,
  "maxItems": string,
  "enum": [
    string
  ],
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "propertyOrdering": [
    string
  ],
  "required": [
    string
  ],
  "minProperties": string,
  "maxProperties": string,
  "minimum": number,
  "maximum": number,
  "minLength": string,
  "maxLength": string,
  "pattern": string,
  "example": value,
  "anyOf": [
    {
      object (Schema)
    }
  ]
}

Type

type contains the list of OpenAPI data types as defined by https://swagger.io/docs/specification/data-models/data-types/

Enums
TYPE_UNSPECIFIED Not specified, should not be used.
STRING OpenAPI string type
NUMBER OpenAPI number type
INTEGER OpenAPI integer type
BOOLEAN OpenAPI boolean type
ARRAY OpenAPI array type
OBJECT OpenAPI object type