about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/boto3/data/iam
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/boto3/data/iam')
-rw-r--r--.venv/lib/python3.12/site-packages/boto3/data/iam/2010-05-08/resources-1.json1721
1 files changed, 1721 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/boto3/data/iam/2010-05-08/resources-1.json b/.venv/lib/python3.12/site-packages/boto3/data/iam/2010-05-08/resources-1.json
new file mode 100644
index 00000000..59d18556
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/boto3/data/iam/2010-05-08/resources-1.json
@@ -0,0 +1,1721 @@
+{
+  "service": {
+    "actions": {
+      "ChangePassword": {
+        "request": { "operation": "ChangePassword" }
+      },
+      "CreateAccountAlias": {
+        "request": { "operation": "CreateAccountAlias" }
+      },
+      "CreateAccountPasswordPolicy": {
+        "request": { "operation": "UpdateAccountPasswordPolicy" },
+        "resource": {
+          "type": "AccountPasswordPolicy",
+          "identifiers": [  ]
+        }
+      },
+      "CreateGroup": {
+        "request": { "operation": "CreateGroup" },
+        "resource": {
+          "type": "Group",
+          "identifiers": [
+            { "target": "Name", "source": "requestParameter", "path": "GroupName" }
+          ],
+          "path": "Group"
+        }
+      },
+      "CreateInstanceProfile": {
+        "request": { "operation": "CreateInstanceProfile" },
+        "resource": {
+          "type": "InstanceProfile",
+          "identifiers": [
+            { "target": "Name", "source": "requestParameter", "path": "InstanceProfileName" }
+          ],
+          "path": "InstanceProfile"
+        }
+      },
+      "CreatePolicy": {
+        "request": { "operation": "CreatePolicy" },
+        "resource": {
+          "type": "Policy",
+          "identifiers": [
+            { "target": "Arn", "source": "response", "path": "Policy.Arn" }
+          ]
+        }
+      },
+      "CreateRole": {
+        "request": { "operation": "CreateRole" },
+        "resource": {
+          "type": "Role",
+          "identifiers": [
+            { "target": "Name", "source": "requestParameter", "path": "RoleName" }
+          ],
+          "path": "Role"
+        }
+      },
+      "CreateSamlProvider": {
+        "request": { "operation": "CreateSAMLProvider" },
+        "resource": {
+          "type": "SamlProvider",
+          "identifiers": [
+            { "target": "Arn", "source": "response", "path": "SAMLProviderArn" }
+          ]
+        }
+      },
+      "CreateServerCertificate": {
+        "request": { "operation": "UploadServerCertificate" },
+        "resource": {
+          "type": "ServerCertificate",
+          "identifiers": [
+            { "target": "Name", "source": "requestParameter", "path": "ServerCertificateName" }
+          ]
+        }
+      },
+      "CreateSigningCertificate": {
+        "request": { "operation": "UploadSigningCertificate" },
+        "resource": {
+          "type": "SigningCertificate",
+          "identifiers": [
+            { "target": "Id", "source": "response", "path": "Certificate.CertificateId" }
+          ],
+          "path": "Certificate"
+        }
+      },
+      "CreateUser": {
+        "request": { "operation": "CreateUser" },
+        "resource": {
+          "type": "User",
+          "identifiers": [
+            { "target": "Name", "source": "requestParameter", "path": "UserName" }
+          ],
+          "path": "User"
+        }
+      },
+      "CreateVirtualMfaDevice": {
+        "request": { "operation": "CreateVirtualMFADevice" },
+        "resource": {
+          "type": "VirtualMfaDevice",
+          "identifiers": [
+            { "target": "SerialNumber", "source": "response", "path": "VirtualMFADevice.SerialNumber" }
+          ],
+          "path": "VirtualMFADevice"
+        }
+      }
+    },
+    "has": {
+      "AccountPasswordPolicy": {
+        "resource": {
+          "type": "AccountPasswordPolicy",
+          "identifiers": [  ]
+        }
+      },
+      "AccountSummary": {
+        "resource": {
+          "type": "AccountSummary",
+          "identifiers": [  ]
+        }
+      },
+      "CurrentUser": {
+        "resource": {
+          "type": "CurrentUser",
+          "identifiers": [  ]
+        }
+      },
+      "Group": {
+        "resource": {
+          "type": "Group",
+          "identifiers": [
+            { "target": "Name", "source": "input" }
+          ]
+        }
+      },
+      "InstanceProfile": {
+        "resource": {
+          "type": "InstanceProfile",
+          "identifiers": [
+            { "target": "Name", "source": "input" }
+          ]
+        }
+      },
+      "Policy": {
+        "resource": {
+          "type": "Policy",
+          "identifiers": [
+            { "target": "PolicyArn", "source": "input" }
+          ]
+        }
+      },
+      "Role": {
+        "resource": {
+          "type": "Role",
+          "identifiers": [
+            { "target": "Name", "source": "input" }
+          ]
+        }
+      },
+      "SamlProvider": {
+        "resource": {
+          "type": "SamlProvider",
+          "identifiers": [
+            { "target": "Arn", "source": "input" }
+          ]
+        }
+      },
+      "ServerCertificate": {
+        "resource": {
+          "type": "ServerCertificate",
+          "identifiers": [
+            { "target": "Name", "source": "input" }
+          ]
+        }
+      },
+      "User": {
+        "resource": {
+          "type": "User",
+          "identifiers": [
+            { "target": "Name", "source": "input" }
+          ]
+        }
+      },
+      "VirtualMfaDevice": {
+        "resource": {
+          "type": "VirtualMfaDevice",
+          "identifiers": [
+            { "target": "SerialNumber", "source": "input" }
+          ]
+        }
+      }
+    },
+    "hasMany": {
+      "Groups": {
+        "request": { "operation": "ListGroups" },
+        "resource": {
+          "type": "Group",
+          "identifiers": [
+            { "target": "Name", "source": "response", "path": "Groups[].GroupName" }
+          ],
+          "path": "Groups[]"
+        }
+      },
+      "InstanceProfiles": {
+        "request": { "operation": "ListInstanceProfiles" },
+        "resource": {
+          "type": "InstanceProfile",
+          "identifiers": [
+            { "target": "Name", "source": "response", "path": "InstanceProfiles[].InstanceProfileName" }
+          ],
+          "path": "InstanceProfiles[]"
+        }
+      },
+      "Policies": {
+        "request": { "operation": "ListPolicies" },
+        "resource": {
+          "type": "Policy",
+          "identifiers": [
+            { "target": "Arn", "source": "response", "path": "Policies[].Arn" }
+          ],
+          "path": "Policies[]"
+        }
+      },
+      "Roles": {
+        "request": { "operation": "ListRoles" },
+        "resource": {
+          "type": "Role",
+          "identifiers": [
+            { "target": "Name", "source": "response", "path": "Roles[].RoleName" }
+          ],
+          "path": "Roles[]"
+        }
+      },
+      "SamlProviders": {
+        "request": { "operation": "ListSAMLProviders" },
+        "resource": {
+          "type": "SamlProvider",
+          "identifiers": [
+            { "target": "Arn", "source": "response", "path": "SAMLProviderList[].Arn" }
+          ]
+        }
+      },
+      "ServerCertificates": {
+        "request": { "operation": "ListServerCertificates" },
+        "resource": {
+          "type": "ServerCertificate",
+          "identifiers": [
+            { "target": "Name", "source": "response", "path": "ServerCertificateMetadataList[].ServerCertificateName" }
+          ]
+        }
+      },
+      "Users": {
+        "request": { "operation": "ListUsers" },
+        "resource": {
+          "type": "User",
+          "identifiers": [
+            { "target": "Name", "source": "response", "path": "Users[].UserName" }
+          ],
+          "path": "Users[]"
+        }
+      },
+      "VirtualMfaDevices": {
+        "request": { "operation": "ListVirtualMFADevices" },
+        "resource": {
+          "type": "VirtualMfaDevice",
+          "identifiers": [
+            { "target": "SerialNumber", "source": "response", "path": "VirtualMFADevices[].SerialNumber" }
+          ],
+          "path": "VirtualMFADevices[]"
+        }
+      }
+    }
+  },
+  "resources": {
+    "AccessKey": {
+      "identifiers": [
+        {
+          "name": "UserName",
+          "memberName": "UserName"
+        },
+        {
+          "name": "Id",
+          "memberName": "AccessKeyId"
+        }
+      ],
+      "shape": "AccessKeyMetadata",
+      "actions": {
+        "Activate": {
+          "request": {
+            "operation": "UpdateAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
+              { "target": "Status", "source": "string", "value": "Active" }
+            ]
+          }
+        },
+        "Deactivate": {
+          "request": {
+            "operation": "UpdateAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
+              { "target": "Status", "source": "string", "value": "Inactive" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "AccessKeyId", "source": "identifier", "name": "Id" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        }
+      }
+    },
+    "AccessKeyPair": {
+      "identifiers": [
+        {
+          "name": "UserName",
+          "memberName": "UserName"
+        },
+        {
+          "name": "Id",
+          "memberName": "AccessKeyId"
+        },
+        {
+          "name": "Secret",
+          "memberName": "SecretAccessKey"
+        }
+      ],
+      "shape": "AccessKey",
+      "actions": {
+        "Activate": {
+          "request": {
+            "operation": "UpdateAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
+              { "target": "Status", "source": "string", "value": "Active" }
+            ]
+          }
+        },
+        "Deactivate": {
+          "request": {
+            "operation": "UpdateAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
+              { "target": "Status", "source": "string", "value": "Inactive" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "AccessKeyId", "source": "identifier", "name": "Id" }
+            ]
+          }
+        }
+      }
+    },
+    "AccountPasswordPolicy": {
+      "identifiers": [  ],
+      "shape": "PasswordPolicy",
+      "load": {
+        "request": { "operation": "GetAccountPasswordPolicy" },
+        "path": "PasswordPolicy"
+      },
+      "actions": {
+        "Delete": {
+          "request": { "operation": "DeleteAccountPasswordPolicy" }
+        },
+        "Update": {
+          "request": { "operation": "UpdateAccountPasswordPolicy" }
+        }
+      }
+    },
+    "AccountSummary": {
+      "identifiers": [  ],
+      "shape": "GetAccountSummaryResponse",
+      "load": {
+        "request": { "operation": "GetAccountSummary" },
+        "path": "@"
+      }
+    },
+    "AssumeRolePolicy": {
+      "identifiers": [
+        { "name": "RoleName" }
+      ],
+      "actions": {
+        "Update": {
+          "request": {
+            "operation": "UpdateAssumeRolePolicy",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "RoleName" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "Role": {
+          "resource": {
+            "type": "Role",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "RoleName" }
+            ]
+          }
+        }
+      }
+    },
+    "CurrentUser": {
+      "identifiers": [  ],
+      "shape": "User",
+      "load": {
+        "request": { "operation": "GetUser" },
+        "path": "User"
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "data", "path": "UserName" }
+            ]
+          }
+        }
+      },
+      "hasMany": {
+        "AccessKeys": {
+          "request": { "operation": "ListAccessKeys" },
+          "resource": {
+            "type": "AccessKey",
+            "identifiers": [
+              { "target": "UserName", "source": "response", "path": "AccessKeyMetadata[].UserName" },
+              { "target": "Id", "source": "response", "path": "AccessKeyMetadata[].AccessKeyId" }
+            ],
+            "path": "AccessKeyMetadata[]"
+          }
+        },
+        "MfaDevices": {
+          "request": { "operation": "ListMFADevices" },
+          "resource": {
+            "type": "MfaDevice",
+            "identifiers": [
+              { "target": "UserName", "source": "response", "path": "MFADevices[].UserName" },
+              { "target": "SerialNumber", "source": "response", "path": "MFADevices[].SerialNumber" }
+            ],
+            "path": "MFADevices[]"
+          }
+        },
+        "SigningCertificates": {
+          "request": { "operation": "ListSigningCertificates" },
+          "resource": {
+            "type": "SigningCertificate",
+            "identifiers": [
+              { "target": "UserName", "source": "response", "path": "Certificates[].UserName" },
+              { "target": "Id", "source": "response", "path": "Certificates[].CertificateId" }
+            ],
+            "path": "Certificates[]"
+          }
+        }
+      }
+    },
+    "Group": {
+      "identifiers": [
+        {
+          "name": "Name",
+          "memberName": "GroupName"
+        }
+      ],
+      "shape": "Group",
+      "load": {
+        "request": {
+          "operation": "GetGroup",
+          "params": [
+            { "target": "GroupName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "Group"
+      },
+      "actions": {
+        "AddUser": {
+          "request": {
+            "operation": "AddUserToGroup",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "AttachPolicy": {
+          "request": {
+            "operation": "AttachGroupPolicy",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Create": {
+          "request": {
+            "operation": "CreateGroup",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "Group",
+            "identifiers": [
+              { "target": "Name", "source": "requestParameter", "path": "GroupName" }
+            ],
+            "path": "Group"
+          }
+        },
+        "CreatePolicy": {
+          "request": {
+            "operation": "PutGroupPolicy",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "GroupPolicy",
+            "identifiers": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "requestParameter", "path": "PolicyName" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteGroup",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "DetachPolicy": {
+          "request": {
+            "operation": "DetachGroupPolicy",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "RemoveUser": {
+          "request": {
+            "operation": "RemoveUserFromGroup",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Update": {
+          "request": {
+            "operation": "UpdateGroup",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "Group",
+            "identifiers": [
+              { "target": "Name", "source": "requestParameter", "path": "NewGroupName" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "Policy": {
+          "resource": {
+            "type": "GroupPolicy",
+            "identifiers": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "input" }
+            ]
+          }
+        }
+      },
+      "hasMany": {
+        "AttachedPolicies": {
+          "request": {
+            "operation": "ListAttachedGroupPolicies",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "Policy",
+            "identifiers": [
+              { "target": "Arn", "source": "response", "path": "AttachedPolicies[].PolicyArn" }
+            ]
+          }
+        },
+        "Policies": {
+          "request": {
+            "operation": "ListGroupPolicies",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "GroupPolicy",
+            "identifiers": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "response", "path": "PolicyNames[]" }
+            ]
+          }
+        },
+        "Users": {
+          "request": {
+            "operation": "GetGroup",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "response", "path": "Users[].UserName" }
+            ],
+            "path": "Users[]"
+          }
+        }
+      }
+    },
+    "GroupPolicy": {
+      "identifiers": [
+        {
+          "name": "GroupName",
+          "memberName": "GroupName"
+        },
+        {
+          "name": "Name",
+          "memberName": "PolicyName"
+        }
+      ],
+      "shape": "GetGroupPolicyResponse",
+      "load": {
+        "request": {
+          "operation": "GetGroupPolicy",
+          "params": [
+            { "target": "GroupName", "source": "identifier", "name": "GroupName" },
+            { "target": "PolicyName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "@"
+      },
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeleteGroupPolicy",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "GroupName" },
+              { "target": "PolicyName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Put": {
+          "request": {
+            "operation": "PutGroupPolicy",
+            "params": [
+              { "target": "GroupName", "source": "identifier", "name": "GroupName" },
+              { "target": "PolicyName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "Group": {
+          "resource": {
+            "type": "Group",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "GroupName" }
+            ]
+          }
+        }
+      }
+    },
+    "InstanceProfile": {
+      "identifiers": [
+        {
+          "name": "Name",
+          "memberName": "InstanceProfileName"
+        }
+      ],
+      "shape": "InstanceProfile",
+      "load": {
+        "request": {
+          "operation": "GetInstanceProfile",
+          "params": [
+            { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "InstanceProfile"
+      },
+      "actions": {
+        "AddRole": {
+          "request": {
+            "operation": "AddRoleToInstanceProfile",
+            "params": [
+              { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteInstanceProfile",
+            "params": [
+              { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "RemoveRole": {
+          "request": {
+            "operation": "RemoveRoleFromInstanceProfile",
+            "params": [
+              { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "Roles": {
+          "resource": {
+            "type": "Role",
+            "identifiers": [
+              { "target": "Name", "source": "data", "path": "Roles[].RoleName" }
+            ],
+            "path": "Roles[]"
+          }
+        }
+      }
+    },
+    "LoginProfile": {
+      "identifiers": [
+        {
+          "name": "UserName",
+          "memberName": "UserName"
+        }
+      ],
+      "shape": "LoginProfile",
+      "load": {
+        "request": {
+          "operation": "GetLoginProfile",
+          "params": [
+            { "target": "UserName", "source": "identifier", "name": "UserName" }
+          ]
+        },
+        "path": "LoginProfile"
+      },
+      "actions": {
+        "Create": {
+          "request": {
+            "operation": "CreateLoginProfile",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" }
+            ]
+          },
+          "resource": {
+            "type": "LoginProfile",
+            "identifiers": [
+              { "target": "UserName", "source": "response", "path": "LoginProfile.UserName" }
+            ],
+            "path": "LoginProfile"
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteLoginProfile",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        },
+        "Update": {
+          "request": {
+            "operation": "UpdateLoginProfile",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        }
+      }
+    },
+    "MfaDevice": {
+      "identifiers": [
+        {
+          "name": "UserName",
+          "memberName": "UserName"
+        },
+        {
+          "name": "SerialNumber",
+          "memberName": "SerialNumber"
+        }
+      ],
+      "shape": "MFADevice",
+      "actions": {
+        "Associate": {
+          "request": {
+            "operation": "EnableMFADevice",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
+            ]
+          }
+        },
+        "Disassociate": {
+          "request": {
+            "operation": "DeactivateMFADevice",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
+            ]
+          }
+        },
+        "Resync": {
+          "request": {
+            "operation": "ResyncMFADevice",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        }
+      }
+    },
+    "Policy": {
+      "identifiers": [
+        {
+          "name": "Arn",
+          "memberName": "Arn"
+        }
+      ],
+      "shape": "Policy",
+      "load": {
+        "request": {
+          "operation": "GetPolicy",
+          "params": [
+            { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+          ]
+        },
+        "path": "Policy"
+      },
+      "actions": {
+        "AttachGroup": {
+          "request": {
+            "operation": "AttachGroupPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "AttachRole": {
+          "request": {
+            "operation": "AttachRolePolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "AttachUser": {
+          "request": {
+            "operation": "AttachUserPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "CreateVersion": {
+          "request": {
+            "operation": "CreatePolicyVersion",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          },
+          "resource": {
+            "type": "PolicyVersion",
+            "identifiers": [
+              { "target": "Arn", "source": "identifier", "name": "Arn" },
+              { "target": "VersionId", "source": "response", "path": "PolicyVersion.VersionId" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeletePolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "DetachGroup": {
+          "request": {
+            "operation": "DetachGroupPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "DetachRole": {
+          "request": {
+            "operation": "DetachRolePolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "DetachUser": {
+          "request": {
+            "operation": "DetachUserPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "DefaultVersion": {
+          "resource": {
+            "type": "PolicyVersion",
+            "identifiers": [
+              { "target": "Arn", "source": "identifier", "name": "Arn" },
+              { "target": "VersionId", "source": "data", "path": "DefaultVersionId" }
+            ]
+          }
+        }
+      },
+      "hasMany": {
+        "AttachedGroups": {
+          "request": {
+            "operation": "ListEntitiesForPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" },
+              { "target": "EntityFilter", "source": "string", "value": "Group" }
+            ]
+          },
+          "resource": {
+            "type": "Group",
+            "identifiers": [
+              { "target": "Name", "source": "response", "path": "PolicyGroups[].GroupName" }
+            ]
+          }
+        },
+        "AttachedRoles": {
+          "request": {
+            "operation": "ListEntitiesForPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" },
+              { "target": "EntityFilter", "source": "string", "value": "Role" }
+            ]
+          },
+          "resource": {
+            "type": "Role",
+            "identifiers": [
+              { "target": "Name", "source": "response", "path": "PolicyRoles[].RoleName" }
+            ]
+          }
+        },
+        "AttachedUsers": {
+          "request": {
+            "operation": "ListEntitiesForPolicy",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" },
+              { "target": "EntityFilter", "source": "string", "value": "User" }
+            ]
+          },
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "response", "path": "PolicyUsers[].UserName" }
+            ]
+          }
+        },
+        "Versions": {
+          "request": {
+            "operation": "ListPolicyVersions",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" }
+            ]
+          },
+          "resource": {
+            "type": "PolicyVersion",
+            "identifiers": [
+              { "target": "Arn", "source": "identifier", "name": "Arn" },
+              { "target": "VersionId", "source": "response", "path": "Versions[].VersionId" }
+            ],
+            "path": "Versions[]"
+          }
+        }
+      }
+    },
+    "PolicyVersion": {
+      "identifiers": [
+        { "name": "Arn" },
+        { "name": "VersionId" }
+      ],
+      "shape": "PolicyVersion",
+      "load": {
+        "request": {
+          "operation": "GetPolicyVersion",
+          "params": [
+            { "target": "PolicyArn", "source": "identifier", "name": "Arn" },
+            { "target": "VersionId", "source": "identifier", "name": "VersionId" }
+          ]
+        },
+        "path": "PolicyVersion"
+      },
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeletePolicyVersion",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" },
+              { "target": "VersionId", "source": "identifier", "name": "VersionId" }
+            ]
+          }
+        },
+        "SetAsDefault": {
+          "request": {
+            "operation": "SetDefaultPolicyVersion",
+            "params": [
+              { "target": "PolicyArn", "source": "identifier", "name": "Arn" },
+              { "target": "VersionId", "source": "identifier", "name": "VersionId" }
+            ]
+          }
+        }
+      }
+    },
+    "Role": {
+      "identifiers": [
+        {
+          "name": "Name",
+          "memberName": "RoleName"
+        }
+      ],
+      "shape": "Role",
+      "load": {
+        "request": {
+          "operation": "GetRole",
+          "params": [
+            { "target": "RoleName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "Role"
+      },
+      "actions": {
+        "AttachPolicy": {
+          "request": {
+            "operation": "AttachRolePolicy",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteRole",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "DetachPolicy": {
+          "request": {
+            "operation": "DetachRolePolicy",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "AssumeRolePolicy": {
+          "resource": {
+            "type": "AssumeRolePolicy",
+            "identifiers": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Policy": {
+          "resource": {
+            "type": "RolePolicy",
+            "identifiers": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "input" }
+            ]
+          }
+        }
+      },
+      "hasMany": {
+        "AttachedPolicies": {
+          "request": {
+            "operation": "ListAttachedRolePolicies",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "Policy",
+            "identifiers": [
+              { "target": "Arn", "source": "response", "path": "AttachedPolicies[].PolicyArn" }
+            ]
+          }
+        },
+        "InstanceProfiles": {
+          "request": {
+            "operation": "ListInstanceProfilesForRole",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "InstanceProfile",
+            "identifiers": [
+              { "target": "Name", "source": "response", "path": "InstanceProfiles[].InstanceProfileName" }
+            ],
+            "path": "InstanceProfiles[]"
+          }
+        },
+        "Policies": {
+          "request": {
+            "operation": "ListRolePolicies",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "RolePolicy",
+            "identifiers": [
+              { "target": "RoleName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "response", "path": "PolicyNames[]" }
+            ]
+          }
+        }
+      }
+    },
+    "RolePolicy": {
+      "identifiers": [
+        {
+          "name": "RoleName",
+          "memberName": "RoleName"
+        },
+        {
+          "name": "Name",
+          "memberName": "PolicyName"
+        }
+      ],
+      "shape": "GetRolePolicyResponse",
+      "load": {
+        "request": {
+          "operation": "GetRolePolicy",
+          "params": [
+            { "target": "RoleName", "source": "identifier", "name": "RoleName" },
+            { "target": "PolicyName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "@"
+      },
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeleteRolePolicy",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "RoleName" },
+              { "target": "PolicyName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Put": {
+          "request": {
+            "operation": "PutRolePolicy",
+            "params": [
+              { "target": "RoleName", "source": "identifier", "name": "RoleName" },
+              { "target": "PolicyName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "Role": {
+          "resource": {
+            "type": "Role",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "RoleName" }
+            ]
+          }
+        }
+      }
+    },
+    "SamlProvider": {
+      "identifiers": [
+        { "name": "Arn" }
+      ],
+      "shape": "GetSAMLProviderResponse",
+      "load": {
+        "request": {
+          "operation": "GetSAMLProvider",
+          "params": [
+            { "target": "SAMLProviderArn", "source": "identifier", "name": "Arn" }
+          ]
+        },
+        "path": "@"
+      },
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeleteSAMLProvider",
+            "params": [
+              { "target": "SAMLProviderArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        },
+        "Update": {
+          "request": {
+            "operation": "UpdateSAMLProvider",
+            "params": [
+              { "target": "SAMLProviderArn", "source": "identifier", "name": "Arn" }
+            ]
+          }
+        }
+      }
+    },
+    "ServerCertificate": {
+      "identifiers": [
+        { "name": "Name" }
+      ],
+      "shape": "ServerCertificate",
+      "load": {
+        "request": {
+          "operation": "GetServerCertificate",
+          "params": [
+            { "target": "ServerCertificateName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "ServerCertificate"
+      },
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeleteServerCertificate",
+            "params": [
+              { "target": "ServerCertificateName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Update": {
+          "request": {
+            "operation": "UpdateServerCertificate",
+            "params": [
+              { "target": "ServerCertificateName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "ServerCertificate",
+            "identifiers": [
+              { "target": "Name", "source": "requestParameter", "path": "NewServerCertificateName" }
+            ]
+          }
+        }
+      }
+    },
+    "SigningCertificate": {
+      "identifiers": [
+        {
+          "name": "UserName",
+          "memberName": "UserName"
+        },
+        {
+          "name": "Id",
+          "memberName": "CertificateId"
+        }
+      ],
+      "shape": "SigningCertificate",
+      "actions": {
+        "Activate": {
+          "request": {
+            "operation": "UpdateSigningCertificate",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "CertificateId", "source": "identifier", "name": "Id" },
+              { "target": "Status", "source": "string", "value": "Active" }
+            ]
+          }
+        },
+        "Deactivate": {
+          "request": {
+            "operation": "UpdateSigningCertificate",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "CertificateId", "source": "identifier", "name": "Id" },
+              { "target": "Status", "source": "string", "value": "Inactive" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteSigningCertificate",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "CertificateId", "source": "identifier", "name": "Id" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        }
+      }
+    },
+    "User": {
+      "identifiers": [
+        {
+          "name": "Name",
+          "memberName": "UserName"
+        }
+      ],
+      "shape": "User",
+      "load": {
+        "request": {
+          "operation": "GetUser",
+          "params": [
+            { "target": "UserName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "User"
+      },
+      "actions": {
+        "AddGroup": {
+          "request": {
+            "operation": "AddUserToGroup",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "AttachPolicy": {
+          "request": {
+            "operation": "AttachUserPolicy",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Create": {
+          "request": {
+            "operation": "CreateUser",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "requestParameter", "path": "UserName" }
+            ],
+            "path": "User"
+          }
+        },
+        "CreateAccessKeyPair": {
+          "request": {
+            "operation": "CreateAccessKey",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "AccessKeyPair",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Id", "source": "response", "path": "AccessKey.AccessKeyId" },
+              { "target": "Secret", "source": "response", "path": "AccessKey.SecretAccessKey" }
+            ],
+            "path": "AccessKey"
+          }
+        },
+        "CreateLoginProfile": {
+          "request": {
+            "operation": "CreateLoginProfile",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "LoginProfile",
+            "identifiers": [
+              { "target": "UserName", "source": "response", "path": "LoginProfile.UserName" }
+            ],
+            "path": "LoginProfile"
+          }
+        },
+        "CreatePolicy": {
+          "request": {
+            "operation": "PutUserPolicy",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "UserPolicy",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "requestParameter", "path": "PolicyName" }
+            ]
+          }
+        },
+        "Delete": {
+          "request": {
+            "operation": "DeleteUser",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "DetachPolicy": {
+          "request": {
+            "operation": "DetachUserPolicy",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "EnableMfa": {
+          "request": {
+            "operation": "EnableMFADevice",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "MfaDevice",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "SerialNumber", "source": "requestParameter", "path": "SerialNumber" }
+            ]
+          }
+        },
+        "RemoveGroup": {
+          "request": {
+            "operation": "RemoveUserFromGroup",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Update": {
+          "request": {
+            "operation": "UpdateUser",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "requestParameter", "path": "NewUserName" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "AccessKey": {
+          "resource": {
+            "type": "AccessKey",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Id", "source": "input" }
+            ]
+          }
+        },
+        "LoginProfile": {
+          "resource": {
+            "type": "LoginProfile",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "MfaDevice": {
+          "resource": {
+            "type": "MfaDevice",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "SerialNumber", "source": "input" }
+            ]
+          }
+        },
+        "Policy": {
+          "resource": {
+            "type": "UserPolicy",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "input" }
+            ]
+          }
+        },
+        "SigningCertificate": {
+          "resource": {
+            "type": "SigningCertificate",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Id", "source": "input" }
+            ]
+          }
+        }
+      },
+      "hasMany": {
+        "AccessKeys": {
+          "request": {
+            "operation": "ListAccessKeys",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "AccessKey",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Id", "source": "response", "path": "AccessKeyMetadata[].AccessKeyId" }
+            ],
+            "path": "AccessKeyMetadata[]"
+          }
+        },
+        "AttachedPolicies": {
+          "request": {
+            "operation": "ListAttachedUserPolicies",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "Policy",
+            "identifiers": [
+              { "target": "Arn", "source": "response", "path": "AttachedPolicies[].PolicyArn" }
+            ]
+          }
+        },
+        "Groups": {
+          "request": {
+            "operation": "ListGroupsForUser",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "Group",
+            "identifiers": [
+              { "target": "Name", "source": "response", "path": "Groups[].GroupName" }
+            ],
+            "path": "Groups[]"
+          }
+        },
+        "MfaDevices": {
+          "request": {
+            "operation": "ListMFADevices",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "MfaDevice",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "SerialNumber", "source": "response", "path": "MFADevices[].SerialNumber" }
+            ],
+            "path": "MFADevices[]"
+          }
+        },
+        "Policies": {
+          "request": {
+            "operation": "ListUserPolicies",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "UserPolicy",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Name", "source": "response", "path": "PolicyNames[]" }
+            ]
+          }
+        },
+        "SigningCertificates": {
+          "request": {
+            "operation": "ListSigningCertificates",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "Name" }
+            ]
+          },
+          "resource": {
+            "type": "SigningCertificate",
+            "identifiers": [
+              { "target": "UserName", "source": "identifier", "name": "Name" },
+              { "target": "Id", "source": "response", "path": "Certificates[].CertificateId" }
+            ],
+            "path": "Certificates[]"
+          }
+        }
+      }
+    },
+    "UserPolicy": {
+      "identifiers": [
+        {
+          "name": "UserName",
+          "memberName": "UserName"
+        },
+        {
+          "name": "Name",
+          "memberName": "PolicyName"
+        }
+      ],
+      "shape": "GetUserPolicyResponse",
+      "load": {
+        "request": {
+          "operation": "GetUserPolicy",
+          "params": [
+            { "target": "UserName", "source": "identifier", "name": "UserName" },
+            { "target": "PolicyName", "source": "identifier", "name": "Name" }
+          ]
+        },
+        "path": "@"
+      },
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeleteUserPolicy",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "PolicyName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        },
+        "Put": {
+          "request": {
+            "operation": "PutUserPolicy",
+            "params": [
+              { "target": "UserName", "source": "identifier", "name": "UserName" },
+              { "target": "PolicyName", "source": "identifier", "name": "Name" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "identifier", "name": "UserName" }
+            ]
+          }
+        }
+      }
+    },
+    "VirtualMfaDevice": {
+      "identifiers": [
+        {
+          "name": "SerialNumber",
+          "memberName": "SerialNumber"
+        }
+      ],
+      "shape": "VirtualMFADevice",
+      "actions": {
+        "Delete": {
+          "request": {
+            "operation": "DeleteVirtualMFADevice",
+            "params": [
+              { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
+            ]
+          }
+        }
+      },
+      "has": {
+        "User": {
+          "resource": {
+            "type": "User",
+            "identifiers": [
+              { "target": "Name", "source": "data", "path": "User.UserName" }
+            ]
+          }
+        }
+      }
+    }
+  }
+}