> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chronosphere.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Teams

export const AddToDashboardIcon = props => {
  return <svg viewBox="0 0 20 20" className="inline-block h-5 w-5 fill-current" {...props}>
      <path fillRule="evenodd" clipRule="evenodd" d="M3 3H9V9H3V3ZM11 3H17V9H11V3ZM3 11H9V17H3V11ZM13.25 11H14.75V13.25H17V14.75H14.75V17H13.25V14.75H11V13.25H13.25V11ZM12.5 4.5V7.5H15.5V4.5H12.5ZM4.5 4.5V7.5H7.5V4.5H4.5ZM4.5 12.5V15.5H7.5V12.5H4.5Z" />
    </svg>;
};

export const CollectionIcon = props => {
  const drawPath = "M21 6.5c-1.66 0-3 1.34-3 3 0 .07 0 .14.01.21l-2.03.68c-.64-1.21-1.82-2.09-3.22-2.32V5.91C14.04 5.57 15 4.4 15 3c0-1.66-1.34-3-3-3S9 1.34 9 3c0 1.4.96 2.57 2.25 2.91v2.16c-1.4.23-2.58 1.11-3.22 2.32l-2.04-.68C6 9.64 6 9.57 6 9.5c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3c1.06 0 1.98-.55 2.52-1.37l2.03.68c-.2 1.29.17 2.66 1.09 3.69l-1.41 1.77C6.85 17.09 6.44 17 6 17c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3c0-.68-.22-1.3-.6-1.8l1.41-1.77c1.36.76 3.02.75 4.37 0l1.41 1.77c-.37.5-.59 1.12-.59 1.8 0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3c-.44 0-.85.09-1.23.26l-1.41-1.77c.93-1.04 1.29-2.4 1.09-3.69l2.03-.68c.53.82 1.46 1.37 2.52 1.37 1.66 0 3-1.34 3-3S22.66 6.5 21 6.5zm-18 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM6 21c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-18c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm1 12c-1.38 0-2.5-1.12-2.5-2.5S10.62 10 12 10s2.5 1.12 2.5 2.5S13.38 15 12 15zm6 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm3-8.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z";
  return <svg viewBox="0 0 24 25" data-testid="CollectionIcon" aria-label="CollectionIcon" {...props} className="inline-block h-5 w-5 fill-current">
      <path d={drawPath} />
    </svg>;
};

export const CollectionNavIcon = props => {
  const drawPath = "M8.4 18.2C8.8 18.7 9 19.3 9 20C9 21.7 7.7 23 6 23S3 21.7 3 20 4.3 17 6 17C6.4 17 6.8 17.1 7.2 17.3L8.6 15.5C7.7 14.5 7.3 13.1 7.5 11.8L5.5 11.1C5 11.9 4.1 12.5 3 12.5C1.3 12.5 0 11.2 0 9.5S1.3 6.5 3 6.5 6 7.8 6 9.5V9.7L8 10.4C8.6 9.2 9.8 8.3 11.2 8.1V5.9C10 5.6 9 4.4 9 3C9 1.3 10.3 0 12 0S15 1.3 15 3C15 4.4 14 5.6 12.8 5.9V8.1C14.2 8.3 15.4 9.2 16 10.4L18 9.7V9.5C18 7.8 19.3 6.5 21 6.5S24 7.8 24 9.5 22.7 12.5 21 12.5C19.9 12.5 19 11.9 18.5 11.1L16.5 11.8C16.7 13.1 16.3 14.5 15.4 15.5L16.8 17.3C17.2 17.1 17.6 17 18 17C19.7 17 21 18.3 21 20S19.7 23 18 23 15 21.7 15 20C15 19.3 15.2 18.7 15.6 18.2L14.2 16.4C12.8 17.2 11.2 17.2 9.8 16.4L8.4 18.2Z";
  return <svg viewBox="0 0 24 24" data-testid="Collections" aria-label="Collections" {...props} className="inline-block h-5 w-5 fill-current">
      <path d={drawPath} />
    </svg>;
};

