1{
2    "runOn": [
3      {
4        "minServerVersion": "4.1.10"
5      }
6    ],
7    "database_name": "default",
8    "collection_name": "default",
9    "data": [],
10    "json_schema": {
11      "properties": {
12        "encrypted_w_altname": {
13          "encrypt": {
14            "keyId": "/altname",
15            "bsonType": "string",
16            "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
17          }
18        },
19        "encrypted_string": {
20          "encrypt": {
21            "keyId": [
22              {
23                "$binary": {
24                  "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
25                  "subType": "04"
26                }
27              }
28            ],
29            "bsonType": "string",
30            "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
31          }
32        },
33        "random": {
34          "encrypt": {
35            "keyId": [
36              {
37                "$binary": {
38                  "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
39                  "subType": "04"
40                }
41              }
42            ],
43            "bsonType": "string",
44            "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
45          }
46        },
47        "encrypted_string_equivalent": {
48          "encrypt": {
49            "keyId": [
50              {
51                "$binary": {
52                  "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
53                  "subType": "04"
54                }
55              }
56            ],
57            "bsonType": "string",
58            "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
59          }
60        }
61      },
62      "bsonType": "object"
63    },
64    "key_vault_data": [
65      {
66        "status": 1,
67        "_id": {
68          "$binary": {
69            "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
70            "subType": "04"
71          }
72        },
73        "masterKey": {
74          "provider": "aws",
75          "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
76          "region": "us-east-1"
77        },
78        "updateDate": {
79          "$date": {
80            "$numberLong": "1552949630483"
81          }
82        },
83        "keyMaterial": {
84          "$binary": {
85            "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
86            "subType": "00"
87          }
88        },
89        "creationDate": {
90          "$date": {
91            "$numberLong": "1552949630483"
92          }
93        },
94        "keyAltNames": [
95          "altname",
96          "another_altname"
97        ]
98      }
99    ],
100    "tests": [
101      {
102        "description": "Insert a document with auto encryption using the AWS provider with temporary credentials",
103        "clientOptions": {
104          "autoEncryptOpts": {
105            "kmsProviders": {
106              "awsTemporary": {}
107            }
108          }
109        },
110        "operations": [
111          {
112            "name": "insertOne",
113            "arguments": {
114              "document": {
115                "_id": 1,
116                "encrypted_string": "string0"
117              }
118            }
119          }
120        ],
121        "expectations": [
122          {
123            "command_started_event": {
124              "command": {
125                "listCollections": 1,
126                "filter": {
127                  "name": "default"
128                }
129              },
130              "command_name": "listCollections"
131            }
132          },
133          {
134            "command_started_event": {
135              "command": {
136                "find": "datakeys",
137                "filter": {
138                  "$or": [
139                    {
140                      "_id": {
141                        "$in": [
142                          {
143                            "$binary": {
144                              "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
145                              "subType": "04"
146                            }
147                          }
148                        ]
149                      }
150                    },
151                    {
152                      "keyAltNames": {
153                        "$in": []
154                      }
155                    }
156                  ]
157                },
158                "$db": "keyvault"
159              },
160              "command_name": "find"
161            }
162          },
163          {
164            "command_started_event": {
165              "command": {
166                "insert": "default",
167                "documents": [
168                  {
169                    "_id": 1,
170                    "encrypted_string": {
171                      "$binary": {
172                        "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
173                        "subType": "06"
174                      }
175                    }
176                  }
177                ],
178                "ordered": true
179              },
180              "command_name": "insert"
181            }
182          }
183        ],
184        "outcome": {
185          "collection": {
186            "data": [
187              {
188                "_id": 1,
189                "encrypted_string": {
190                  "$binary": {
191                    "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
192                    "subType": "06"
193                  }
194                }
195              }
196            ]
197          }
198        }
199      },
200      {
201        "description": "Insert with invalid temporary credentials",
202        "clientOptions": {
203          "autoEncryptOpts": {
204            "kmsProviders": {
205              "awsTemporaryNoSessionToken": {}
206            }
207          }
208        },
209        "operations": [
210          {
211            "name": "insertOne",
212            "arguments": {
213              "document": {
214                "_id": 1,
215                "encrypted_string": "string0"
216              }
217            },
218            "result": {
219              "errorContains": "security token"
220            }
221          }
222        ]
223      }
224    ]
225  }
226