{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-dialogflow/json-schema/google-dialogflow-google-cloud-dialogflow-v2-tool-schema.json",
  "title": "GoogleCloudDialogflowV2Tool",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/google-dialogflow-tools-api-openapi.yml#/components/schemas/GoogleCloudDialogflowV2Tool",
  "type": "object",
  "properties": {
    "satisfiesPzs": {
      "type": "boolean",
      "readOnly": true
    },
    "functionSpec": {
      "$ref": "#/$defs/GoogleCloudDialogflowV2ToolFunctionTool"
    },
    "createTime": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    },
    "connectorSpec": {
      "$ref": "#/$defs/GoogleCloudDialogflowV2ToolConnectorTool"
    },
    "displayName": {
      "type": "string"
    },
    "satisfiesPzi": {
      "type": "boolean",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "readOnly": true
    },
    "openApiSpec": {
      "$ref": "#/$defs/GoogleCloudDialogflowV2ToolOpenApiTool"
    },
    "description": {
      "type": "string"
    },
    "actionConfirmationRequirement": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "enum": [
          "CONFIRMATION_REQUIREMENT_UNSPECIFIED",
          "REQUIRED",
          "NOT_REQUIRED"
        ],
        "x-enumDescriptions": [
          "",
          "",
          ""
        ]
      }
    },
    "toolKey": {
      "type": "string"
    },
    "extensionSpec": {
      "$ref": "#/$defs/GoogleCloudDialogflowV2ToolExtensionTool"
    },
    "updateTime": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    }
  },
  "$defs": {
    "GoogleCloudDialogflowV2ToolAuthentication": {
      "type": "object",
      "properties": {
        "apiKeyConfig": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolAuthenticationApiKeyConfig"
        },
        "oauthConfig": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolAuthenticationOAuthConfig"
        },
        "serviceAgentAuthConfig": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolAuthenticationServiceAgentAuthConfig"
        },
        "bearerTokenConfig": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolAuthenticationBearerTokenConfig"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolAuthenticationApiKeyConfig": {
      "type": "object",
      "properties": {
        "secretVersionForApiKey": {
          "type": "string"
        },
        "keyName": {
          "type": "string"
        },
        "requestLocation": {
          "type": "string",
          "enum": [
            "REQUEST_LOCATION_UNSPECIFIED",
            "HEADER",
            "QUERY_STRING"
          ],
          "x-enumDescriptions": [
            "",
            "",
            ""
          ]
        },
        "apiKey": {
          "type": "string"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolAuthenticationBearerTokenConfig": {
      "type": "object",
      "properties": {
        "token": {
          "type": "string"
        },
        "secretVersionForToken": {
          "type": "string"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolAuthenticationOAuthConfig": {
      "type": "object",
      "properties": {
        "oauthGrantType": {
          "type": "string",
          "enum": [
            "OAUTH_GRANT_TYPE_UNSPECIFIED",
            "CLIENT_CREDENTIAL"
          ],
          "x-enumDescriptions": [
            "",
            ""
          ]
        },
        "clientSecret": {
          "type": "string"
        },
        "clientId": {
          "type": "string"
        },
        "secretVersionForClientSecret": {
          "type": "string"
        },
        "tokenEndpoint": {
          "type": "string"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudDialogflowV2ToolAuthenticationServiceAgentAuthConfig": {
      "type": "object",
      "properties": {
        "serviceAgentAuth": {
          "type": "string",
          "enum": [
            "SERVICE_AGENT_AUTH_UNSPECIFIED",
            "ID_TOKEN",
            "ACCESS_TOKEN"
          ],
          "x-enumDescriptions": [
            "",
            "",
            ""
          ]
        }
      }
    },
    "GoogleCloudDialogflowV2ToolConnectorTool": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GoogleCloudDialogflowV2ToolConnectorToolAction"
          }
        }
      }
    },
    "GoogleCloudDialogflowV2ToolConnectorToolAction": {
      "type": "object",
      "properties": {
        "outputFields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "entityOperation": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolConnectorToolActionEntityOperation"
        },
        "connectionActionId": {
          "type": "string"
        },
        "inputFields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudDialogflowV2ToolConnectorToolActionEntityOperation": {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "OPERATION_TYPE_UNSPECIFIED",
            "LIST",
            "GET",
            "CREATE",
            "UPDATE",
            "DELETE"
          ],
          "x-enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "entityId": {
          "type": "string"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolExtensionTool": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolFunctionTool": {
      "type": "object",
      "properties": {
        "outputSchema": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object."
          }
        },
        "methodType": {
          "type": "string",
          "enum": [
            "METHOD_TYPE_UNSPECIFIED",
            "GET",
            "POST",
            "PUT",
            "DELETE",
            "PATCH"
          ],
          "x-enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            ""
          ]
        },
        "inputSchema": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object."
          }
        }
      }
    },
    "GoogleCloudDialogflowV2ToolOpenApiTool": {
      "type": "object",
      "properties": {
        "serviceDirectoryConfig": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolServiceDirectoryConfig"
        },
        "textSchema": {
          "type": "string"
        },
        "authentication": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolAuthentication"
        },
        "tlsConfig": {
          "$ref": "#/$defs/GoogleCloudDialogflowV2ToolTLSConfig"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolServiceDirectoryConfig": {
      "type": "object",
      "properties": {
        "service": {
          "type": "string"
        }
      }
    },
    "GoogleCloudDialogflowV2ToolTLSConfig": {
      "type": "object",
      "properties": {
        "caCerts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GoogleCloudDialogflowV2ToolTLSConfigCACert"
          }
        }
      }
    },
    "GoogleCloudDialogflowV2ToolTLSConfigCACert": {
      "type": "object",
      "properties": {
        "cert": {
          "type": "string",
          "format": "byte"
        },
        "displayName": {
          "type": "string"
        }
      }
    }
  }
}