export const ServiceIcon = props => {
  return <svg viewBox="0 0 22 20" {...props} className="inline-block h-5 w-5 fill-current" aria-label="ServiceIcon">
      <path fillRule="evenodd" clipRule="evenodd" d="M10.7339 0.0766817C10.8966 -0.0255606 11.1034 -0.0255606 11.2661 0.0766817L16.2661 3.21954C16.4117 3.31104 16.5 3.47092 16.5 3.64286V8.35714C16.5 8.52908 16.4117 8.68896 16.2661 8.78046L11.2661 11.9233C11.1034 12.0256 10.8966 12.0256 10.7339 11.9233L5.73391 8.78046C5.58834 8.68896 5.5 8.52908 5.5 8.35714V3.64286C5.5 3.47092 5.58834 3.31104 5.73391 3.21954L10.7339 0.0766817ZM6.5 4.54772V8.08086L10.5 10.5951V7.062L6.5 4.54772ZM11.5 7.062V10.5951L15.5 8.08086V4.54772L11.5 7.062ZM15.0605 3.64286L11 6.19514L6.93955 3.64286L11 1.09057L15.0605 3.64286Z" />
      <path fillRule="evenodd" clipRule="evenodd" d="M5.73391 8.07668C5.89657 7.97444 6.10343 7.97444 6.26609 8.07668L11.2661 11.2195C11.4117 11.311 11.5 11.4709 11.5 11.6429V16.3571C11.5 16.5291 11.4117 16.689 11.2661 16.7805L6.26609 19.9233C6.10343 20.0256 5.89657 20.0256 5.73391 19.9233L0.733914 16.7805C0.588344 16.689 0.5 16.5291 0.5 16.3571V11.6429C0.5 11.4709 0.588344 11.311 0.733914 11.2195L5.73391 8.07668ZM1.5 12.5477V16.0809L5.5 18.5951V15.062L1.5 12.5477ZM6.5 15.062V18.5951L10.5 16.0809V12.5477L6.5 15.062ZM10.0605 11.6429L6 14.1951L1.93955 11.6429L6 9.09057L10.0605 11.6429Z" />
      <path fillRule="evenodd" clipRule="evenodd" d="M15.7339 8.07668C15.8966 7.97444 16.1034 7.97444 16.2661 8.07668L21.2661 11.2195C21.4117 11.311 21.5 11.4709 21.5 11.6429V16.3571C21.5 16.5291 21.4117 16.689 21.2661 16.7805L16.2661 19.9233C16.1034 20.0256 15.8966 20.0256 15.7339 19.9233L10.7339 16.7805C10.5883 16.689 10.5 16.5291 10.5 16.3571V11.6429C10.5 11.4709 10.5883 11.311 10.7339 11.2195L15.7339 8.07668ZM11.5 12.5477V16.0809L15.5 18.5951V15.062L11.5 12.5477ZM16.5 15.062V18.5951L20.5 16.0809V12.5477L16.5 15.062ZM20.0605 11.6429L16 14.1951L11.9395 11.6429L16 9.09057L20.0605 11.6429Z" />
    </svg>;
};

