1{
2  "service": {
3    "actions": {
4      "CreateDhcpOptions": {
5        "request": { "operation": "CreateDhcpOptions" },
6        "resource": {
7          "type": "DhcpOptions",
8          "identifiers": [
9            { "target": "Id", "source": "response", "path": "DhcpOptions.DhcpOptionsId" }
10          ],
11          "path": "DhcpOptions"
12        }
13      },
14      "CreateInstances": {
15        "request": { "operation": "RunInstances" },
16        "resource": {
17          "type": "Instance",
18          "identifiers": [
19            { "target": "Id", "source": "response", "path": "Instances[].InstanceId" }
20          ],
21          "path": "Instances[]"
22        }
23      },
24      "CreateInternetGateway": {
25        "request": { "operation": "CreateInternetGateway" },
26        "resource": {
27          "type": "InternetGateway",
28          "identifiers": [
29            { "target": "Id", "source": "response", "path": "InternetGateway.InternetGatewayId" }
30          ],
31          "path": "InternetGateway"
32        }
33      },
34      "CreateKeyPair": {
35        "request": { "operation": "CreateKeyPair" },
36        "resource": {
37          "type": "KeyPair",
38          "identifiers": [
39            { "target": "Name", "source": "response", "path": "KeyName" }
40          ],
41          "path": "@"
42        }
43      },
44      "CreateNetworkAcl": {
45        "request": { "operation": "CreateNetworkAcl" },
46        "resource": {
47          "type": "NetworkAcl",
48          "identifiers": [
49            { "target": "Id", "source": "response", "path": "NetworkAcl.NetworkAclId" }
50          ],
51          "path": "NetworkAcl"
52        }
53      },
54      "CreateNetworkInterface": {
55        "request": { "operation": "CreateNetworkInterface" },
56        "resource": {
57          "type": "NetworkInterface",
58          "identifiers": [
59            { "target": "Id", "source": "response", "path": "NetworkInterface.NetworkInterfaceId" }
60          ],
61          "path": "NetworkInterface"
62        }
63      },
64      "CreatePlacementGroup": {
65        "request": { "operation": "CreatePlacementGroup" },
66        "resource": {
67          "type": "PlacementGroup",
68          "identifiers": [
69            { "target": "Name", "source": "requestParameter", "path": "GroupName" }
70          ]
71        }
72      },
73      "CreateRouteTable": {
74        "request": { "operation": "CreateRouteTable" },
75        "resource": {
76          "type": "RouteTable",
77          "identifiers": [
78            { "target": "Id", "source": "response", "path": "RouteTable.RouteTableId" }
79          ],
80          "path": "RouteTable"
81        }
82      },
83      "CreateSecurityGroup": {
84        "request": { "operation": "CreateSecurityGroup" },
85        "resource": {
86          "type": "SecurityGroup",
87          "identifiers": [
88            { "target": "Id", "source": "response", "path": "GroupId" }
89          ]
90        }
91      },
92      "CreateSnapshot": {
93        "request": { "operation": "CreateSnapshot" },
94        "resource": {
95          "type": "Snapshot",
96          "identifiers": [
97            { "target": "Id", "source": "response", "path": "SnapshotId" }
98          ],
99          "path": "@"
100        }
101      },
102      "CreateSubnet": {
103        "request": { "operation": "CreateSubnet" },
104        "resource": {
105          "type": "Subnet",
106          "identifiers": [
107            { "target": "Id", "source": "response", "path": "Subnet.SubnetId" }
108          ],
109          "path": "Subnet"
110        }
111      },
112      "CreateTags": {
113        "request": { "operation": "CreateTags" }
114      },
115      "CreateVolume": {
116        "request": { "operation": "CreateVolume" },
117        "resource": {
118          "type": "Volume",
119          "identifiers": [
120            { "target": "Id", "source": "response", "path": "VolumeId" }
121          ],
122          "path": "@"
123        }
124      },
125      "CreateVpc": {
126        "request": { "operation": "CreateVpc" },
127        "resource": {
128          "type": "Vpc",
129          "identifiers": [
130            { "target": "Id", "source": "response", "path": "Vpc.VpcId" }
131          ],
132          "path": "Vpc"
133        }
134      },
135      "CreateVpcPeeringConnection": {
136        "request": { "operation": "CreateVpcPeeringConnection" },
137        "resource": {
138          "type": "VpcPeeringConnection",
139          "identifiers": [
140            { "target": "Id", "source": "response", "path": "VpcPeeringConnection.VpcPeeringConnectionId" }
141          ],
142          "path": "VpcPeeringConnection"
143        }
144      },
145      "DisassociateRouteTable": {
146        "request": { "operation": "DisassociateRouteTable" }
147      },
148      "ImportKeyPair": {
149        "request": { "operation": "ImportKeyPair" },
150        "resource": {
151          "type": "KeyPairInfo",
152          "identifiers": [
153            { "target": "Name", "source": "response", "path": "KeyName" }
154          ]
155        }
156      },
157      "RegisterImage": {
158        "request": { "operation": "RegisterImage" },
159        "resource": {
160          "type": "Image",
161          "identifiers": [
162            { "target": "Id", "source": "response", "path": "ImageId" }
163          ]
164        }
165      }
166    },
167    "has": {
168      "DhcpOptions": {
169        "resource": {
170          "type": "DhcpOptions",
171          "identifiers": [
172            { "target": "Id", "source": "input" }
173          ]
174        }
175      },
176      "Image": {
177        "resource": {
178          "type": "Image",
179          "identifiers": [
180            { "target": "Id", "source": "input" }
181          ]
182        }
183      },
184      "Instance": {
185        "resource": {
186          "type": "Instance",
187          "identifiers": [
188            { "target": "Id", "source": "input" }
189          ]
190        }
191      },
192      "InternetGateway": {
193        "resource": {
194          "type": "InternetGateway",
195          "identifiers": [
196            { "target": "Id", "source": "input" }
197          ]
198        }
199      },
200      "KeyPair": {
201        "resource": {
202          "type": "KeyPairInfo",
203          "identifiers": [
204            { "target": "Name", "source": "input" }
205          ]
206        }
207      },
208      "NetworkAcl": {
209        "resource": {
210          "type": "NetworkAcl",
211          "identifiers": [
212            { "target": "Id", "source": "input" }
213          ]
214        }
215      },
216      "NetworkInterface": {
217        "resource": {
218          "type": "NetworkInterface",
219          "identifiers": [
220            { "target": "Id", "source": "input" }
221          ]
222        }
223      },
224      "PlacementGroup": {
225        "resource": {
226          "type": "PlacementGroup",
227          "identifiers": [
228            { "target": "Name", "source": "input" }
229          ]
230        }
231      },
232      "RouteTable": {
233        "resource": {
234          "type": "RouteTable",
235          "identifiers": [
236            { "target": "Id", "source": "input" }
237          ]
238        }
239      },
240      "RouteTableAssociation": {
241        "resource": {
242          "type": "RouteTableAssociation",
243          "identifiers": [
244            { "target": "Id", "source": "input" }
245          ]
246        }
247      },
248      "SecurityGroup": {
249        "resource": {
250          "type": "SecurityGroup",
251          "identifiers": [
252            { "target": "Id", "source": "input" }
253          ]
254        }
255      },
256      "Snapshot": {
257        "resource": {
258          "type": "Snapshot",
259          "identifiers": [
260            { "target": "Id", "source": "input" }
261          ]
262        }
263      },
264      "Subnet": {
265        "resource": {
266          "type": "Subnet",
267          "identifiers": [
268            { "target": "Id", "source": "input" }
269          ]
270        }
271      },
272      "Volume": {
273        "resource": {
274          "type": "Volume",
275          "identifiers": [
276            { "target": "Id", "source": "input" }
277          ]
278        }
279      },
280      "Vpc": {
281        "resource": {
282          "type": "Vpc",
283          "identifiers": [
284            { "target": "Id", "source": "input" }
285          ]
286        }
287      },
288      "VpcPeeringConnection": {
289        "resource": {
290          "type": "VpcPeeringConnection",
291          "identifiers": [
292            { "target": "Id", "source": "input" }
293          ]
294        }
295      }
296    },
297    "hasMany": {
298      "ClassicAddresses": {
299        "request": {
300          "operation": "DescribeAddresses",
301          "params": [
302            { "target": "Filters[0].Name", "source": "string", "value": "domain" },
303            { "target": "Filters[0].Values[0]", "source": "string", "value": "standard" }
304          ]
305        },
306        "resource": {
307          "type": "ClassicAddress",
308          "identifiers": [
309            { "target": "PublicIp", "source": "response", "path": "Addresses[].PublicIp" }
310          ],
311          "path": "Addresses[]"
312        }
313      },
314      "DhcpOptionsSets": {
315        "request": { "operation": "DescribeDhcpOptions" },
316        "resource": {
317          "type": "DhcpOptions",
318          "identifiers": [
319            { "target": "Id", "source": "response", "path": "DhcpOptions[].DhcpOptionsId" }
320          ],
321          "path": "DhcpOptions[]"
322        }
323      },
324      "Images": {
325        "request": { "operation": "DescribeImages" },
326        "resource": {
327          "type": "Image",
328          "identifiers": [
329            { "target": "Id", "source": "response", "path": "Images[].ImageId" }
330          ],
331          "path": "Images[]"
332        }
333      },
334      "Instances": {
335        "request": { "operation": "DescribeInstances" },
336        "resource": {
337          "type": "Instance",
338          "identifiers": [
339            { "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
340          ],
341          "path": "Reservations[].Instances[]"
342        }
343      },
344      "InternetGateways": {
345        "request": { "operation": "DescribeInternetGateways" },
346        "resource": {
347          "type": "InternetGateway",
348          "identifiers": [
349            { "target": "Id", "source": "response", "path": "InternetGateways[].InternetGatewayId" }
350          ],
351          "path": "InternetGateways[]"
352        }
353      },
354      "KeyPairs": {
355        "request": { "operation": "DescribeKeyPairs" },
356        "resource": {
357          "type": "KeyPairInfo",
358          "identifiers": [
359            { "target": "Name", "source": "response", "path": "KeyPairs[].KeyName" }
360          ],
361          "path": "KeyPairs[]"
362        }
363      },
364      "NetworkAcls": {
365        "request": { "operation": "DescribeNetworkAcls" },
366        "resource": {
367          "type": "NetworkAcl",
368          "identifiers": [
369            { "target": "Id", "source": "response", "path": "NetworkAcls[].NetworkAclId" }
370          ],
371          "path": "NetworkAcls[]"
372        }
373      },
374      "NetworkInterfaces": {
375        "request": { "operation": "DescribeNetworkInterfaces" },
376        "resource": {
377          "type": "NetworkInterface",
378          "identifiers": [
379            { "target": "Id", "source": "response", "path": "NetworkInterfaces[].NetworkInterfaceId" }
380          ],
381          "path": "NetworkInterfaces[]"
382        }
383      },
384      "PlacementGroups": {
385        "request": { "operation": "DescribePlacementGroups" },
386        "resource": {
387          "type": "PlacementGroup",
388          "identifiers": [
389            { "target": "Name", "source": "response", "path": "PlacementGroups[].GroupName" }
390          ],
391          "path": "PlacementGroups[]"
392        }
393      },
394      "RouteTables": {
395        "request": { "operation": "DescribeRouteTables" },
396        "resource": {
397          "type": "RouteTable",
398          "identifiers": [
399            { "target": "Id", "source": "response", "path": "RouteTables[].RouteTableId" }
400          ],
401          "path": "RouteTables[]"
402        }
403      },
404      "SecurityGroups": {
405        "request": { "operation": "DescribeSecurityGroups" },
406        "resource": {
407          "type": "SecurityGroup",
408          "identifiers": [
409            { "target": "Id", "source": "response", "path": "SecurityGroups[].GroupId" }
410          ],
411          "path": "SecurityGroups[]"
412        }
413      },
414      "Snapshots": {
415        "request": { "operation": "DescribeSnapshots" },
416        "resource": {
417          "type": "Snapshot",
418          "identifiers": [
419            { "target": "Id", "source": "response", "path": "Snapshots[].SnapshotId" }
420          ],
421          "path": "Snapshots[]"
422        }
423      },
424      "Subnets": {
425        "request": { "operation": "DescribeSubnets" },
426        "resource": {
427          "type": "Subnet",
428          "identifiers": [
429            { "target": "Id", "source": "response", "path": "Subnets[].SubnetId" }
430          ],
431          "path": "Subnets[]"
432        }
433      },
434      "Volumes": {
435        "request": { "operation": "DescribeVolumes" },
436        "resource": {
437          "type": "Volume",
438          "identifiers": [
439            { "target": "Id", "source": "response", "path": "Volumes[].VolumeId" }
440          ],
441          "path": "Volumes[]"
442        }
443      },
444      "VpcAddresses": {
445        "request": {
446          "operation": "DescribeAddresses",
447          "params": [
448            { "target": "Filters[0].Name", "source": "string", "value": "domain" },
449            { "target": "Filters[0].Values[0]", "source": "string", "value": "vpc" }
450          ]
451        },
452        "resource": {
453          "type": "VpcAddress",
454          "identifiers": [
455            { "target": "AllocationId", "source": "response", "path": "Addresses[].AllocationId" }
456          ],
457          "path": "Addresses[]"
458        }
459      },
460      "VpcPeeringConnections": {
461        "request": { "operation": "DescribeVpcPeeringConnections" },
462        "resource": {
463          "type": "VpcPeeringConnection",
464          "identifiers": [
465            { "target": "Id", "source": "response", "path": "VpcPeeringConnections[].VpcPeeringConnectionId" }
466          ],
467          "path": "VpcPeeringConnections[]"
468        }
469      },
470      "Vpcs": {
471        "request": { "operation": "DescribeVpcs" },
472        "resource": {
473          "type": "Vpc",
474          "identifiers": [
475            { "target": "Id", "source": "response", "path": "Vpcs[].VpcId" }
476          ],
477          "path": "Vpcs[]"
478        }
479      }
480    }
481  },
482  "resources": {
483    "ClassicAddress": {
484      "identifiers": [
485        {
486          "name": "PublicIp"
487        }
488      ],
489      "shape": "Address",
490      "load": {
491        "request": {
492          "operation": "DescribeAddresses",
493          "params": [
494            { "target": "PublicIps[]", "source": "identifier", "name": "PublicIp" }
495          ]
496        },
497        "path": "Addresses[0]"
498      },
499      "actions": {
500        "Associate": {
501          "request": {
502            "operation": "AssociateAddress",
503            "params": [
504              { "target": "PublicIp", "source": "identifier", "name": "PublicIp" }
505            ]
506          }
507        },
508        "Disassociate": {
509          "request": {
510            "operation": "DisassociateAddress",
511            "params": [
512              { "target": "PublicIp", "source": "data", "path": "PublicIp" }
513            ]
514          }
515        },
516        "Release": {
517          "request": {
518            "operation": "ReleaseAddress",
519            "params": [
520              { "target": "PublicIp", "source": "data", "path": "PublicIp" }
521            ]
522          }
523        }
524      }
525    },
526    "DhcpOptions": {
527      "identifiers": [
528        {
529          "name": "Id",
530          "memberName": "DhcpOptionsId"
531        }
532      ],
533      "shape": "DhcpOptions",
534      "load": {
535        "request": {
536          "operation": "DescribeDhcpOptions",
537          "params": [
538            { "target": "DhcpOptionsIds[0]", "source": "identifier", "name": "Id" }
539          ]
540        },
541        "path": "DhcpOptions[0]"
542      },
543      "actions": {
544        "AssociateWithVpc": {
545          "request": {
546            "operation": "AssociateDhcpOptions",
547            "params": [
548              { "target": "DhcpOptionsId", "source": "identifier", "name": "Id" }
549            ]
550          }
551        },
552        "CreateTags": {
553          "request": {
554            "operation": "CreateTags",
555            "params": [
556              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
557            ]
558          },
559          "resource": {
560            "type": "Tag",
561            "identifiers": [
562              { "target": "ResourceId", "source": "identifier", "name": "Id" },
563              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
564              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
565            ]
566          }
567        },
568        "Delete": {
569          "request": {
570            "operation": "DeleteDhcpOptions",
571            "params": [
572              { "target": "DhcpOptionsId", "source": "identifier", "name": "Id" }
573            ]
574          }
575        }
576      }
577    },
578    "Image": {
579      "identifiers": [
580        {
581          "name": "Id",
582          "memberName": "ImageId"
583        }
584      ],
585      "shape": "Image",
586      "load": {
587        "request": {
588          "operation": "DescribeImages",
589          "params": [
590            { "target": "ImageIds[0]", "source": "identifier", "name": "Id" }
591          ]
592        },
593        "path": "Images[0]"
594      },
595      "actions": {
596        "CreateTags": {
597          "request": {
598            "operation": "CreateTags",
599            "params": [
600              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
601            ]
602          },
603          "resource": {
604            "type": "Tag",
605            "identifiers": [
606              { "target": "ResourceId", "source": "identifier", "name": "Id" },
607              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
608              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
609            ]
610          }
611        },
612        "Deregister": {
613          "request": {
614            "operation": "DeregisterImage",
615            "params": [
616              { "target": "ImageId", "source": "identifier", "name": "Id" }
617            ]
618          }
619        },
620        "DescribeAttribute": {
621          "request": {
622            "operation": "DescribeImageAttribute",
623            "params": [
624              { "target": "ImageId", "source": "identifier", "name": "Id" }
625            ]
626          }
627        },
628        "ModifyAttribute": {
629          "request": {
630            "operation": "ModifyImageAttribute",
631            "params": [
632              { "target": "ImageId", "source": "identifier", "name": "Id" }
633            ]
634          }
635        },
636        "ResetAttribute": {
637          "request": {
638            "operation": "ResetImageAttribute",
639            "params": [
640              { "target": "ImageId", "source": "identifier", "name": "Id" }
641            ]
642          }
643        }
644      }
645    },
646    "Instance": {
647      "identifiers": [
648        {
649          "name": "Id",
650          "memberName": "InstanceId"
651        }
652      ],
653      "shape": "Instance",
654      "load": {
655        "request": {
656          "operation": "DescribeInstances",
657          "params": [
658            { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
659          ]
660        },
661        "path": "Reservations[0].Instances[0]"
662      },
663      "actions": {
664        "AttachClassicLinkVpc": {
665          "request": {
666            "operation": "AttachClassicLinkVpc",
667            "params": [
668              { "target": "InstanceId", "source": "identifier", "name": "Id" }
669            ]
670          }
671        },
672        "AttachVolume": {
673          "request": {
674            "operation": "AttachVolume",
675            "params": [
676              { "target": "InstanceId", "source": "identifier", "name": "Id" }
677            ]
678          }
679        },
680        "ConsoleOutput": {
681          "request": {
682            "operation": "GetConsoleOutput",
683            "params": [
684              { "target": "InstanceId", "source": "identifier", "name": "Id" }
685            ]
686          }
687        },
688        "CreateImage": {
689          "request": {
690            "operation": "CreateImage",
691            "params": [
692              { "target": "InstanceId", "source": "identifier", "name": "Id" }
693            ]
694          },
695          "resource": {
696            "type": "Image",
697            "identifiers": [
698              { "target": "Id", "source": "response", "path": "ImageId" }
699            ]
700          }
701        },
702        "CreateTags": {
703          "request": {
704            "operation": "CreateTags",
705            "params": [
706              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
707            ]
708          },
709          "resource": {
710            "type": "Tag",
711            "identifiers": [
712              { "target": "ResourceId", "source": "identifier", "name": "Id" },
713              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
714              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
715            ]
716          }
717        },
718        "DescribeAttribute": {
719          "request": {
720            "operation": "DescribeInstanceAttribute",
721            "params": [
722              { "target": "InstanceId", "source": "identifier", "name": "Id" }
723            ]
724          }
725        },
726        "DetachClassicLinkVpc": {
727          "request": {
728            "operation": "DetachClassicLinkVpc",
729            "params": [
730              { "target": "InstanceId", "source": "identifier", "name": "Id" }
731            ]
732          }
733        },
734        "DetachVolume": {
735          "request": {
736            "operation": "DetachVolume",
737            "params": [
738              { "target": "InstanceId", "source": "identifier", "name": "Id" }
739            ]
740          }
741        },
742        "ModifyAttribute": {
743          "request": {
744            "operation": "ModifyInstanceAttribute",
745            "params": [
746              { "target": "InstanceId", "source": "identifier", "name": "Id" }
747            ]
748          }
749        },
750        "Monitor": {
751          "request": {
752            "operation": "MonitorInstances",
753            "params": [
754              { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
755            ]
756          }
757        },
758        "PasswordData": {
759          "request": {
760            "operation": "GetPasswordData",
761            "params": [
762              { "target": "InstanceId", "source": "identifier", "name": "Id" }
763            ]
764          }
765        },
766        "Reboot": {
767          "request": {
768            "operation": "RebootInstances",
769            "params": [
770              { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
771            ]
772          }
773        },
774        "ReportStatus": {
775          "request": {
776            "operation": "ReportInstanceStatus",
777            "params": [
778              { "target": "Instances[0]", "source": "identifier", "name": "Id" }
779            ]
780          }
781        },
782        "ResetAttribute": {
783          "request": {
784            "operation": "ResetInstanceAttribute",
785            "params": [
786              { "target": "InstanceId", "source": "identifier", "name": "Id" }
787            ]
788          }
789        },
790        "ResetKernel": {
791          "request": {
792            "operation": "ResetInstanceAttribute",
793            "params": [
794              { "target": "InstanceId", "source": "identifier", "name": "Id" },
795              { "target": "Attribute", "source": "string", "value": "kernel" }
796            ]
797          }
798        },
799        "ResetRamdisk": {
800          "request": {
801            "operation": "ResetInstanceAttribute",
802            "params": [
803              { "target": "InstanceId", "source": "identifier", "name": "Id" },
804              { "target": "Attribute", "source": "string", "value": "ramdisk" }
805            ]
806          }
807        },
808        "ResetSourceDestCheck": {
809          "request": {
810            "operation": "ResetInstanceAttribute",
811            "params": [
812              { "target": "InstanceId", "source": "identifier", "name": "Id" },
813              { "target": "Attribute", "source": "string", "value": "sourceDestCheck" }
814            ]
815          }
816        },
817        "Start": {
818          "request": {
819            "operation": "StartInstances",
820            "params": [
821              { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
822            ]
823          }
824        },
825        "Stop": {
826          "request": {
827            "operation": "StopInstances",
828            "params": [
829              { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
830            ]
831          }
832        },
833        "Terminate": {
834          "request": {
835            "operation": "TerminateInstances",
836            "params": [
837              { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
838            ]
839          }
840        },
841        "Unmonitor": {
842          "request": {
843            "operation": "UnmonitorInstances",
844            "params": [
845              { "target": "InstanceIds[0]", "source": "identifier", "name": "Id" }
846            ]
847          }
848        }
849      },
850      "batchActions": {
851        "CreateTags": {
852          "request": {
853            "operation": "CreateTags",
854            "params": [
855              { "target": "Resources[]", "source": "identifier", "name": "Id" }
856            ]
857          }
858        },
859        "Monitor": {
860          "request": {
861            "operation": "MonitorInstances",
862            "params": [
863              { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
864            ]
865          }
866        },
867        "Reboot": {
868          "request": {
869            "operation": "RebootInstances",
870            "params": [
871              { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
872            ]
873          }
874        },
875        "Start": {
876          "request": {
877            "operation": "StartInstances",
878            "params": [
879              { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
880            ]
881          }
882        },
883        "Stop": {
884          "request": {
885            "operation": "StopInstances",
886            "params": [
887              { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
888            ]
889          }
890        },
891        "Terminate": {
892          "request": {
893            "operation": "TerminateInstances",
894            "params": [
895              { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
896            ]
897          }
898        },
899        "Unmonitor": {
900          "request": {
901            "operation": "UnmonitorInstances",
902            "params": [
903              { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
904            ]
905          }
906        }
907      },
908      "waiters": {
909        "Exists": {
910          "waiterName": "InstanceExists",
911          "params": [
912            { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
913          ],
914          "path": "Reservations[0].Instances[0]"
915        },
916        "Running": {
917          "waiterName": "InstanceRunning",
918          "params": [
919            { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
920          ],
921          "path": "Reservations[0].Instances[0]"
922        },
923        "Stopped": {
924          "waiterName": "InstanceStopped",
925          "params": [
926            { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
927          ],
928          "path": "Reservations[0].Instances[0]"
929        },
930        "Terminated": {
931          "waiterName": "InstanceTerminated",
932          "params": [
933            { "target": "InstanceIds[]", "source": "identifier", "name": "Id" }
934          ],
935          "path": "Reservations[0].Instances[0]"
936        }
937      },
938      "has": {
939        "ClassicAddress": {
940          "resource": {
941            "type": "ClassicAddress",
942            "identifiers": [
943              { "target": "PublicIp", "source": "data", "path": "PublicIpAddress" }
944            ]
945          }
946        },
947        "Image": {
948          "resource": {
949            "type": "Image",
950            "identifiers": [
951              { "target": "Id", "source": "data", "path": "ImageId" }
952            ]
953          }
954        },
955        "KeyPair": {
956          "resource": {
957            "type": "KeyPairInfo",
958            "identifiers": [
959              { "target": "Name", "source": "data", "path": "KeyName" }
960            ]
961          }
962        },
963        "NetworkInterfaces": {
964          "resource": {
965            "type": "NetworkInterface",
966            "identifiers": [
967              { "target": "Id", "source": "data", "path": "NetworkInterfaces[].NetworkInterfaceId" }
968            ],
969            "path": "NetworkInterfaces[]"
970          }
971        },
972        "PlacementGroup": {
973          "resource": {
974            "type": "PlacementGroup",
975            "identifiers": [
976              { "target": "Name", "source": "data", "path": "Placement.GroupName" }
977            ]
978          }
979        },
980        "Subnet": {
981          "resource": {
982            "type": "Subnet",
983            "identifiers": [
984              { "target": "Id", "source": "data", "path": "SubnetId" }
985            ]
986          }
987        },
988        "Vpc": {
989          "resource": {
990            "type": "Vpc",
991            "identifiers": [
992              { "target": "Id", "source": "data", "path": "VpcId" }
993            ]
994          }
995        }
996      },
997      "hasMany": {
998        "Volumes": {
999          "request": {
1000            "operation": "DescribeVolumes",
1001            "params": [
1002              { "target": "Filters[0].Name", "source": "string", "value": "attachment.instance-id" },
1003              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
1004            ]
1005          },
1006          "resource": {
1007            "type": "Volume",
1008            "identifiers": [
1009              { "target": "Id", "source": "response", "path": "Volumes[].VolumeId" }
1010            ],
1011            "path": "Volumes[]"
1012          }
1013        },
1014        "VpcAddresses": {
1015          "request": {
1016            "operation": "DescribeAddresses",
1017            "params": [
1018              { "target": "Filters[0].Name", "source": "string", "value": "instance-id" },
1019              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
1020            ]
1021          },
1022          "resource": {
1023            "type": "VpcAddress",
1024            "identifiers": [
1025              { "target": "AllocationId", "source": "response", "path": "Addresses[].AllocationId" }
1026            ],
1027            "path": "Addresses[]"
1028          }
1029        }
1030      }
1031    },
1032    "InternetGateway": {
1033      "identifiers": [
1034        {
1035          "name": "Id",
1036          "memberName": "InternetGatewayId"
1037        }
1038      ],
1039      "shape": "InternetGateway",
1040      "load": {
1041        "request": {
1042          "operation": "DescribeInternetGateways",
1043          "params": [
1044            { "target": "InternetGatewayIds[0]", "source": "identifier", "name": "Id" }
1045          ]
1046        },
1047        "path": "InternetGateways[0]"
1048      },
1049      "actions": {
1050        "AttachToVpc": {
1051          "request": {
1052            "operation": "AttachInternetGateway",
1053            "params": [
1054              { "target": "InternetGatewayId", "source": "identifier", "name": "Id" }
1055            ]
1056          }
1057        },
1058        "CreateTags": {
1059          "request": {
1060            "operation": "CreateTags",
1061            "params": [
1062              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1063            ]
1064          },
1065          "resource": {
1066            "type": "Tag",
1067            "identifiers": [
1068              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1069              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1070              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1071            ]
1072          }
1073        },
1074        "Delete": {
1075          "request": {
1076            "operation": "DeleteInternetGateway",
1077            "params": [
1078              { "target": "InternetGatewayId", "source": "identifier", "name": "Id" }
1079            ]
1080          }
1081        },
1082        "DetachFromVpc": {
1083          "request": {
1084            "operation": "DetachInternetGateway",
1085            "params": [
1086              { "target": "InternetGatewayId", "source": "identifier", "name": "Id" }
1087            ]
1088          }
1089        }
1090      }
1091    },
1092    "KeyPair": {
1093      "identifiers": [
1094        {
1095          "name": "Name",
1096          "memberName": "KeyName"
1097        }
1098      ],
1099      "shape": "KeyPair",
1100      "actions": {
1101        "Delete": {
1102          "request": {
1103            "operation": "DeleteKeyPair",
1104            "params": [
1105              { "target": "KeyName", "source": "identifier", "name": "Name" }
1106            ]
1107          }
1108        }
1109      }
1110    },
1111    "KeyPairInfo": {
1112      "identifiers": [
1113        {
1114          "name": "Name",
1115          "memberName": "KeyName"
1116        }
1117      ],
1118      "shape": "KeyPairInfo",
1119      "load": {
1120        "request": {
1121          "operation": "DescribeKeyPairs",
1122          "params": [
1123            { "target": "KeyNames[0]", "source": "identifier", "name": "Name" }
1124          ]
1125        },
1126        "path": "KeyPairs[0]"
1127      },
1128      "actions": {
1129        "Delete": {
1130          "request": {
1131            "operation": "DeleteKeyPair",
1132            "params": [
1133              { "target": "KeyName", "source": "identifier", "name": "Name" }
1134            ]
1135          }
1136        }
1137      }
1138    },
1139    "NetworkAcl": {
1140      "identifiers": [
1141        {
1142          "name": "Id",
1143          "memberName": "NetworkAclId"
1144        }
1145      ],
1146      "shape": "NetworkAcl",
1147      "load": {
1148        "request": {
1149          "operation": "DescribeNetworkAcls",
1150          "params": [
1151            { "target": "NetworkAclIds[0]", "source": "identifier", "name": "Id" }
1152          ]
1153        },
1154        "path": "NetworkAcls[0]"
1155      },
1156      "actions": {
1157        "CreateEntry": {
1158          "request": {
1159            "operation": "CreateNetworkAclEntry",
1160            "params": [
1161              { "target": "NetworkAclId", "source": "identifier", "name": "Id" }
1162            ]
1163          }
1164        },
1165        "CreateTags": {
1166          "request": {
1167            "operation": "CreateTags",
1168            "params": [
1169              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1170            ]
1171          },
1172          "resource": {
1173            "type": "Tag",
1174            "identifiers": [
1175              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1176              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1177              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1178            ]
1179          }
1180        },
1181        "Delete": {
1182          "request": {
1183            "operation": "DeleteNetworkAcl",
1184            "params": [
1185              { "target": "NetworkAclId", "source": "identifier", "name": "Id" }
1186            ]
1187          }
1188        },
1189        "DeleteEntry": {
1190          "request": {
1191            "operation": "DeleteNetworkAclEntry",
1192            "params": [
1193              { "target": "NetworkAclId", "source": "identifier", "name": "Id" }
1194            ]
1195          }
1196        },
1197        "ReplaceAssociation": {
1198          "request": {
1199            "operation": "ReplaceNetworkAclAssociation",
1200            "params": [
1201              { "target": "NetworkAclId", "source": "identifier", "name": "Id" }
1202            ]
1203          }
1204        },
1205        "ReplaceEntry": {
1206          "request": {
1207            "operation": "ReplaceNetworkAclEntry",
1208            "params": [
1209              { "target": "NetworkAclId", "source": "identifier", "name": "Id" }
1210            ]
1211          }
1212        }
1213      },
1214      "has": {
1215        "Vpc": {
1216          "resource": {
1217            "type": "Vpc",
1218            "identifiers": [
1219              { "target": "Id", "source": "data", "path": "VpcId" }
1220            ]
1221          }
1222        }
1223      }
1224    },
1225    "NetworkInterface": {
1226      "identifiers": [
1227        {
1228          "name": "Id",
1229          "memberName": "NetworkInterfaceId"
1230        }
1231      ],
1232      "shape": "NetworkInterface",
1233      "load": {
1234        "request": {
1235          "operation": "DescribeNetworkInterfaces",
1236          "params": [
1237            { "target": "NetworkInterfaceIds[0]", "source": "identifier", "name": "Id" }
1238          ]
1239        },
1240        "path": "NetworkInterfaces[0]"
1241      },
1242      "actions": {
1243        "AssignPrivateIpAddresses": {
1244          "request": {
1245            "operation": "AssignPrivateIpAddresses",
1246            "params": [
1247              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1248            ]
1249          }
1250        },
1251        "Attach": {
1252          "request": {
1253            "operation": "AttachNetworkInterface",
1254            "params": [
1255              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1256            ]
1257          }
1258        },
1259        "CreateTags": {
1260          "request": {
1261            "operation": "CreateTags",
1262            "params": [
1263              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1264            ]
1265          },
1266          "resource": {
1267            "type": "Tag",
1268            "identifiers": [
1269              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1270              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1271              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1272            ]
1273          }
1274        },
1275        "Delete": {
1276          "request": {
1277            "operation": "DeleteNetworkInterface",
1278            "params": [
1279              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1280            ]
1281          }
1282        },
1283        "DescribeAttribute": {
1284          "request": {
1285            "operation": "DescribeNetworkInterfaceAttribute",
1286            "params": [
1287              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1288            ]
1289          }
1290        },
1291        "Detach": {
1292          "request": {
1293            "operation": "DetachNetworkInterface",
1294            "params": [
1295              { "target": "AttachmentId", "source": "data", "path": "Attachment.AttachmentId" }
1296            ]
1297          }
1298        },
1299        "ModifyAttribute": {
1300          "request": {
1301            "operation": "ModifyNetworkInterfaceAttribute",
1302            "params": [
1303              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1304            ]
1305          }
1306        },
1307        "ResetAttribute": {
1308          "request": {
1309            "operation": "ResetNetworkInterfaceAttribute",
1310            "params": [
1311              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1312            ]
1313          }
1314        },
1315        "UnassignPrivateIpAddresses": {
1316          "request": {
1317            "operation": "UnassignPrivateIpAddresses",
1318            "params": [
1319              { "target": "NetworkInterfaceId", "source": "identifier", "name": "Id" }
1320            ]
1321          }
1322        }
1323      },
1324      "has": {
1325        "Association": {
1326          "resource": {
1327            "type": "NetworkInterfaceAssociation",
1328            "identifiers": [
1329              { "target": "Id", "source": "data", "path": "Association.AssociationId" }
1330            ],
1331            "path": "Association"
1332          }
1333        },
1334        "Subnet": {
1335          "resource": {
1336            "type": "Subnet",
1337            "identifiers": [
1338              { "target": "Id", "source": "data", "path": "SubnetId" }
1339            ]
1340          }
1341        },
1342        "Vpc": {
1343          "resource": {
1344            "type": "Vpc",
1345            "identifiers": [
1346              { "target": "Id", "source": "data", "path": "VpcId" }
1347            ]
1348          }
1349        }
1350      }
1351    },
1352    "NetworkInterfaceAssociation": {
1353      "identifiers": [
1354        {
1355          "name": "Id"
1356        }
1357      ],
1358      "shape": "InstanceNetworkInterfaceAssociation",
1359      "load": {
1360        "request": {
1361          "operation": "DescribeNetworkInterfaces",
1362          "params": [
1363            { "target": "Filters[0].Name", "source": "string", "value": "association.association-id" },
1364            { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
1365          ]
1366        },
1367        "path": "NetworkInterfaces[0].Association"
1368      },
1369      "actions": {
1370        "Delete": {
1371          "request": {
1372            "operation": "DisassociateAddress",
1373            "params": [
1374              { "target": "AssociationId", "source": "identifier", "name": "Id" }
1375            ]
1376          }
1377        }
1378      },
1379      "has": {
1380        "Address": {
1381          "resource": {
1382            "type": "VpcAddress",
1383            "identifiers": [
1384              { "target": "AllocationId", "source": "data", "path": "AllocationId" }
1385            ]
1386          }
1387        }
1388      }
1389    },
1390    "PlacementGroup": {
1391      "identifiers": [
1392        {
1393          "name": "Name",
1394          "memberName": "GroupName"
1395        }
1396      ],
1397      "shape": "PlacementGroup",
1398      "load": {
1399        "request": {
1400          "operation": "DescribePlacementGroups",
1401          "params": [
1402            { "target": "GroupNames[0]", "source": "identifier", "name": "Name" }
1403          ]
1404        },
1405        "path": "PlacementGroups[0]"
1406      },
1407      "actions": {
1408        "Delete": {
1409          "request": {
1410            "operation": "DeletePlacementGroup",
1411            "params": [
1412              { "target": "GroupName", "source": "identifier", "name": "Name" }
1413            ]
1414          }
1415        }
1416      },
1417      "hasMany": {
1418        "Instances": {
1419          "request": {
1420            "operation": "DescribeInstances",
1421            "params": [
1422              { "target": "Filters[0].Name", "source": "string", "value": "placement-group-name" },
1423              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Name" }
1424            ]
1425          },
1426          "resource": {
1427            "type": "Instance",
1428            "identifiers": [
1429              { "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
1430            ],
1431            "path": "Reservations[].Instances[]"
1432          }
1433        }
1434      }
1435    },
1436    "Route": {
1437      "identifiers": [
1438        { "name": "RouteTableId" },
1439        {
1440          "name": "DestinationCidrBlock",
1441          "memberName": "DestinationCidrBlock"
1442        }
1443      ],
1444      "shape": "Route",
1445      "actions": {
1446        "Delete": {
1447          "request": {
1448            "operation": "DeleteRoute",
1449            "params": [
1450              { "target": "RouteTableId", "source": "identifier", "name": "RouteTableId" },
1451              { "target": "DestinationCidrBlock", "source": "identifier", "name": "DestinationCidrBlock" }
1452            ]
1453          }
1454        },
1455        "Replace": {
1456          "request": {
1457            "operation": "ReplaceRoute",
1458            "params": [
1459              { "target": "RouteTableId", "source": "identifier", "name": "RouteTableId" },
1460              { "target": "DestinationCidrBlock", "source": "identifier", "name": "DestinationCidrBlock" }
1461            ]
1462          }
1463        }
1464      },
1465      "has": {
1466        "RouteTable": {
1467          "resource": {
1468            "type": "RouteTable",
1469            "identifiers": [
1470              { "target": "Id", "source": "identifier", "name": "RouteTableId" }
1471            ]
1472          }
1473        }
1474      }
1475    },
1476    "RouteTable": {
1477      "identifiers": [
1478        {
1479          "name": "Id",
1480          "memberName": "RouteTableId"
1481        }
1482      ],
1483      "shape": "RouteTable",
1484      "load": {
1485        "request": {
1486          "operation": "DescribeRouteTables",
1487          "params": [
1488            { "target": "RouteTableIds[0]", "source": "identifier", "name": "Id" }
1489          ]
1490        },
1491        "path": "RouteTables[0]"
1492      },
1493      "actions": {
1494        "AssociateWithSubnet": {
1495          "request": {
1496            "operation": "AssociateRouteTable",
1497            "params": [
1498              { "target": "RouteTableId", "source": "identifier", "name": "Id" }
1499            ]
1500          },
1501          "resource": {
1502            "type": "RouteTableAssociation",
1503            "identifiers": [
1504              { "target": "Id", "source": "response", "path": "AssociationId" }
1505            ]
1506          }
1507        },
1508        "CreateRoute": {
1509          "request": {
1510            "operation": "CreateRoute",
1511            "params": [
1512              { "target": "RouteTableId", "source": "identifier", "name": "Id" }
1513            ]
1514          },
1515          "resource": {
1516            "type": "Route",
1517            "identifiers": [
1518              { "target": "RouteTableId", "source": "identifier", "name": "Id" },
1519              { "target": "DestinationCidrBlock", "source": "requestParameter", "path": "DestinationCidrBlock" }
1520            ]
1521          }
1522        },
1523        "CreateTags": {
1524          "request": {
1525            "operation": "CreateTags",
1526            "params": [
1527              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1528            ]
1529          },
1530          "resource": {
1531            "type": "Tag",
1532            "identifiers": [
1533              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1534              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1535              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1536            ]
1537          }
1538        },
1539        "Delete": {
1540          "request": {
1541            "operation": "DeleteRouteTable",
1542            "params": [
1543              { "target": "RouteTableId", "source": "identifier", "name": "Id" }
1544            ]
1545          }
1546        }
1547      },
1548      "has": {
1549        "Routes": {
1550          "resource": {
1551            "type": "Route",
1552            "identifiers": [
1553              { "target": "RouteTableId", "source": "identifier", "name": "Id" },
1554              { "target": "DestinationCidrBlock", "source": "data", "path": "Routes[].DestinationCidrBlock" }
1555            ],
1556            "path": "Routes[]"
1557          }
1558        },
1559        "Vpc": {
1560          "resource": {
1561            "type": "Vpc",
1562            "identifiers": [
1563              { "target": "Id", "source": "data", "path": "VpcId" }
1564            ]
1565          }
1566        }
1567      },
1568      "hasMany": {
1569        "Associations": {
1570          "request": {
1571            "operation": "DescribeRouteTables",
1572            "params": [
1573              { "target": "RouteTableIds[0]", "source": "identifier", "name": "Id" }
1574            ]
1575          },
1576          "resource": {
1577            "type": "RouteTableAssociation",
1578            "identifiers": [
1579              { "target": "Id", "source": "response", "path": "RouteTables[0].Associations[].RouteTableAssociationId" }
1580            ],
1581            "path": "RouteTables[0].Associations[]"
1582          }
1583        }
1584      }
1585    },
1586    "RouteTableAssociation": {
1587      "identifiers": [
1588        {
1589          "name": "Id",
1590          "memberName": "RouteTableAssociationId"
1591        }
1592      ],
1593      "shape": "RouteTableAssociation",
1594      "actions": {
1595        "Delete": {
1596          "request": {
1597            "operation": "DisassociateRouteTable",
1598            "params": [
1599              { "target": "AssociationId", "source": "identifier", "name": "Id" }
1600            ]
1601          }
1602        },
1603        "ReplaceSubnet": {
1604          "request": {
1605            "operation": "ReplaceRouteTableAssociation",
1606            "params": [
1607              { "target": "AssociationId", "source": "identifier", "name": "Id" }
1608            ]
1609          },
1610          "resource": {
1611            "type": "RouteTableAssociation",
1612            "identifiers": [
1613              { "target": "Id", "source": "response", "path": "NewAssociationId" }
1614            ]
1615          }
1616        }
1617      },
1618      "has": {
1619        "RouteTable": {
1620          "resource": {
1621            "type": "RouteTable",
1622            "identifiers": [
1623              { "target": "Id", "source": "data", "path": "RouteTableId" }
1624            ]
1625          }
1626        },
1627        "Subnet": {
1628          "resource": {
1629            "type": "Subnet",
1630            "identifiers": [
1631              { "target": "Id", "source": "data", "path": "SubnetId" }
1632            ]
1633          }
1634        }
1635      }
1636    },
1637    "SecurityGroup": {
1638      "identifiers": [
1639        {
1640          "name": "Id",
1641          "memberName": "GroupId"
1642        }
1643      ],
1644      "shape": "SecurityGroup",
1645      "load": {
1646        "request": {
1647          "operation": "DescribeSecurityGroups",
1648          "params": [
1649            { "target": "GroupIds[0]", "source": "identifier", "name": "Id" }
1650          ]
1651        },
1652        "path": "SecurityGroups[0]"
1653      },
1654      "actions": {
1655        "AuthorizeEgress": {
1656          "request": {
1657            "operation": "AuthorizeSecurityGroupEgress",
1658            "params": [
1659              { "target": "GroupId", "source": "identifier", "name": "Id" }
1660            ]
1661          }
1662        },
1663        "AuthorizeIngress": {
1664          "request": {
1665            "operation": "AuthorizeSecurityGroupIngress",
1666            "params": [
1667              { "target": "GroupId", "source": "identifier", "name": "Id" }
1668            ]
1669          }
1670        },
1671        "CreateTags": {
1672          "request": {
1673            "operation": "CreateTags",
1674            "params": [
1675              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1676            ]
1677          },
1678          "resource": {
1679            "type": "Tag",
1680            "identifiers": [
1681              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1682              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1683              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1684            ]
1685          }
1686        },
1687        "Delete": {
1688          "request": {
1689            "operation": "DeleteSecurityGroup",
1690            "params": [
1691              { "target": "GroupId", "source": "identifier", "name": "Id" }
1692            ]
1693          }
1694        },
1695        "RevokeEgress": {
1696          "request": {
1697            "operation": "RevokeSecurityGroupEgress",
1698            "params": [
1699              { "target": "GroupId", "source": "identifier", "name": "Id" }
1700            ]
1701          }
1702        },
1703        "RevokeIngress": {
1704          "request": {
1705            "operation": "RevokeSecurityGroupIngress",
1706            "params": [
1707              { "target": "GroupId", "source": "identifier", "name": "Id" }
1708            ]
1709          }
1710        }
1711      }
1712    },
1713    "Snapshot": {
1714      "identifiers": [
1715        {
1716          "name": "Id",
1717          "memberName": "SnapshotId"
1718        }
1719      ],
1720      "shape": "Snapshot",
1721      "load": {
1722        "request": {
1723          "operation": "DescribeSnapshots",
1724          "params": [
1725            { "target": "SnapshotIds[0]", "source": "identifier", "name": "Id" }
1726          ]
1727        },
1728        "path": "Snapshots[0]"
1729      },
1730      "actions": {
1731        "Copy": {
1732          "request": {
1733            "operation": "CopySnapshot",
1734            "params": [
1735              { "target": "SourceSnapshotId", "source": "identifier", "name": "Id" }
1736            ]
1737          }
1738        },
1739        "CreateTags": {
1740          "request": {
1741            "operation": "CreateTags",
1742            "params": [
1743              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1744            ]
1745          },
1746          "resource": {
1747            "type": "Tag",
1748            "identifiers": [
1749              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1750              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1751              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1752            ]
1753          }
1754        },
1755        "Delete": {
1756          "request": {
1757            "operation": "DeleteSnapshot",
1758            "params": [
1759              { "target": "SnapshotId", "source": "identifier", "name": "Id" }
1760            ]
1761          }
1762        },
1763        "DescribeAttribute": {
1764          "request": {
1765            "operation": "DescribeSnapshotAttribute",
1766            "params": [
1767              { "target": "SnapshotId", "source": "identifier", "name": "Id" }
1768            ]
1769          }
1770        },
1771        "ModifyAttribute": {
1772          "request": {
1773            "operation": "ModifySnapshotAttribute",
1774            "params": [
1775              { "target": "SnapshotId", "source": "identifier", "name": "Id" }
1776            ]
1777          }
1778        },
1779        "ResetAttribute": {
1780          "request": {
1781            "operation": "ResetSnapshotAttribute",
1782            "params": [
1783              { "target": "SnapshotId", "source": "identifier", "name": "Id" }
1784            ]
1785          }
1786        }
1787      },
1788      "waiters": {
1789        "Completed": {
1790          "waiterName": "SnapshotCompleted",
1791          "params": [
1792            { "target": "SnapshotIds[]", "source": "identifier", "name": "Id" }
1793          ],
1794          "path": "Snapshots[]"
1795        }
1796      },
1797      "has": {
1798        "Volume": {
1799          "resource": {
1800            "type": "Volume",
1801            "identifiers": [
1802              { "target": "Id", "source": "data", "path": "VolumeId" }
1803            ]
1804          }
1805        }
1806      }
1807    },
1808    "Subnet": {
1809      "identifiers": [
1810        {
1811          "name": "Id",
1812          "memberName": "SubnetId"
1813        }
1814      ],
1815      "shape": "Subnet",
1816      "load": {
1817        "request": {
1818          "operation": "DescribeSubnets",
1819          "params": [
1820            { "target": "SubnetIds[0]", "source": "identifier", "name": "Id" }
1821          ]
1822        },
1823        "path": "Subnets[0]"
1824      },
1825      "actions": {
1826        "CreateInstances": {
1827          "request": {
1828            "operation": "RunInstances",
1829            "params": [
1830              { "target": "SubnetId", "source": "identifier", "name": "Id" }
1831            ]
1832          },
1833          "resource": {
1834            "type": "Instance",
1835            "identifiers": [
1836              { "target": "Id", "source": "response", "path": "Instances[].InstanceId" }
1837            ],
1838            "path": "Instances[]"
1839          }
1840        },
1841        "CreateNetworkInterface": {
1842          "request": {
1843            "operation": "CreateNetworkInterface",
1844            "params": [
1845              { "target": "SubnetId", "source": "identifier", "name": "Id" }
1846            ]
1847          },
1848          "resource": {
1849            "type": "NetworkInterface",
1850            "identifiers": [
1851              { "target": "Id", "source": "response", "path": "NetworkInterface.NetworkInterfaceId" }
1852            ],
1853            "path": "NetworkInterface"
1854          }
1855        },
1856        "CreateTags": {
1857          "request": {
1858            "operation": "CreateTags",
1859            "params": [
1860              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
1861            ]
1862          },
1863          "resource": {
1864            "type": "Tag",
1865            "identifiers": [
1866              { "target": "ResourceId", "source": "identifier", "name": "Id" },
1867              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
1868              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
1869            ]
1870          }
1871        },
1872        "Delete": {
1873          "request": {
1874            "operation": "DeleteSubnet",
1875            "params": [
1876              { "target": "SubnetId", "source": "identifier", "name": "Id" }
1877            ]
1878          }
1879        }
1880      },
1881      "has": {
1882        "Vpc": {
1883          "resource": {
1884            "type": "Vpc",
1885            "identifiers": [
1886              { "target": "Id", "source": "data", "path": "VpcId" }
1887            ]
1888          }
1889        }
1890      },
1891      "hasMany": {
1892        "Instances": {
1893          "request": {
1894            "operation": "DescribeInstances",
1895            "params": [
1896              { "target": "Filters[0].Name", "source": "string", "value": "subnet-id" },
1897              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
1898            ]
1899          },
1900          "resource": {
1901            "type": "Instance",
1902            "identifiers": [
1903              { "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
1904            ],
1905            "path": "Reservations[].Instances[]"
1906          }
1907        },
1908        "NetworkInterfaces": {
1909          "request": {
1910            "operation": "DescribeNetworkInterfaces",
1911            "params": [
1912              { "target": "Filters[0].Name", "source": "string", "value": "subnet-id" },
1913              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
1914            ]
1915          },
1916          "resource": {
1917            "type": "NetworkInterface",
1918            "identifiers": [
1919              { "target": "Id", "source": "response", "path": "NetworkInterfaces[].NetworkInterfaceId" }
1920            ],
1921            "path": "NetworkInterfaces[]"
1922          }
1923        }
1924      }
1925    },
1926    "Tag": {
1927      "identifiers": [
1928        {
1929          "name": "ResourceId",
1930          "memberName": "ResourceId"
1931        },
1932        {
1933          "name": "Key",
1934          "memberName": "Key"
1935        },
1936        {
1937          "name": "Value",
1938          "memberName": "Value"
1939        }
1940      ],
1941      "shape": "TagDescription",
1942      "load": {
1943        "request": {
1944          "operation": "DescribeTags",
1945          "params": [
1946            { "target": "Filters[0].Name", "source": "string", "value": "key" },
1947            { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Key" },
1948            { "target": "Filters[1].Name", "source": "string", "value": "value" },
1949            { "target": "Filters[1].Values[0]", "source": "identifier", "name": "Value" }
1950          ]
1951        },
1952        "path": "Tags[0]"
1953      },
1954      "actions": {
1955        "Delete": {
1956          "request": {
1957            "operation": "DeleteTags",
1958            "params": [
1959              { "target": "Resources[0]", "source": "identifier", "name": "ResourceId" },
1960              { "target": "Tags[0].Key", "source": "identifier", "name": "Key" },
1961              { "target": "Tags[0].Value", "source": "identifier", "name": "Value" }
1962            ]
1963          }
1964        }
1965      },
1966      "batchActions": {
1967        "Delete": {
1968          "request": {
1969            "operation": "DeleteTags",
1970            "params": [
1971              { "target": "Resources[]", "source": "identifier", "name": "ResourceId" },
1972              { "target": "Tags[*].Key", "source": "identifier", "name": "Key" },
1973              { "target": "Tags[*].Value", "source": "identifier", "name": "Value" }
1974            ]
1975          }
1976        }
1977      }
1978    },
1979    "Volume": {
1980      "identifiers": [
1981        {
1982          "name": "Id",
1983          "memberName": "VolumeId"
1984        }
1985      ],
1986      "shape": "Volume",
1987      "load": {
1988        "request": {
1989          "operation": "DescribeVolumes",
1990          "params": [
1991            { "target": "VolumeIds[0]", "source": "identifier", "name": "Id" }
1992          ]
1993        },
1994        "path": "Volumes[0]"
1995      },
1996      "actions": {
1997        "AttachToInstance": {
1998          "request": {
1999            "operation": "AttachVolume",
2000            "params": [
2001              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2002            ]
2003          }
2004        },
2005        "CreateSnapshot": {
2006          "request": {
2007            "operation": "CreateSnapshot",
2008            "params": [
2009              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2010            ]
2011          },
2012          "resource": {
2013            "type": "Snapshot",
2014            "identifiers": [
2015              { "target": "Id", "source": "response", "path": "SnapshotId" }
2016            ],
2017            "path": "@"
2018          }
2019        },
2020        "CreateTags": {
2021          "request": {
2022            "operation": "CreateTags",
2023            "params": [
2024              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
2025            ]
2026          },
2027          "resource": {
2028            "type": "Tag",
2029            "identifiers": [
2030              { "target": "ResourceId", "source": "identifier", "name": "Id" },
2031              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
2032              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
2033            ]
2034          }
2035        },
2036        "Delete": {
2037          "request": {
2038            "operation": "DeleteVolume",
2039            "params": [
2040              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2041            ]
2042          }
2043        },
2044        "DescribeAttribute": {
2045          "request": {
2046            "operation": "DescribeVolumeAttribute",
2047            "params": [
2048              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2049            ]
2050          }
2051        },
2052        "DescribeStatus": {
2053          "request": {
2054            "operation": "DescribeVolumeStatus",
2055            "params": [
2056              { "target": "VolumeIds[0]", "source": "identifier", "name": "Id" }
2057            ]
2058          }
2059        },
2060        "DetachFromInstance": {
2061          "request": {
2062            "operation": "DetachVolume",
2063            "params": [
2064              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2065            ]
2066          }
2067        },
2068        "EnableIo": {
2069          "request": {
2070            "operation": "EnableVolumeIO",
2071            "params": [
2072              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2073            ]
2074          }
2075        },
2076        "ModifyAttribute": {
2077          "request": {
2078            "operation": "ModifyVolumeAttribute",
2079            "params": [
2080              { "target": "VolumeId", "source": "identifier", "name": "Id" }
2081            ]
2082          }
2083        }
2084      },
2085      "hasMany": {
2086        "Snapshots": {
2087          "request": {
2088            "operation": "DescribeSnapshots",
2089            "params": [
2090              { "target": "Filters[0].Name", "source": "string", "value": "volume-id" },
2091              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2092            ]
2093          },
2094          "resource": {
2095            "type": "Snapshot",
2096            "identifiers": [
2097              { "target": "Id", "source": "response", "path": "Snapshots[].SnapshotId" }
2098            ],
2099            "path": "Snapshots[]"
2100          }
2101        }
2102      }
2103    },
2104    "Vpc": {
2105      "identifiers": [
2106        {
2107          "name": "Id",
2108          "memberName": "VpcId"
2109        }
2110      ],
2111      "shape": "Vpc",
2112      "load": {
2113        "request": {
2114          "operation": "DescribeVpcs",
2115          "params": [
2116            { "target": "VpcIds[0]", "source": "identifier", "name": "Id" }
2117          ]
2118        },
2119        "path": "Vpcs[0]"
2120      },
2121      "actions": {
2122        "AssociateDhcpOptions": {
2123          "request": {
2124            "operation": "AssociateDhcpOptions",
2125            "params": [
2126              { "target": "VpcId", "source": "identifier", "name": "Id" }
2127            ]
2128          }
2129        },
2130        "AttachClassicLinkInstance": {
2131          "request": {
2132            "operation": "AttachClassicLinkVpc",
2133            "params": [
2134              { "target": "VpcId", "source": "identifier", "name": "Id" }
2135            ]
2136          }
2137        },
2138        "AttachInternetGateway": {
2139          "request": {
2140            "operation": "AttachInternetGateway",
2141            "params": [
2142              { "target": "VpcId", "source": "identifier", "name": "Id" }
2143            ]
2144          }
2145        },
2146        "CreateNetworkAcl": {
2147          "request": {
2148            "operation": "CreateNetworkAcl",
2149            "params": [
2150              { "target": "VpcId", "source": "identifier", "name": "Id" }
2151            ]
2152          },
2153          "resource": {
2154            "type": "NetworkAcl",
2155            "identifiers": [
2156              { "target": "Id", "source": "response", "path": "NetworkAcl.NetworkAclId" }
2157            ],
2158            "path": "NetworkAcl"
2159          }
2160        },
2161        "CreateRouteTable": {
2162          "request": {
2163            "operation": "CreateRouteTable",
2164            "params": [
2165              { "target": "VpcId", "source": "identifier", "name": "Id" }
2166            ]
2167          },
2168          "resource": {
2169            "type": "RouteTable",
2170            "identifiers": [
2171              { "target": "Id", "source": "response", "path": "RouteTable.RouteTableId" }
2172            ],
2173            "path": "RouteTable"
2174          }
2175        },
2176        "CreateSecurityGroup": {
2177          "request": {
2178            "operation": "CreateSecurityGroup",
2179            "params": [
2180              { "target": "VpcId", "source": "identifier", "name": "Id" }
2181            ]
2182          },
2183          "resource": {
2184            "type": "SecurityGroup",
2185            "identifiers": [
2186              { "target": "Id", "source": "response", "path": "GroupId" }
2187            ]
2188          }
2189        },
2190        "CreateSubnet": {
2191          "request": {
2192            "operation": "CreateSubnet",
2193            "params": [
2194              { "target": "VpcId", "source": "identifier", "name": "Id" }
2195            ]
2196          },
2197          "resource": {
2198            "type": "Subnet",
2199            "identifiers": [
2200              { "target": "Id", "source": "response", "path": "Subnet.SubnetId" }
2201            ],
2202            "path": "Subnet"
2203          }
2204        },
2205        "CreateTags": {
2206          "request": {
2207            "operation": "CreateTags",
2208            "params": [
2209              { "target": "Resources[0]", "source": "identifier", "name": "Id" }
2210            ]
2211          },
2212          "resource": {
2213            "type": "Tag",
2214            "identifiers": [
2215              { "target": "ResourceId", "source": "identifier", "name": "Id" },
2216              { "target": "Key", "source": "requestParameter", "path": "Tags[].Key" },
2217              { "target": "Value", "source": "requestParameter", "path": "Tags[].Value" }
2218            ]
2219          }
2220        },
2221        "Delete": {
2222          "request": {
2223            "operation": "DeleteVpc",
2224            "params": [
2225              { "target": "VpcId", "source": "identifier", "name": "Id" }
2226            ]
2227          }
2228        },
2229        "DescribeAttribute": {
2230          "request": {
2231            "operation": "DescribeVpcAttribute",
2232            "params": [
2233              { "target": "VpcId", "source": "identifier", "name": "Id" }
2234            ]
2235          }
2236        },
2237        "DetachClassicLinkInstance": {
2238          "request": {
2239            "operation": "DetachClassicLinkVpc",
2240            "params": [
2241              { "target": "VpcId", "source": "identifier", "name": "Id" }
2242            ]
2243          }
2244        },
2245        "DetachInternetGateway": {
2246          "request": {
2247            "operation": "DetachInternetGateway",
2248            "params": [
2249              { "target": "VpcId", "source": "identifier", "name": "Id" }
2250            ]
2251          }
2252        },
2253        "DisableClassicLink": {
2254          "request": {
2255            "operation": "DisableVpcClassicLink",
2256            "params": [
2257              { "target": "VpcId", "source": "identifier", "name": "Id" }
2258            ]
2259          }
2260        },
2261        "EnableClassicLink": {
2262          "request": {
2263            "operation": "EnableVpcClassicLink",
2264            "params": [
2265              { "target": "VpcId", "source": "identifier", "name": "Id" }
2266            ]
2267          }
2268        },
2269        "ModifyAttribute": {
2270          "request": {
2271            "operation": "ModifyVpcAttribute",
2272            "params": [
2273              { "target": "VpcId", "source": "identifier", "name": "Id" }
2274            ]
2275          }
2276        },
2277        "RequestVpcPeeringConnection": {
2278          "request": {
2279            "operation": "CreateVpcPeeringConnection",
2280            "params": [
2281              { "target": "VpcId", "source": "identifier", "name": "Id" }
2282            ]
2283          },
2284          "resource": {
2285            "type": "VpcPeeringConnection",
2286            "identifiers": [
2287              { "target": "Id", "source": "response", "path": "VpcPeeringConnection.VpcPeeringConnectionId" }
2288            ],
2289            "path": "VpcPeeringConnection"
2290          }
2291        }
2292      },
2293      "has": {
2294        "DhcpOptions": {
2295          "resource": {
2296            "type": "DhcpOptions",
2297            "identifiers": [
2298              { "target": "Id", "source": "data", "path": "DhcpOptionsId" }
2299            ]
2300          }
2301        }
2302      },
2303      "hasMany": {
2304        "AcceptedVpcPeeringConnections": {
2305          "request": {
2306            "operation": "DescribeVpcPeeringConnections",
2307            "params": [
2308              { "target": "Filters[0].Name", "source": "string", "value": "accepter-vpc-info.vpc-id" },
2309              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2310            ]
2311          },
2312          "resource": {
2313            "type": "VpcPeeringConnection",
2314            "identifiers": [
2315              { "target": "Id", "source": "response", "path": "VpcPeeringConnections[].VpcPeeringConnectionId" }
2316            ],
2317            "path": "VpcPeeringConnections[]"
2318          }
2319        },
2320        "Instances": {
2321          "request": {
2322            "operation": "DescribeInstances",
2323            "params": [
2324              { "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
2325              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2326            ]
2327          },
2328          "resource": {
2329            "type": "Instance",
2330            "identifiers": [
2331              { "target": "Id", "source": "response", "path": "Reservations[].Instances[].InstanceId" }
2332            ],
2333            "path": "Reservations[].Instances[]"
2334          }
2335        },
2336        "InternetGateways": {
2337          "request": {
2338            "operation": "DescribeInternetGateways",
2339            "params": [
2340              { "target": "Filters[0].Name", "source": "string", "value": "attachment.vpc-id" },
2341              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2342            ]
2343          },
2344          "resource": {
2345            "type": "InternetGateway",
2346            "identifiers": [
2347              { "target": "Id", "source": "response", "path": "InternetGateways[].InternetGatewayId" }
2348            ],
2349            "path": "InternetGateways[]"
2350          }
2351        },
2352        "NetworkAcls": {
2353          "request": {
2354            "operation": "DescribeNetworkAcls",
2355            "params": [
2356              { "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
2357              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2358            ]
2359          },
2360          "resource": {
2361            "type": "NetworkAcl",
2362            "identifiers": [
2363              { "target": "Id", "source": "response", "path": "NetworkAcls[].NetworkAclId" }
2364            ],
2365            "path": "NetworkAcls[]"
2366          }
2367        },
2368        "NetworkInterfaces": {
2369          "request": {
2370            "operation": "DescribeNetworkInterfaces",
2371            "params": [
2372              { "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
2373              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2374            ]
2375          },
2376          "resource": {
2377            "type": "NetworkInterface",
2378            "identifiers": [
2379              { "target": "Id", "source": "response", "path": "NetworkInterfaces[].NetworkInterfaceId" }
2380            ],
2381            "path": "NetworkInterfaces[]"
2382          }
2383        },
2384        "RequestedVpcPeeringConnections": {
2385          "request": {
2386            "operation": "DescribeVpcPeeringConnections",
2387            "params": [
2388              { "target": "Filters[0].Name", "source": "string", "value": "requester-vpc-info.vpc-id" },
2389              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2390            ]
2391          },
2392          "resource": {
2393            "type": "VpcPeeringConnection",
2394            "identifiers": [
2395              { "target": "Id", "source": "response", "path": "VpcPeeringConnections[].VpcPeeringConnectionId" }
2396            ],
2397            "path": "VpcPeeringConnections[]"
2398          }
2399        },
2400        "RouteTables": {
2401          "request": {
2402            "operation": "DescribeRouteTables",
2403            "params": [
2404              { "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
2405              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2406            ]
2407          },
2408          "resource": {
2409            "type": "RouteTable",
2410            "identifiers": [
2411              { "target": "Id", "source": "response", "path": "RouteTables[].RouteTableId" }
2412            ],
2413            "path": "RouteTables[]"
2414          }
2415        },
2416        "SecurityGroups": {
2417          "request": {
2418            "operation": "DescribeSecurityGroups",
2419            "params": [
2420              { "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
2421              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2422            ]
2423          },
2424          "resource": {
2425            "type": "SecurityGroup",
2426            "identifiers": [
2427              { "target": "Id", "source": "response", "path": "SecurityGroups[].GroupId" }
2428            ],
2429            "path": "SecurityGroups[]"
2430          }
2431        },
2432        "Subnets": {
2433          "request": {
2434            "operation": "DescribeSubnets",
2435            "params": [
2436              { "target": "Filters[0].Name", "source": "string", "value": "vpc-id" },
2437              { "target": "Filters[0].Values[0]", "source": "identifier", "name": "Id" }
2438            ]
2439          },
2440          "resource": {
2441            "type": "Subnet",
2442            "identifiers": [
2443              { "target": "Id", "source": "response", "path": "Subnets[].SubnetId" }
2444            ],
2445            "path": "Subnets[]"
2446          }
2447        }
2448      }
2449    },
2450    "VpcPeeringConnection": {
2451      "identifiers": [
2452        {
2453          "name": "Id",
2454          "memberName": "VpcPeeringConnectionId"
2455        }
2456      ],
2457      "shape": "VpcPeeringConnection",
2458      "load": {
2459        "request": {
2460          "operation": "DescribeVpcPeeringConnections",
2461          "params": [
2462            { "target": "VpcPeeringConnectionIds[0]", "source": "identifier", "name": "Id" }
2463          ]
2464        },
2465        "path": "VpcPeeringConnections[0]"
2466      },
2467      "actions": {
2468        "Accept": {
2469          "request": {
2470            "operation": "AcceptVpcPeeringConnection",
2471            "params": [
2472              { "target": "VpcPeeringConnectionId", "source": "identifier", "name": "Id" }
2473            ]
2474          }
2475        },
2476        "Delete": {
2477          "request": {
2478            "operation": "DeleteVpcPeeringConnection",
2479            "params": [
2480              { "target": "VpcPeeringConnectionId", "source": "identifier", "name": "Id" }
2481            ]
2482          }
2483        },
2484        "Reject": {
2485          "request": {
2486            "operation": "RejectVpcPeeringConnection",
2487            "params": [
2488              { "target": "VpcPeeringConnectionId", "source": "identifier", "name": "Id" }
2489            ]
2490          }
2491        }
2492      },
2493      "waiters": {
2494        "Exists": {
2495          "waiterName": "VpcPeeringConnectionExists",
2496          "params": [
2497            { "target": "VpcPeeringConnectionIds[]", "source": "identifier", "name": "Id" }
2498          ],
2499          "path": "VpcPeeringConnections[0]"
2500        }
2501      },
2502      "has": {
2503        "AccepterVpc": {
2504          "resource": {
2505            "type": "Vpc",
2506            "identifiers": [
2507              { "target": "Id", "source": "data", "path": "AccepterVpcInfo.VpcId" }
2508            ]
2509          }
2510        },
2511        "RequesterVpc": {
2512          "resource": {
2513            "type": "Vpc",
2514            "identifiers": [
2515              { "target": "Id", "source": "data", "path": "RequesterVpcInfo.VpcId" }
2516            ]
2517          }
2518        }
2519      }
2520    },
2521    "VpcAddress": {
2522      "identifiers": [
2523        {
2524          "name": "AllocationId"
2525        }
2526      ],
2527      "shape": "Address",
2528      "load": {
2529        "request": {
2530          "operation": "DescribeAddresses",
2531          "params": [
2532            { "target": "AllocationIds[0]", "source": "identifier", "name": "AllocationId" }
2533          ]
2534        },
2535        "path": "Addresses[0]"
2536      },
2537      "actions": {
2538        "Associate": {
2539          "request": {
2540            "operation": "AssociateAddress",
2541            "params": [
2542              { "target": "AllocationId", "source": "identifier", "name": "AllocationId" }
2543            ]
2544          }
2545        },
2546        "Release": {
2547          "request": {
2548            "operation": "ReleaseAddress",
2549            "params": [
2550              { "target": "AllocationId", "source": "data", "path": "AllocationId" }
2551            ]
2552          }
2553        }
2554      },
2555      "has": {
2556        "Association": {
2557          "resource": {
2558            "type": "NetworkInterfaceAssociation",
2559            "identifiers": [
2560              { "target": "Id", "source": "data", "path": "AssociationId" }
2561            ]
2562          }
2563        }
2564      }
2565    }
2566  }
2567}
2568