{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-05-10",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"iam-toolbox",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"IAM Toolbox (Preview)",
    "serviceId":"IAM Toolbox",
    "signatureVersion":"v4",
    "signingName":"iam",
    "uid":"iam-toolbox-2018-05-10"
  },
  "operations":{
    "GetRequestAuthorizationDetails":{
      "name":"GetRequestAuthorizationDetails",
      "http":{
        "method":"GET",
        "requestUri":"/authorization-details/{authorizationId}",
        "responseCode":200
      },
      "input":{"shape":"GetRequestAuthorizationDetailsInput"},
      "output":{"shape":"GetRequestAuthorizationDetailsOutput"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "readonly":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AttachedTo":{
      "type":"structure",
      "members":{
        "arn":{"shape":"AttachedToArnString"}
      }
    },
    "AttachedToArnString":{
      "type":"string",
      "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*"
    },
    "AttachedToList":{
      "type":"list",
      "member":{"shape":"AttachedTo"}
    },
    "AuthorizationContext":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"Document"}
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "Document":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "EvaluatedEffect":{
      "type":"string",
      "enum":[
        "ALLOW",
        "EXPLICIT_DENY",
        "IMPLICIT_DENY"
      ]
    },
    "Evaluation":{
      "type":"structure",
      "required":[
        "action",
        "resource"
      ],
      "members":{
        "action":{"shape":"String"},
        "resource":{"shape":"String"},
        "context":{"shape":"AuthorizationContext"},
        "evaluatedEffect":{"shape":"EvaluatedEffect"},
        "matchedPolicies":{"shape":"MatchedPolicyList"}
      }
    },
    "Evaluations":{
      "type":"list",
      "member":{"shape":"Evaluation"}
    },
    "GetRequestAuthorizationDetailsInput":{
      "type":"structure",
      "required":["authorizationId"],
      "members":{
        "authorizationId":{
          "shape":"GetRequestAuthorizationDetailsInputAuthorizationIdString",
          "location":"uri",
          "locationName":"authorizationId"
        },
        "nextToken":{
          "shape":"String",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "GetRequestAuthorizationDetailsInputAuthorizationIdString":{
      "type":"string",
      "pattern":"[0123456789abcdefghijklmnopqrstuvwxyz]+"
    },
    "GetRequestAuthorizationDetailsOutput":{
      "type":"structure",
      "required":[
        "requestContext",
        "evaluations",
        "policies"
      ],
      "members":{
        "requestContext":{"shape":"AuthorizationContext"},
        "evaluations":{"shape":"Evaluations"},
        "policies":{"shape":"PolicyInfoList"},
        "nextToken":{"shape":"String"}
      }
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "MatchedPolicy":{
      "type":"structure",
      "required":["uri"],
      "members":{
        "uri":{"shape":"String"},
        "matchedStatements":{"shape":"MatchedStatementList"}
      }
    },
    "MatchedPolicyList":{
      "type":"list",
      "member":{"shape":"MatchedPolicy"}
    },
    "MatchedStatement":{
      "type":"structure",
      "members":{
        "sid":{"shape":"String"},
        "evaluatedEffect":{"shape":"StatementEffect"}
      }
    },
    "MatchedStatementList":{
      "type":"list",
      "member":{"shape":"MatchedStatement"}
    },
    "PolicyInfo":{
      "type":"structure",
      "members":{
        "type":{"shape":"PolicyType"},
        "inline":{"shape":"Boolean"},
        "uri":{"shape":"String"},
        "attachedTo":{"shape":"AttachedToList"}
      }
    },
    "PolicyInfoList":{
      "type":"list",
      "member":{"shape":"PolicyInfo"}
    },
    "PolicyType":{
      "type":"string",
      "enum":[
        "IDENTITY_BASED_POLICY",
        "RESOURCE_BASED_POLICY",
        "PERMISSIONS_BOUNDARY",
        "SESSION_POLICY",
        "SERVICE_CONTROL_POLICY",
        "RESOURCE_CONTROL_POLICY",
        "VPC_ENDPOINT_POLICY"
      ]
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "StatementEffect":{
      "type":"string",
      "enum":[
        "ALLOW",
        "DENY"
      ]
    },
    "String":{"type":"string"},
    "ValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  }
}
