# Schema Reference

The application schema is used to configure the objects returned from a connector.

> [!NOTE]
>
> - The **Account Schema** tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as **Entitlement** or **Multi-Valued**. Refer to [Managing Source Account Schemas](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.
> - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified.

The OpenAI SaaS connector uses the following default correlation and object configurations.

## Default Account Schema

Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location.

The set of account attributes each source stores and how they're organized is known as the account's *schema*. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to [Managing Source Account Schemas](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.

### Default Account Attributes

The OpenAI SaaS connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.

The following table lists the OpenAI account schema attributes:

| Attribute | Description | Type | Entitlement | Multi-valued |
| --- | --- | --- | --- | --- |
| id | The unique identifier of the user in the OpenAI organization. This is the identity attribute. | String | No | No |
| name | The display name of the user. This is the display attribute. | String | No | No |
| email | The primary email address of the user. | String | No | No |
| objectType | The OpenAI object type of the user record. | String | No | No |
| addedAt | The time the user was added to the OpenAI organization. | String | No | No |
| apiKeyLastUsedAt | The last time the user used an API key. | String | No | No |
| createdAt | The time the user identity was created. | String | No | No |
| developerPersona | The developer persona metadata returned by OpenAI. | String | No | No |
| technicalLevel | The technical level metadata returned by OpenAI. | String | No | No |
| isServiceAccount | Indicates whether the account is a service account (`true` or `false`). | Boolean | No | No |
| isScimManaged | Indicates whether SCIM manages the account (`true` or `false`). | Boolean | No | No |
| isDefault | Indicates whether this is the default account (`true` or `false`). | Boolean | No | No |
| isScaleTierAuthorizedPurchaser | Indicates whether the user is authorized to purchase the Scale Tier (`true` or `false`). | Boolean | No | No |
| projectMemberships | The projects in which the user has membership. | String | No | Yes |
| orgRoleIds | The organization-level roles assigned to the user. | String | Yes | Yes |
| projectRoleIds | The project-scoped roles assigned to the user. | String | Yes | Yes |
| groupIds | The groups assigned to the user. | String | Yes | Yes |

## Default Entitlement Attributes

Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to [Managing Entitlements](<https://documentation.sailpoint.com/saas/help/access/entitlements.html>) for more information.

> [!CAUTION]
>
> Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations.

### Object Type: orgRole

The following table lists the attributes for the orgRole entitlement:

| Attribute | Description | Type | Entitlement | Multi-valued |
| --- | --- | --- | --- | --- |
| id | The unique identifier for the organization role. This is the entitlement ID. | String | No | No |
| name | The organization role name. This is the entitlement name. | String | No | No |
| description | The role summary for the organization role. | String | No | No |
| permissions | The permission set granted by this role. | String | No | Yes |
| resourceType | The resource boundary for the role. For example, `api.organization`. | String | No | No |
| predefinedRole | Indicates whether OpenAI predefined the role (`true` or `false`). | Boolean | No | No |
| objectType | The OpenAI object type. Always set to `role`. | String | No | No |

### Object Type: projectRole

The following table lists the attributes for the projectRole entitlement:

| Attribute | Description | Type | Entitlement | Multi-valued |
| --- | --- | --- | --- | --- |
| id | The unique identifier for the project role, in the form `projectRole:<projectId>:<roleId>`. This is the entitlement ID. | String | No | No |
| name | The project role name. This is the entitlement name. | String | No | No |
| projectId | The identifier of the OpenAI project associated with the role. | String | No | No |
| projectName | The display name of the OpenAI project associated with the role. | String | No | No |
| description | The role summary for the project role. | String | No | No |
| permissions | The permission set granted by this role. | String | No | Yes |
| resourceType | The resource boundary for the project role. | String | No | No |
| predefinedRole | Indicates whether OpenAI predefined the role (`true` or `false`). | Boolean | No | No |
| objectType | The OpenAI object type. Always set to `role`. | String | No | No |

### Object Type: Group

The following table lists the attributes for the group entitlement:

| Attribute | Description | Type | Entitlement | Multi-valued |
| --- | --- | --- | --- | --- |
| id | The unique identifier for the group, in the form `group:<groupId>`. This is the entitlement ID. | String | No | No |
| name | The group name. This is the entitlement name. | String | No | No |
| description | The description of the group. | String | No | No |
| objectType | The OpenAI object type. The expected value is `organization.group`. | String | No | No |
| memberCount | The number of users in the group. | Integer | No | No |
