{
  "name": "TransactWriteItems",
  "plane": "data",
  "terraformEligible": false,
  "protocol": {
    "kind": "cloudJson",
    "target": "CloudTables.TransactWriteItems",
    "service": "tables"
  },
  "requestBody": "typed",
  "responseBody": "typed",
  "requestSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "definitions": {
      "AttributeValue": {
        "oneOf": [
          {
            "additionalProperties": false,
            "properties": {
              "S": {
                "type": "string"
              }
            },
            "required": [
              "S"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "N": {
                "type": "string"
              }
            },
            "required": [
              "N"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "B": {
                "type": "string"
              }
            },
            "required": [
              "B"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "BOOL": {
                "type": "boolean"
              }
            },
            "required": [
              "BOOL"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "NULL": {
                "type": "boolean"
              }
            },
            "required": [
              "NULL"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "M": {
                "additionalProperties": {
                  "$ref": "#/definitions/AttributeValue"
                },
                "type": "object"
              }
            },
            "required": [
              "M"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "L": {
                "items": {
                  "$ref": "#/definitions/AttributeValue"
                },
                "type": "array"
              }
            },
            "required": [
              "L"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "SS": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "SS"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "NS": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "NS"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "BS": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "BS"
            ],
            "type": "object"
          }
        ]
      },
      "TransactConditionCheck": {
        "additionalProperties": false,
        "properties": {
          "conditionExpression": {
            "type": "string"
          },
          "expressionAttributeNames": {
            "additionalProperties": {
              "type": "string"
            },
            "default": null,
            "type": [
              "object",
              "null"
            ]
          },
          "expressionAttributeValues": {
            "additionalProperties": {
              "$ref": "#/definitions/AttributeValue"
            },
            "default": null,
            "type": [
              "object",
              "null"
            ]
          },
          "key": {
            "additionalProperties": {
              "$ref": "#/definitions/AttributeValue"
            },
            "type": "object"
          },
          "tableName": {
            "type": "string"
          }
        },
        "required": [
          "conditionExpression",
          "key",
          "tableName"
        ],
        "type": "object"
      },
      "TransactDelete": {
        "additionalProperties": false,
        "properties": {
          "conditionExpression": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "expressionAttributeNames": {
            "additionalProperties": {
              "type": "string"
            },
            "default": null,
            "type": [
              "object",
              "null"
            ]
          },
          "expressionAttributeValues": {
            "additionalProperties": {
              "$ref": "#/definitions/AttributeValue"
            },
            "default": null,
            "type": [
              "object",
              "null"
            ]
          },
          "key": {
            "additionalProperties": {
              "$ref": "#/definitions/AttributeValue"
            },
            "type": "object"
          },
          "tableName": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "tableName"
        ],
        "type": "object"
      },
      "TransactPut": {
        "additionalProperties": false,
        "properties": {
          "conditionExpression": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "expressionAttributeNames": {
            "additionalProperties": {
              "type": "string"
            },
            "default": null,
            "type": [
              "object",
              "null"
            ]
          },
          "expressionAttributeValues": {
            "additionalProperties": {
              "$ref": "#/definitions/AttributeValue"
            },
            "default": null,
            "type": [
              "object",
              "null"
            ]
          },
          "item": {
            "additionalProperties": {
              "$ref": "#/definitions/AttributeValue"
            },
            "type": "object"
          },
          "tableName": {
            "type": "string"
          }
        },
        "required": [
          "item",
          "tableName"
        ],
        "type": "object"
      },
      "TransactWriteItem": {
        "additionalProperties": false,
        "properties": {
          "conditionCheck": {
            "anyOf": [
              {
                "$ref": "#/definitions/TransactConditionCheck"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "delete": {
            "anyOf": [
              {
                "$ref": "#/definitions/TransactDelete"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "put": {
            "anyOf": [
              {
                "$ref": "#/definitions/TransactPut"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "type": "object"
      }
    },
    "properties": {
      "transactItems": {
        "items": {
          "$ref": "#/definitions/TransactWriteItem"
        },
        "type": "array"
      }
    },
    "required": [
      "transactItems"
    ],
    "title": "TransactWriteItemsRequest",
    "type": "object"
  },
  "responseSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "EmptyResponse",
    "type": "object"
  }
}