export const ServiceNavIcon = props => {
  return <svg viewBox="0 0 20 20" {...props} className="inline-block h-5 w-5 fill-current" aria-label="Services">
      <path d="M0 13.5463C0 13.3708 0.157997 13.2607 0.284979 13.3478L4.18974 16.0263C4.24909 16.067 4.28571 16.1427 4.28571 16.2248V19.7709C4.28571 19.9465 4.12772 20.0566 4.00074 19.9695L0.0959735 17.291C0.0366259 17.2503 0 17.1745 0 17.0925V13.5463Z" />
      <path d="M5.2381 16.2248C5.2381 16.1427 5.27472 16.067 5.33407 16.0263L9.23883 13.3478C9.36581 13.2607 9.52381 13.3708 9.52381 13.5463V17.0925C9.52381 17.1745 9.48718 17.2503 9.42784 17.291L5.52307 19.9695C5.39609 20.0566 5.2381 19.9465 5.2381 19.7709V16.2248Z" />
      <path d="M4.85641 15.0372L8.75079 12.3658C8.87876 12.2781 8.87876 12.0566 8.75079 11.9688L4.85641 9.29746C4.79785 9.25729 4.72596 9.25729 4.6674 9.29746L0.773017 11.9688C0.645052 12.0566 0.645052 12.2781 0.773016 12.3658L4.6674 15.0372C4.72596 15.0774 4.79785 15.0774 4.85641 15.0372Z" />
      <path d="M5.23804 4.279C5.23804 4.10344 5.39603 3.99337 5.52302 4.08048L9.42778 6.75893C9.48713 6.79964 9.52375 6.8754 9.52375 6.95746V10.5036C9.52375 10.6792 9.36575 10.7892 9.23877 10.7021L5.33401 8.02368C5.27466 7.98297 5.23804 7.90721 5.23804 7.82515V4.279Z" />
      <path d="M10.4761 6.95746C10.4761 6.8754 10.5128 6.79964 10.5721 6.75893L14.4769 4.08048C14.6039 3.99337 14.7618 4.10344 14.7618 4.279V7.82515C14.7618 7.9072 14.7252 7.98297 14.6659 8.02368L10.7611 10.7021C10.6341 10.7892 10.4761 10.6792 10.4761 10.5036V6.95746Z" />
      <path d="M10.0944 5.76985L13.9888 3.09851C14.1168 3.01073 14.1168 2.78924 13.9888 2.70147L10.0944 0.0301261C10.0359 -0.010042 9.964 -0.010042 9.90544 0.0301261L6.01105 2.70147C5.88309 2.78924 5.88309 3.01073 6.01105 3.09851L9.90544 5.76985C9.964 5.81002 10.0359 5.81002 10.0944 5.76985Z" />
      <path d="M10.4761 13.5463C10.4761 13.3708 10.6341 13.2607 10.7611 13.3478L14.6658 16.0263C14.7252 16.067 14.7618 16.1427 14.7618 16.2248V19.7709C14.7618 19.9465 14.6038 20.0566 14.4768 19.9695L10.572 17.291C10.5127 17.2503 10.4761 17.1745 10.4761 17.0925V13.5463Z" />
      <path d="M15.7142 16.2248C15.7142 16.1427 15.7508 16.067 15.8101 16.0263L19.7149 13.3478C19.8419 13.2607 19.9999 13.3708 19.9999 13.5463V17.0925C19.9999 17.1745 19.9633 17.2503 19.9039 17.291L15.9991 19.9695C15.8722 20.0566 15.7142 19.9465 15.7142 19.7709V16.2248Z" />
      <path d="M15.3325 15.0372L19.2269 12.3658C19.3548 12.2781 19.3548 12.0566 19.2269 11.9688L15.3325 9.29746C15.2739 9.25729 15.202 9.25729 15.1435 9.29746L11.2491 11.9688C11.1211 12.0566 11.1211 12.2781 11.2491 12.3658L15.1435 15.0372C15.202 15.0774 15.2739 15.0774 15.3325 15.0372Z" />
    </svg>;
};

export const CSharpIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="m11.5 15.97.41 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96C2.56 15.77 2 14.16 2 12.21c.05-2.31.72-4.08 2-5.32C5.32 5.64 6.96 5 8.94 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49-1.06-.34c-.4-.1-.86-.15-1.39-.15-1.16-.01-2.12.36-2.87 1.1-.76.73-1.15 1.85-1.18 3.34 0 1.36.37 2.42 1.08 3.2.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32M13.89 19l.61-4H13l.34-2h1.5l.32-2h-1.5L14 9h1.5l.61-4h2l-.61 4h1l.61-4h2l-.61 4H22l-.34 2h-1.5l-.32 2h1.5L21 15h-1.5l-.61 4h-2l.61-4h-1l-.61 4h-2m2.95-6h1l.32-2h-1l-.32 2Z" style={{
  fill: "#28a561"
}} />
  </svg>;

