{
  "name": "UpdateFunctionConfiguration",
  "plane": "control",
  "terraformEligible": true,
  "protocol": {
    "kind": "cloudJson",
    "target": "CloudFunctions.UpdateFunctionConfiguration",
    "service": "functions"
  },
  "requestBody": "typed",
  "responseBody": "typed",
  "requestSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "properties": {
      "accessKeyId": {
        "default": null,
        "type": [
          "string",
          "null"
        ]
      },
      "concurrencyLimit": {
        "default": null,
        "format": "uint32",
        "minimum": 0.0,
        "type": [
          "integer",
          "null"
        ]
      },
      "environment": {
        "additionalProperties": true,
        "default": null,
        "type": [
          "object",
          "null"
        ]
      },
      "handler": {
        "default": null,
        "type": [
          "string",
          "null"
        ]
      },
      "memoryMb": {
        "default": null,
        "format": "uint32",
        "minimum": 0.0,
        "type": [
          "integer",
          "null"
        ]
      },
      "name": {
        "type": "string"
      },
      "principalId": {
        "default": null,
        "type": [
          "string",
          "null"
        ]
      },
      "runtime": {
        "default": null,
        "type": [
          "string",
          "null"
        ]
      },
      "timeoutSeconds": {
        "default": null,
        "format": "uint32",
        "minimum": 0.0,
        "type": [
          "integer",
          "null"
        ]
      }
    },
    "required": [
      "name"
    ],
    "title": "UpdateFunctionConfigurationRequest",
    "type": "object"
  },
  "responseSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
      "FunctionCode": {
        "additionalProperties": false,
        "properties": {
          "bucket": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "key",
          "sha256"
        ],
        "type": "object"
      },
      "FunctionImage": {
        "additionalProperties": false,
        "properties": {
          "sha256": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "uri": {
            "type": "string"
          }
        },
        "required": [
          "uri"
        ],
        "type": "object"
      }
    },
    "properties": {
      "accessKeyId": {
        "type": [
          "string",
          "null"
        ]
      },
      "code": {
        "anyOf": [
          {
            "$ref": "#/definitions/FunctionCode"
          },
          {
            "type": "null"
          }
        ]
      },
      "concurrencyLimit": {
        "format": "uint32",
        "minimum": 0.0,
        "type": "integer"
      },
      "environment": {
        "additionalProperties": true,
        "type": "object"
      },
      "handler": {
        "type": [
          "string",
          "null"
        ]
      },
      "identityOwned": {
        "type": "boolean"
      },
      "image": {
        "anyOf": [
          {
            "$ref": "#/definitions/FunctionImage"
          },
          {
            "type": "null"
          }
        ]
      },
      "imageDigest": {
        "type": [
          "string",
          "null"
        ]
      },
      "injectGeneration": {
        "format": "uint64",
        "minimum": 0.0,
        "type": "integer"
      },
      "memoryMb": {
        "format": "uint32",
        "minimum": 0.0,
        "type": "integer"
      },
      "name": {
        "type": "string"
      },
      "packageType": {
        "type": "string"
      },
      "principalId": {
        "type": [
          "string",
          "null"
        ]
      },
      "runtime": {
        "type": [
          "string",
          "null"
        ]
      },
      "status": {
        "type": "string"
      },
      "timeoutSeconds": {
        "format": "uint32",
        "minimum": 0.0,
        "type": "integer"
      }
    },
    "required": [
      "concurrencyLimit",
      "environment",
      "identityOwned",
      "injectGeneration",
      "memoryMb",
      "name",
      "packageType",
      "status",
      "timeoutSeconds"
    ],
    "title": "FunctionDescription",
    "type": "object"
  }
}
