{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2020-06-15",
    "endpointPrefix":"identitystore",
    "jsonVersion":"1.1",
    "protocol":"json",
    "serviceAbbreviation":"IdentityStore",
    "serviceFullName":"AWS SSO Identity Store",
    "serviceId":"identitystore",
    "signatureVersion":"v4",
    "signingName":"identitystore",
    "targetPrefix":"AWSIdentityStore",
    "uid":"identitystore-2020-06-15"
  },
  "operations":{
    "DescribeGroup":{
      "name":"DescribeGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeGroupRequest"},
      "output":{"shape":"DescribeGroupResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves the group metadata and attributes from <code>GroupId</code> in an identity store.</p>"
    },
    "DescribeUser":{
      "name":"DescribeUser",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeUserRequest"},
      "output":{"shape":"DescribeUserResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves the user metadata and attributes from <code>UserId</code> in an identity store.</p>"
    },
    "ListGroups":{
      "name":"ListGroups",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListGroupsRequest"},
      "output":{"shape":"ListGroupsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists the attribute name and value of the group that you specified in the search. We only support <code>DisplayName</code> as a valid filter attribute path currently, and filter is required. This API returns minimum attributes, including <code>GroupId</code> and group <code>DisplayName</code> in the response.</p>"
    },
    "ListUsers":{
      "name":"ListUsers",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListUsersRequest"},
      "output":{"shape":"ListUsersResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists the attribute name and value of the user that you specified in the search. We only support <code>UserName</code> as a valid filter attribute path currently, and filter is required. This API returns minimum attributes, including <code>UserId</code> and <code>UserName</code> in the response.</p>"
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"},
        "RequestId":{
          "shape":"RequestId",
          "documentation":"<p>The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.</p>"
        }
      },
      "documentation":"<p>You do not have sufficient access to perform this action.</p>",
      "exception":true
    },
    "AttributePath":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}  ]+"
    },
    "DescribeGroupRequest":{
      "type":"structure",
      "required":[
        "IdentityStoreId",
        "GroupId"
      ],
      "members":{
        "IdentityStoreId":{
          "shape":"IdentityStoreId",
          "documentation":"<p>The globally unique identifier for the identity store, such as <code>d-1234567890</code>. In this example, <code>d-</code> is a fixed prefix, and <code>1234567890</code> is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.</p>"
        },
        "GroupId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a group in the identity store.</p>"
        }
      }
    },
    "DescribeGroupResponse":{
      "type":"structure",
      "required":[
        "GroupId",
        "DisplayName"
      ],
      "members":{
        "GroupId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a group in the identity store.</p>"
        },
        "DisplayName":{
          "shape":"GroupDisplayName",
          "documentation":"<p>Contains the group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. The characters <code>&lt;&gt;;:%</code> are excluded. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.</p>"
        }
      }
    },
    "DescribeUserRequest":{
      "type":"structure",
      "required":[
        "IdentityStoreId",
        "UserId"
      ],
      "members":{
        "IdentityStoreId":{
          "shape":"IdentityStoreId",
          "documentation":"<p>The globally unique identifier for the identity store, such as <code>d-1234567890</code>. In this example, <code>d-</code> is a fixed prefix, and <code>1234567890</code> is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.</p>"
        },
        "UserId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a user in the identity store.</p>"
        }
      }
    },
    "DescribeUserResponse":{
      "type":"structure",
      "required":[
        "UserName",
        "UserId"
      ],
      "members":{
        "UserName":{
          "shape":"UserName",
          "documentation":"<p>Contains the user’s user name value. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. The characters <code>&lt;&gt;;:%</code> are excluded. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.</p>"
        },
        "UserId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a user in the identity store.</p>"
        }
      }
    },
    "Filter":{
      "type":"structure",
      "required":[
        "AttributePath",
        "AttributeValue"
      ],
      "members":{
        "AttributePath":{
          "shape":"AttributePath",
          "documentation":"<p>The attribute path that is used to specify which attribute name to search. Length limit is 255 characters. For example, <code>UserName</code> is a valid attribute path for the <code>ListUsers</code> API, and <code>DisplayName</code> is a valid attribute path for the <code>ListGroups</code> API.</p>"
        },
        "AttributeValue":{
          "shape":"SensitiveStringType",
          "documentation":"<p>Represents the data for an attribute. Each attribute value is described as a name-value pair. </p>"
        }
      },
      "documentation":"<p>A query filter used by <code>ListUsers</code> and <code>ListGroup</code>. This filter object provides the attribute name and attribute value to search users or groups.</p>"
    },
    "Filters":{
      "type":"list",
      "member":{"shape":"Filter"}
    },
    "Group":{
      "type":"structure",
      "required":[
        "GroupId",
        "DisplayName"
      ],
      "members":{
        "GroupId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a group in the identity store.</p>"
        },
        "DisplayName":{
          "shape":"GroupDisplayName",
          "documentation":"<p>Contains the group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. The characters <code>&lt;&gt;;:%</code> are excluded. This value is specified at the time the group is created and stored as an attribute of the group object in the identity store.</p>"
        }
      },
      "documentation":"<p>A group object, which contains a specified group’s metadata and attributes.</p>"
    },
    "GroupDisplayName":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r  ]+"
    },
    "Groups":{
      "type":"list",
      "member":{"shape":"Group"}
    },
    "IdentityStoreId":{
      "type":"string",
      "max":12,
      "min":1,
      "pattern":"^d-[0-9a-f]{10}$"
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"},
        "RequestId":{
          "shape":"RequestId",
          "documentation":"<p>The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.</p>"
        }
      },
      "documentation":"<p>The request processing has failed because of an unknown error, exception or failure with an internal server.</p>",
      "exception":true,
      "fault":true
    },
    "ListGroupsRequest":{
      "type":"structure",
      "required":["IdentityStoreId"],
      "members":{
        "IdentityStoreId":{
          "shape":"IdentityStoreId",
          "documentation":"<p>The globally unique identifier for the identity store, such as <code>d-1234567890</code>. In this example, <code>d-</code> is a fixed prefix, and <code>1234567890</code> is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be returned per request. This parameter is used in the <code>ListUsers</code> and <code>ListGroups</code> request to specify how many results to return in one page. The length limit is 50 characters.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>"
        },
        "Filters":{
          "shape":"Filters",
          "documentation":"<p>A list of <code>Filter</code> objects, which is used in the <code>ListUsers</code> and <code>ListGroups</code> request. </p>"
        }
      }
    },
    "ListGroupsResponse":{
      "type":"structure",
      "required":["Groups"],
      "members":{
        "Groups":{
          "shape":"Groups",
          "documentation":"<p>A list of <code>Group</code> objects in the identity store.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it1 is used in the API request to search for the next page.</p>"
        }
      }
    },
    "ListUsersRequest":{
      "type":"structure",
      "required":["IdentityStoreId"],
      "members":{
        "IdentityStoreId":{
          "shape":"IdentityStoreId",
          "documentation":"<p>The globally unique identifier for the identity store, such as <code>d-1234567890</code>. In this example, <code>d-</code> is a fixed prefix, and <code>1234567890</code> is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be returned per request. This parameter is used in the <code>ListUsers</code> and <code>ListGroups</code> request to specify how many results to return in one page. The length limit is 50 characters.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>"
        },
        "Filters":{
          "shape":"Filters",
          "documentation":"<p>A list of <code>Filter</code> objects, which is used in the <code>ListUsers</code> and <code>ListGroups</code> request. </p>"
        }
      }
    },
    "ListUsersResponse":{
      "type":"structure",
      "required":["Users"],
      "members":{
        "Users":{
          "shape":"Users",
          "documentation":"<p>A list of <code>User</code> objects in the identity store.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.</p>"
        }
      }
    },
    "MaxResults":{
      "type":"integer",
      "max":50,
      "min":1
    },
    "Message":{
      "type":"string",
      "max":65535,
      "min":1
    },
    "NextToken":{
      "type":"string",
      "max":65535,
      "min":1,
      "pattern":"^[-a-zA-Z0-9+=/:]*"
    },
    "RequestId":{
      "type":"string",
      "pattern":"[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}"
    },
    "ResourceId":{
      "type":"string",
      "max":47,
      "min":1,
      "pattern":"^([0-9a-f]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "ResourceType":{
          "shape":"ResourceType",
          "documentation":"<p>The type of resource in the Identity Store service, which is an enum object. Valid values include USER, GROUP, and IDENTITY_STORE.</p>"
        },
        "ResourceId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a resource in the identity store, which can be used as <code>UserId</code> or <code>GroupId</code>. The format for <code>ResourceId</code> is either <code>UUID</code> or <code>1234567890-UUID</code>, where <code>UUID</code> is a randomly generated value for each resource when it is created and <code>1234567890</code> represents the <code>IdentityStoreId</code> string value. In the case that the identity store is migrated from a legacy SSO identity store, the <code>ResourceId</code> for that identity store will be in the format of <code>UUID</code>. Otherwise, it will be in the <code>1234567890-UUID</code> format.</p>"
        },
        "Message":{"shape":"Message"},
        "RequestId":{
          "shape":"RequestId",
          "documentation":"<p>The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.</p>"
        }
      },
      "documentation":"<p>Indicates that a requested resource is not found.</p>",
      "exception":true
    },
    "ResourceType":{
      "type":"string",
      "enum":[
        "GROUP",
        "USER",
        "IDENTITY_STORE"
      ]
    },
    "SensitiveStringType":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r  ]+",
      "sensitive":true
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"},
        "RequestId":{
          "shape":"RequestId",
          "documentation":"<p>The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.</p>"
        }
      },
      "documentation":"<p>Indicates that the principal has crossed the throttling limits of the API operations.</p>",
      "exception":true
    },
    "User":{
      "type":"structure",
      "required":[
        "UserName",
        "UserId"
      ],
      "members":{
        "UserName":{
          "shape":"UserName",
          "documentation":"<p>Contains the user’s user name value. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. The characters <code>&lt;&gt;;:%</code> are excluded. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.</p>"
        },
        "UserId":{
          "shape":"ResourceId",
          "documentation":"<p>The identifier for a user in the identity store.</p>"
        }
      },
      "documentation":"<p>A user object, which contains a specified user’s metadata and attributes.</p>"
    },
    "UserName":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+",
      "sensitive":true
    },
    "Users":{
      "type":"list",
      "member":{"shape":"User"}
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"},
        "RequestId":{
          "shape":"RequestId",
          "documentation":"<p>The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.</p>"
        }
      },
      "documentation":"<p>The request failed because it contains a syntax error.</p>",
      "exception":true
    }
  },
  "documentation":"<p>The AWS Single Sign-On (SSO) Identity Store service provides a single place to retrieve all of your identities (users and groups). For more information about AWS, see the <a href=\"https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html\">AWS Single Sign-On User Guide</a>.</p>"
}
