# 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 TeamCity connector uses the following default correlation and object configurations.

## Default Correlation Configuration

Before you aggregate accounts from this source, you can map account attributes with their corresponding identity attributes based on your requirements.

You can customize the correlation configuration. Refer to [Assigning Source Accounts to Identities](<https://documentation.sailpoint.com/saas/help/accounts/correlation.html>) for more information.

When you first create the TeamCity source, the default correlation mapping is:

| Account Attribute | Operation | Identity Attribute |
| --- | --- | --- |
| email | Equals, ignoring case | Email |
| username | Equals, ignoring case | Username |

## 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 TeamCity connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.

The account schema represents TeamCity users. The identity attribute is `id`, the display attribute is `username`, and the group attribute is `groups`.

| Attribute Name | Description |
| --- | --- |
| `id` | Unique numeric identifier of the user. |
| `username` | Username the user enters to sign in to TeamCity. |
| `name` | Display name of the user. |
| `email` | Email address of the user. |
| `lastLogin` | Date and time the user last signed in. |
| `hasPassword` | Whether the user has a password. The value is `true` or `false`. |
| `enabled2FA` | Whether two-factor authentication is enabled. The value is `true` or `false`. |
| `groups` | Keys of the groups the user belongs to. |
| `roles` | IDs of the roles assigned directly to the user. |

## 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.

### Default Group Attributes

The TeamCity connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups.

The group entitlement represents a TeamCity user group. The identity attribute is `key`, and the display attribute is `name`.

| Attribute Name | Description |
| --- | --- |
| `key` | Unique identifier of the group. |
| `name` | Display name of the group. |
| `description` | Description of the group. |
| `parentGroups` | Keys of the parent groups this group belongs to. These values define the group hierarchy. |
| `childGroups` | Keys of the child groups that belong to this group. |
| `roles` | IDs of the roles assigned directly to the group. |

### Default Role Attributes

The TeamCity connector supports roles. The following attributes must be configured on the managed system and in the SailPoint source schema to manage roles.

The role entitlement represents a TeamCity permission template. The identity attribute is `roleId`, and the display attribute is `name`.

| Attribute Name | Description |
| --- | --- |
| `roleId` | Unique identifier of the role. |
| `name` | Display name of the role. |
| `permissions` | Names of the permissions granted by the role. |
| `includedRoles` | IDs of the roles included in this role. |
