{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2022-07-26",
    "endpointPrefix": "cloudfront-keyvaluestore",
    "jsonVersion": "1.1",
    "protocol": "rest-json",
    "serviceFullName": "Amazon CloudFront KeyValueStore",
    "serviceId": "CloudFront KeyValueStore",
    "signatureVersion": "v4",
    "signingName": "cloudfront-keyvaluestore",
    "uid": "cloudfront-keyvaluestore-2022-07-26"
  },
  "operations": {
    "DeleteKey": {
      "http": {
        "method": "DELETE",
        "requestUri": "/key-value-stores/{KvsARN}/keys/{Key}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "KvsARN",
          "Key",
          "IfMatch"
        ],
        "members": {
          "KvsARN": {
            "contextParam": {
              "name": "KvsARN"
            },
            "location": "uri",
            "locationName": "KvsARN"
          },
          "Key": {
            "location": "uri",
            "locationName": "Key"
          },
          "IfMatch": {
            "location": "header",
            "locationName": "If-Match"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "ItemCount",
          "TotalSizeInBytes",
          "ETag"
        ],
        "members": {
          "ItemCount": {
            "type": "integer"
          },
          "TotalSizeInBytes": {
            "type": "long"
          },
          "ETag": {
            "location": "header",
            "locationName": "ETag"
          }
        }
      },
      "idempotent": true
    },
    "DescribeKeyValueStore": {
      "http": {
        "method": "GET",
        "requestUri": "/key-value-stores/{KvsARN}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "KvsARN"
        ],
        "members": {
          "KvsARN": {
            "contextParam": {
              "name": "KvsARN"
            },
            "location": "uri",
            "locationName": "KvsARN"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "ItemCount",
          "TotalSizeInBytes",
          "KvsARN",
          "Created",
          "ETag"
        ],
        "members": {
          "ItemCount": {
            "type": "integer"
          },
          "TotalSizeInBytes": {
            "type": "long"
          },
          "KvsARN": {},
          "Created": {
            "type": "timestamp"
          },
          "ETag": {
            "location": "header",
            "locationName": "ETag"
          },
          "LastModified": {
            "type": "timestamp"
          }
        }
      }
    },
    "GetKey": {
      "http": {
        "method": "GET",
        "requestUri": "/key-value-stores/{KvsARN}/keys/{Key}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "KvsARN",
          "Key"
        ],
        "members": {
          "KvsARN": {
            "contextParam": {
              "name": "KvsARN"
            },
            "location": "uri",
            "locationName": "KvsARN"
          },
          "Key": {
            "location": "uri",
            "locationName": "Key"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "Key",
          "Value",
          "ItemCount",
          "TotalSizeInBytes"
        ],
        "members": {
          "Key": {},
          "Value": {
            "shape": "Sd"
          },
          "ItemCount": {
            "type": "integer"
          },
          "TotalSizeInBytes": {
            "type": "long"
          }
        }
      }
    },
    "ListKeys": {
      "http": {
        "method": "GET",
        "requestUri": "/key-value-stores/{KvsARN}/keys",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "KvsARN"
        ],
        "members": {
          "KvsARN": {
            "contextParam": {
              "name": "KvsARN"
            },
            "location": "uri",
            "locationName": "KvsARN"
          },
          "NextToken": {
            "location": "querystring",
            "locationName": "NextToken"
          },
          "MaxResults": {
            "location": "querystring",
            "locationName": "MaxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextToken": {},
          "Items": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Key",
                "Value"
              ],
              "members": {
                "Key": {},
                "Value": {
                  "shape": "Sd"
                }
              }
            }
          }
        }
      }
    },
    "PutKey": {
      "http": {
        "method": "PUT",
        "requestUri": "/key-value-stores/{KvsARN}/keys/{Key}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "Key",
          "Value",
          "KvsARN",
          "IfMatch"
        ],
        "members": {
          "Key": {
            "location": "uri",
            "locationName": "Key"
          },
          "Value": {
            "shape": "Sd"
          },
          "KvsARN": {
            "contextParam": {
              "name": "KvsARN"
            },
            "location": "uri",
            "locationName": "KvsARN"
          },
          "IfMatch": {
            "location": "header",
            "locationName": "If-Match"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "ItemCount",
          "TotalSizeInBytes",
          "ETag"
        ],
        "members": {
          "ItemCount": {
            "type": "integer"
          },
          "TotalSizeInBytes": {
            "type": "long"
          },
          "ETag": {
            "location": "header",
            "locationName": "ETag"
          }
        }
      },
      "idempotent": true
    },
    "UpdateKeys": {
      "http": {
        "requestUri": "/key-value-stores/{KvsARN}/keys",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "KvsARN",
          "IfMatch"
        ],
        "members": {
          "KvsARN": {
            "contextParam": {
              "name": "KvsARN"
            },
            "location": "uri",
            "locationName": "KvsARN"
          },
          "IfMatch": {
            "location": "header",
            "locationName": "If-Match"
          },
          "Puts": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Key",
                "Value"
              ],
              "members": {
                "Key": {},
                "Value": {
                  "shape": "Sd"
                }
              }
            }
          },
          "Deletes": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Key"
              ],
              "members": {
                "Key": {}
              }
            }
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "ItemCount",
          "TotalSizeInBytes",
          "ETag"
        ],
        "members": {
          "ItemCount": {
            "type": "integer"
          },
          "TotalSizeInBytes": {
            "type": "long"
          },
          "ETag": {
            "location": "header",
            "locationName": "ETag"
          }
        }
      },
      "idempotent": true
    }
  },
  "shapes": {
    "Sd": {
      "type": "string",
      "sensitive": true
    }
  }
}