export const PipeIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="M22 14h-2v2h-6v-3h2v-2h-2V6a2 2 0 0 0-2-2H4V2H2v8h2V8h6v3H8v2h2v5a2 2 0 0 0 2 2h8v2h2" style={{
  fill: "#28a561"
}} />
  </svg>;

A *team* defines how an organization grants permissions for sensitive
management and administrative operations to *accounts*, including
[*user accounts*](/administer/accounts-teams/user-accounts) and
[*service accounts*](/administer/accounts-teams/service-accounts).

A team's accounts have a shared responsibility for certain services. Chronosphere
Observability Platform represents those services as
[*collections*](/administer/collections), which contain resources related to the
service a collection represents, such as dashboards and monitors. A team can own
multiple collections.

All user and service accounts in a team that has the special System Administrator
(`SysAdmin`) role are *administrators*. If you're an administrator, you can
[add this role to a team](#add-a-role-to-a-team).

Teams can own collections and services, which in turn own other functions:

```mermaid actions={false} theme={null}
flowchart TD
    accDescr: Ownership flow for teams and functions
    Team[**Team**]
    Col(<A href="/administer/collections">Collections</a>)
    Ser(<a href="/observe/services">Services</a> )

    Team --> Col
    Team --> Ser

    Dash(<a href="/observe/dashboards">Dashboards</a>)
    Mon(<a href="/investigate/alerts/monitors">Monitors</a>)
    SLO(<a href="/observe/slo">SLOs</a>)

    Col --> Dash
    Col --> Mon
    Col --> SLO

    Dash2(<a href="/observe/dashboards">Dashboards</a>)
    Mon2(<a href="/investigate/alerts/monitors">Monitors</a>)
    SLO2(<a href="/observe/slo">SLOs</a>)

    Ser --> Dash2
    Ser --> Mon2
    Ser --> SLO2
```

## View teams

To search for a team:

1. Click the search bar to focus on it, or use the keyboard shortcut
   `Control+K` (`Command+K` on macOS).
2. Begin typing any part of the team's name.
3. Optional: Click the **Teams** filter at the top of the search results to
   constrain your results to only Teams.
4. Click the search result you're interested in, or use the arrow keys to select it
   and press enter, to go to that team.

### View teams and their collections

To view teams and the collections they own, in the navigation menu exit the **Admin**
menu (if needed, click **<Icon icon="square-arrow-right" /> Exit Admin**) and select
**<CollectionNavIcon /> Collections**. For details about working with collections,
see [Collections](/administer/collections).

### View a list of teams to manage

To view teams in a list that displays their members, provides an audit log of
membership changes, and includes management options for administrators:

<Tabs>
  <Tab title="Web" id="view-teams-web">
    In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and then select
    **Platform <span aria-label="and then">></span> Teams**.
  </Tab>

  <Tab title="Chronoctl" id="view-teams-chronoctl">
    Use the command:

    ```shell theme={null}
    chronoctl teams list
    ```
  </Tab>
</Tabs>

For details, see
[Accounts and Teams](/administer/accounts-teams#view-accounts-and-teams).

## Manage teams

<Note>
  To manage teams, you must use a user account or
  [service account](/administer/accounts-teams/service-accounts) that belongs to a team
  with the SysAdmin role.
</Note>

To manage teams, in the navigation menu, click **<Icon icon="shield-user" /> Go to Admin**
and then select **Platform <span aria-label="and then">></span> Teams**.

### Create a team

<Tabs>
  <Tab title="Web" id="create-a-team-web">
    To create a new team:

    1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin**
       and then select
       **Platform <span aria-label="and then">></span> Teams**.
    2. Click **Create team**.
    3. In the dialog that appears, enter a name for the new team and the access role it
       should have.
    4. Click **Save** to create the team.

    The team now appears in the list of users and teams.
  </Tab>

  <Tab title="Chronoctl" id="create-a-team-chronoctl">
    <Warning>
      To create teams or modify team membership with Chronoctl, you must use a user account
      or [service account](/administer/accounts-teams/service-accounts) that
      belongs to a team with the SysAdmin role.
    </Warning>

    To create and manage a team with [Chronoctl](/tooling/chronoctl),
    use the `Team` resource type. The resource can contain these fields:

    | Field         | Type                  | Description                                                                                                                               |
    | ------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
    | `name`        | String                | The team name as displayed in Observability Platform.                                                                                     |
    | `slug`        | String                | Optional: A unique identifier that Observability Platform uses to identify the team. If omitted, Observability Platform generates a slug. |
    | `description` | String                | Optional: A description displayed when viewing this team.                                                                                 |
    | `user_emails` | Collection of strings | Contains an item for each member account's email address.                                                                                 |

    To generate an example Team resource, run `chronoctl teams scaffold`.

    If an email address in `users` doesn't already have an Observability Platform
    account, the app creates a pending user account for that email address. When that
    user signs in, Observability Platform then activates the account.

    For example, this YAML resource creates a team named `DBAs` in Observability
    Platform, with the description `Database administrators`, and which the app
    identifies with the slug `dbas`. It also includes the listed accounts identified by
    their email addresses as team members:

    ```yaml theme={null}
    api_version: v1/config
    kind: Team
    spec:
      name: DBAs
      slug: dbas
      description: "Database administrators"
      user_emails:
        - adam@example.com
        - betty@example.com
    ```

    To include service accounts, add the service account's internal email address to
    the `users` list. For details, see [Service Accounts](/administer/accounts-teams/service-accounts).
  </Tab>

  <Tab title="Terraform" id="create-a-team-terraform">
    <Warning>
      To create teams or modify team membership with Terraform, you must use a user account
      or [service account](/administer/accounts-teams/service-accounts) that
      belongs to a team with the SysAdmin role.
    </Warning>

    To create and manage a team with [Terraform](/tooling/infrastructure/terraform),
    declare the `chronosphere_team` resource type and provide a resource name. The resource
    can contain these fields:

    | Field         | Type             | Description                                                                                                                               |
    | ------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
    | `name`        | String           | The team name as displayed in Observability Platform.                                                                                     |
    | `slug`        | String           | Optional: A unique identifier that Observability Platform uses to identify the team. If omitted, Observability Platform generates a slug. |
    | `description` | String           | Optional: A description displayed when viewing this team.                                                                                 |
    | `user_emails` | Array of strings | The email address for each member account.                                                                                                |

    For example, this resource creates a team referred to by Terraform as `dbas`, named
    `DBAs` in Observability Platform, and identified in the app with the slug `dbas`. It
    also includes the listed accounts identified by their email addresses as team
    members:

    ```terraform theme={null}
    resource "chronosphere_team" "dbas" {
      name = "DBAs"
      slug = "dbas"
      description = "Database administrators"

      user_emails = [
        "adam@example.com",
        "betty@example.com",
      ]
    }
    ```

    To include service accounts, add the service account's internal email address to
    the `user_emails` array. For details, see [Service Accounts](/administer/accounts-teams/service-accounts).

    1. Add the definition to a Terraform file.
    2. Run this command to create the resource:

       ```shell theme={null}
       terraform apply
       ```
  </Tab>

  <Tab title="API" id="create-a-team-api">
    To complete this action with the Chronosphere API, use the
    [`CreateTeam`](/tooling/api-info/definition/operations/CreateTeam) endpoint.

    Because the Chronosphere API requires authentication, include an API token with your
    `curl` request, as shown in the following example. For more details, see
    [Create an API token](/tooling/api-info#create-an-api-token).

    ```shell /"TOKEN"/ /INSTANCE/ /METHOD/ /ENDPOINT_PATH/ theme={null}
    export CHRONOSPHERE_API_TOKEN="TOKEN"
    export CHRONOSPHERE_DOMAIN="INSTANCE.chronosphere.io"

    curl -H "API-Token: ${CHRONOSPHERE_API_TOKEN}" \
         -X METHOD "https://${CHRONOSPHERE_DOMAIN}/ENDPOINT_PATH"
    ```

    Replace the following:

    * *`TOKEN`*: Your API token.
    * *`INSTANCE`*: The subdomain name for your organization's Observability Platform instance.
    * *`METHOD`*: The HTTP method to use with the request, such as `GET` or `POST`.
    * *`ENDPOINT_PATH`*: The specific endpoint you want to access.
  </Tab>
</Tabs>

### Edit team membership

<Tabs>
  <Tab title="Web" id="edit-team-membership-web">
    To add users to or remove users from a team:

    1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and then select
       **Platform <span aria-label="and then">></span> Teams**.
    2. [Select the team](/administer/accounts-teams#view-accounts-and-teams) to manage.
    3. Click **<Icon icon="pencil" /> Edit Team**.
    4. In the **Team Members** section, click **Update Membership**.
    5. From the account list that appears, select the checkbox for each account you want
       to add to the team, and clear the checkbox for each account you want to remove
       from the team.
    6. Click **Save** to edit the team's membership.

    The team page updates its membership list accordingly, and the audit log adds an
    entry logging the operation.
  </Tab>

  <Tab title="Chronoctl" id="edit-team-membership-chronoctl">
    <Warning>
      To modify teams with Chronoctl, you must use a user account or
      [service account](/administer/accounts-teams/service-accounts) that
      belongs to a team with the `SysAdmin` role.
    </Warning>

    You can use [Chronoctl](/tooling/chronoctl) to replace and update a team and
    its membership with those defined in a YAML file.

    To generate a YAML description of your current teams and accounts, see
    [View Accounts and Teams](/administer/accounts-teams#view-accounts-and-teams).

    Following the `DBAs` team example from [creating a team](#create-a-team),
    to add a user to that team, update the YAML to include the new user's email:

    ```yaml theme={null}
    api_version: v1/config
    kind: Team
    spec:
      name: DBAs
      slug: dbas
      description: "Database administrators"
      user_emails:
        - adam@example.com
        - betty@example.com
        - charles@example.com
    ```

    To apply the changes, use the Chronoctl `chronoctl teams update` command, which
    updates teams but doesn't create them if they don't already exist:

    ```shell /FILE_NAME/ theme={null}
    chronoctl teams update -f FILE_NAME.yaml
    ```

    Replace *`FILE_NAME`* with the path to the YAML definition file.

    You can test the changes without applying them by including the `--dry-run` flag:

    ```shell /FILE_NAME/ theme={null}
    chronoctl teams update -f FILE_NAME.yaml --dry-run
    ```

    To force `teams update` to create a defined team if it doesn't exist, include the
    `--create-if-missing` flag:

    ```shell /FILE_NAME/ theme={null}
    chronoctl teams update -f FILE_NAME.yaml --create-if-missing
    ```
  </Tab>

  <Tab title="Terraform" id="edit-team-membership-terraform">
    To edit a team's membership using [Terraform](/tooling/infrastructure/terraform), modify the
    `user_emails` array in the team's `chronosphere_team` resource, and then apply the
    resource using Terraform.
  </Tab>

  <Tab title="API" id="edit-team-membership-api">
    To complete this action with the Chronosphere API, use the
    [`UpdateTeam`](/tooling/api-info/definition/operations/UpdateTeam) endpoint.

    Because the Chronosphere API requires authentication, include an API token with your
    `curl` request, as shown in the following example. For more details, see
    [Create an API token](/tooling/api-info#create-an-api-token).

    ```shell /"TOKEN"/ /INSTANCE/ /METHOD/ /ENDPOINT_PATH/ theme={null}
    export CHRONOSPHERE_API_TOKEN="TOKEN"
    export CHRONOSPHERE_DOMAIN="INSTANCE.chronosphere.io"

    curl -H "API-Token: ${CHRONOSPHERE_API_TOKEN}" \
         -X METHOD "https://${CHRONOSPHERE_DOMAIN}/ENDPOINT_PATH"
    ```

    Replace the following:

    * *`TOKEN`*: Your API token.
    * *`INSTANCE`*: The subdomain name for your organization's Observability Platform instance.
    * *`METHOD`*: The HTTP method to use with the request, such as `GET` or `POST`.
    * *`ENDPOINT_PATH`*: The specific endpoint you want to access.
  </Tab>
</Tabs>

## Assign team roles and permissions

Observability Platform teams use *roles* to grant or restrict access to features
that create, edit, or delete resources, teams, and accounts. Roles are assigned
to teams, and all accounts that belong to a team gain the permissions granted by
that team's role.

During creation, accounts are assigned to the **Default** team, which has the `Editor`
role. The **Default** team can't be deleted, and its role can't be changed.
[Service accounts](/administer/accounts-teams/service-accounts#create-an-unrestricted-service-account)
also can't be removed from the **Default** team and therefore always have **Editor**
access.

<Note>
  To remove editing access from a user,
  [remove the user from the **Default** team](#edit-team-membership). This limits
  the user to read-only access provided they don't have edit
  access through membership in another team.
</Note>

The available roles are:

* `None`: Accounts on teams with this role can view pages in Observability Platform
  but can't create, edit, or remove resources or accounts. Accounts that don't
  belong to any team also have the `None` role by default.
* `Editor`: Accounts on teams with this role can create, view, edit, and delete
  resources within Observability Platform, but can't create, edit, or delete accounts
  and teams.
* `SysAdmin`: Any account that's a member of a team with the System Administrator
  (`SysAdmin`) role can create, edit, and delete accounts and teams, assign accounts
  to teams, and assign roles to teams. Accounts with this role are designated by a
  <Icon icon="key" /> key icon next to their name in the **Users** list.
* `User Administrator`: Accounts belonging to teams with this role can access the
  System for Cross-domain Identity Management (SCIM) API, which manages accounts
  that use single sign-on. This role grants no other permissions.

  The `User Administrator` role can be assigned to teams only in organizations that
  have SCIM integration enabled. For more information, see
  [Okta user synchronization](/administer/accounts-teams/okta).

If an account belongs to multiple teams with different roles, they inherit the
highest-level permissions of each assigned team. For example, an account in a team
with the `Editor` role and a second team with the `SysAdmin` role has both sets of
privileges.

The following chart summarizes roles and permissions:

| Action                                             |                    None                    |                   Editor                   |                  SysAdmin                  |                 User Admin                 |
| -------------------------------------------------- | :----------------------------------------: | :----------------------------------------: | :----------------------------------------: | :----------------------------------------: |
| Interact with SCIM API                             |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |
| View pages in Observability Platform               | <Icon icon="circle-check" color="green" /> | <Icon icon="circle-check" color="green" /> | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Add and edit user and service accounts             |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Add, edit, and remove teams                        |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Change users' team membership                      |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Apply service configuration changes                |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Add, edit, and remove trace control plane datasets |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Add, edit, and remove derived labels               |       <Icon icon="ban" color="red" />      |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |
| Add, edit, and remove other resources              |       <Icon icon="ban" color="red" />      | <Icon icon="circle-check" color="green" /> | <Icon icon="circle-check" color="green" /> |       <Icon icon="ban" color="red" />      |

### Add a role to a team

To add a role to a team:

1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and then select
   **Platform <span aria-label="and then">></span> Teams**.
2. [Select the team](/administer/accounts-teams#view-accounts-and-teams)
   to manage.
3. In the **Team Information** section, click **<Icon icon="pencil" /> Edit**.
4. Click the **Role** dropdown and select the role you want to assign to the team.
5. Click **Save**.

### Remove a role from a team

To remove a role from a team:

1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and then select
   **Platform <span aria-label="and then">></span> Teams**.
2. [Select the team](/administer/accounts-teams#view-accounts-and-teams) to manage.
3. In the **Team Information** section, click **<Icon icon="pencil" /> Edit**.
4. Click the **Role** dropdown and select the **None** role.
5. Click **Save**.

### Rename a team

To rename a team:

1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and then select
   **Platform <span aria-label="and then">></span> Teams**.
2. [Select the team](/administer/accounts-teams#view-accounts-and-teams) to manage.
3. In the **Team Information** section, click **<Icon icon="pencil" /> Edit**.
4. Change the team's name in the **Name** field.
5. Click **Save**.

### Describe a team

Team pages can display a brief description in the **Team Information** section.
You can use this description to clarify the team's purpose, identify the people
responsible for managing it, or provide general information or context to the team's
activities.

You can also add links to URLs, whether within or external to Observability Platform,
to the **Team Information** section.

To access a team's information:

1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and then select
   **Platform <span aria-label="and then">></span> Teams**.
2. [Select the team](/administer/accounts-teams#view-accounts-and-teams) to manage.
3. In the **Team Information** section, click **<Icon icon="pencil" /> Edit**.

To add, edit, or remove a team's description:

1. Enter the team description in the **Description** field.
2. Click **Save**.

To add links to a team's information:

1. In the **Team Links** section, click **<Icon icon="plus" /> Add**. This
   adds a row of fields to the section.
2. Enter the link text in the **Link Name** field.
3. Enter the link target in the **URL** field.
4. Repeat these steps to add more links.
5. Click **Save**.

To edit a team's links:

1. In the **Team Links** section, modify the link's **Link Name** and **URL** fields.
2. Click **Save**.

To remove links from a team's information:

1. In the **Team Links** section, click the <Icon icon="trash" /> delete
   button in the rows of the links you want to delete.
2. Click **Save**.

### Delete a team

Use one of the following methods to delete a team. The **Default** team can't be
deleted.

<Tabs>
  <Tab title="Web" id="delete-a-team-web">
    To delete a team:

    1. In the navigation menu, click **<Icon icon="shield-user" /> Go to Admin** and
       then select **Platform <span aria-label="and then">></span> Teams**.
    2. [Select the team](/administer/accounts-teams#view-accounts-and-teams) to delete.
    3. In the **Team Information** section, click **<Icon icon="pencil" /> Edit**.
    4. Click **Delete team**.
    5. In the confirmation dialog that appears, click **Delete**.
  </Tab>

  <Tab title="Chronoctl" id="delete-a-team-chronoctl">
    To delete teams with [Chronoctl](/tooling/chronoctl), use the `chronoctl teams delete`
    command:

    ```shell /SLUG/ theme={null}
    chronoctl teams delete SLUG
    ```

    Replace *`SLUG`* with the unique slug of the team you want to delete.

    For example, to delete the team with the slug `dbas`, run:

    ```shell theme={null}
    chronoctl teams delete dbas
    ```
  </Tab>

  <Tab title="Terraform" id="delete-a-team-terraform">
    To delete a resource that's managed by [Terraform](/tooling/infrastructure/terraform):

    1. Edit your Terraform configuration file to remove the pre-existing resource
       definition.
    2. Run this command to remove the resource from Observability Platform:

       ```shell theme={null}
       terraform apply
       ```
  </Tab>

  <Tab title="API" id="delete-a-team-api">
    To complete this action with the Chronosphere API, use the
    [`DeleteTeam`](/tooling/api-info/definition/operations/DeleteTeam) endpoint.

    Because the Chronosphere API requires authentication, include an API token with your
    `curl` request, as shown in the following example. For more details, see
    [Create an API token](/tooling/api-info#create-an-api-token).

    ```shell /"TOKEN"/ /INSTANCE/ /METHOD/ /ENDPOINT_PATH/ theme={null}
    export CHRONOSPHERE_API_TOKEN="TOKEN"
    export CHRONOSPHERE_DOMAIN="INSTANCE.chronosphere.io"

    curl -H "API-Token: ${CHRONOSPHERE_API_TOKEN}" \
         -X METHOD "https://${CHRONOSPHERE_DOMAIN}/ENDPOINT_PATH"
    ```

    Replace the following:

    * *`TOKEN`*: Your API token.
    * *`INSTANCE`*: The subdomain name for your organization's Observability Platform instance.
    * *`METHOD`*: The HTTP method to use with the request, such as `GET` or `POST`.
    * *`ENDPOINT_PATH`*: The specific endpoint you want to access.
  </Tab>
</Tabs>
