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

# Registry

export const GitHubLink = ({url, compact = false}) => <a href={url} target="_blank" rel="noopener noreferrer" className={compact ? "source-link" : "github-source-link"}>
    {compact ? "View source" : <>
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub source
      </>}
  </a>;

<GitHubLink compact url="https://github.com/wandb/wandb/blob/main/wandb/apis/public/registries/registry.py#L36" />

<h2 id="class-wandbapispublicregistry">
  <Badge color="yellow" size="lg" shape="rounded">Classe</Badge> wandb.apis.public.Registry
</h2>

Un registre individuel au sein du Registry.

```python theme={"system"}
(service_api: 'ServiceApi',
organization: 'str',
entity: 'str',
name: 'str',
attrs: 'RegistryFragment | None' = None)
```

<h2 id="args">
  Arguments
</h2>

<ResponseField name="service_api" type="ServiceApi">
  Aucune description fournie.
</ResponseField>

<ResponseField name="organization" type="str">
  Aucune description fournie.
</ResponseField>

<ResponseField name="entity" type="str">
  Aucune description fournie.
</ResponseField>

<ResponseField name="name" type="str">
  Aucune description fournie.
</ResponseField>

<ResponseField name="attrs" type="RegistryFragment | None">
  Aucune description fournie.
</ResponseField>

<h2 id="properties">
  Propriétés
</h2>

<ResponseField name="allow_all_artifact_types" type="bool">
  Renvoie une valeur indiquant si tous les types d’artifacts sont autorisés dans le registre.

  Si la valeur est `True`, des artifacts de n’importe quel type peuvent être ajoutés. Si elle est `False`, les artifacts sont
  limités aux types répertoriés dans `artifact_types`.
</ResponseField>

<ResponseField name="artifact_types" type="AddOnlyArtifactTypesList">
  Renvoie les types d’artifacts autorisés dans le registre.

  Si `allow_all_artifact_types` vaut `True`, `artifact_types` reflète les
  types précédemment enregistrés ou actuellement utilisés dans le registre.
  Si `allow_all_artifact_types` vaut `False`, les artifacts sont limités aux
  types présents dans `artifact_types`.

  Remarque :
  Les types d’artifacts précédemment enregistrés ne peuvent pas être supprimés.
</ResponseField>

<ResponseField name="created_at" type="str">
  Horodatage de la création du registre.
</ResponseField>

<ResponseField name="description" type="str | None">
  Description du registre.
</ResponseField>

<ResponseField name="entity" type="str">
  Entity de l’organisation propriétaire du registre.
</ResponseField>

<ResponseField name="full_name" type="str">
  Nom complet du registre, préfixe `wandb-registry-` compris.
</ResponseField>

<ResponseField name="id" type="str">
  ID unique de ce registre.
</ResponseField>

<ResponseField name="internal_id" type="str | None">
  `internalId` GraphQL du projet sous-jacent à ce registre, s’il a été récupéré.

  Il s’agit d’un ID global encodé en base64. Une fois décodé, il se présente sous la forme
  `Project:123` ou `ProjectInternalId:123`.
</ResponseField>

<ResponseField name="name" type="str">
  Nom du registre sans le préfixe `wandb-registry-`.
</ResponseField>

<ResponseField name="organization" type="str">
  Nom de l’organisation du registre.
</ResponseField>

<ResponseField name="path" type="list[str]">
  Aucune description fournie.
</ResponseField>

<ResponseField name="updated_at" type="str | None">
  Horodatage de la dernière mise à jour du registre.
</ResponseField>

<ResponseField name="visibility" type="The visibility level.">
  Visibilité du registre.
</ResponseField>

<h2 id="methods">
  Méthodes
</h2>

<h3 id="method-registryadd_members">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.add\_members()
</h3>

```python theme={"system"}
self, *members: 'User | UserMember | Team | TeamMember | str'
```

Ajoute des utilisateurs ou des équipes à ce registre.

<h5 id="arguments">
  Arguments
</h5>

<ResponseField name="members" type="User | UserMember | Team | TeamMember | str">
  Les utilisateurs ou équipes à ajouter au registre. Accepte des objets `User`, des objets `Team` ou leurs ID de type string.
</ResponseField>

<h5 id="raises">
  Exceptions levées
</h5>

* `TypeError` : si aucun membre n’est passé en argument.
* `ValueError` : s’il est impossible de déduire ou d’analyser les ID d’utilisateur ou d’équipe.

<h5 id="examples">
  Exemples
</h5>

```python theme={"system"}
import wandb

api = wandb.Api()

# Récupérer un registre existant
registry = api.registry(name="my-registry", organization="my-org")

user1 = api.user(username="some-user")
user2 = api.user(username="other-user")
registry.add_members(user1, user2)

my_team = api.team(name="my-team")
registry.add_members(my_team)
```

<h3 id="method-registrycollections">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.collections()
</h3>

```python theme={"system"}
self,
filter: 'dict[str, Any] | None' = None,
order: 'str | None' = None,
per_page: 'PositiveInt' = 100,
start: 'str | None' = None
```

Renvoie les collections de ce registre.

<h5 id="arguments-2">
  Arguments
</h5>

<ResponseField name="filter" type="dict[str, Any] | None">
  Mappage facultatif de filtres à appliquer à la requête sur les collections.
</ResponseField>

<ResponseField name="order" type="str | None">
  String facultatif indiquant l’ordre des résultats. Avec le préfixe « + », le tri est croissant (par défaut). Avec le préfixe « - », le tri est décroissant.
</ResponseField>

<ResponseField name="per_page" type="PositiveInt">
  Nombre de résultats à récupérer par page. En général, il n’y a aucune raison de modifier cette valeur.
</ResponseField>

<ResponseField name="start" type="str | None">
  Curseur de pagination permettant de reprendre une requête antérieure, obtenu à partir de l’attribut `.cursor` d’un paginateur précédent.
</ResponseField>

<h3 id="method-registrycreate">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.create()
</h3>

```python theme={"system"}
api: 'Api',
organization: 'str',
name: 'str',
visibility: "Literal['organization', 'restricted']",
description: 'str | None' = None,
artifact_types: 'list[str] | None' = None
```

Crée un nouveau registre.

Le nom du registre doit être unique au sein de l’organisation.
Cette fonction doit être appelée via `api.create_registry()`

<h5 id="arguments-3">
  Arguments
</h5>

<ResponseField name="api" type="Api">
  L’instance de l’API W\&B.
</ResponseField>

<ResponseField name="organization" type="str">
  Le nom de l’organisation.
</ResponseField>

<ResponseField name="name" type="str">
  Le nom du registre (sans le préfixe `wandb-registry-`).
</ResponseField>

<ResponseField name="visibility" type="Literal['organization', 'restricted']">
  Le niveau de visibilité ('organization' ou 'restricted').
</ResponseField>

<ResponseField name="description" type="str | None">
  Une description facultative du registre.
</ResponseField>

<ResponseField name="artifact_types" type="list[str] | None">
  Une liste facultative des types d’artifacts autorisés.
</ResponseField>

<h5 id="raises-2">
  Exceptions levées
</h5>

* `ValueError` : si un registre portant le même nom existe déjà dans l’organisation ou si la création échoue.

<h3 id="method-registrydelete">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.delete()
</h3>

```python theme={"system"}
self
```

Supprime le registre. Cette opération est irréversible.

<h3 id="method-registryload">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.load()
</h3>

```python theme={"system"}
self
```

Charge les attributs du registre depuis le backend.

<h3 id="method-registrymembers">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.members()
</h3>

```python theme={"system"}
self
```

Renvoie les membres actuels (utilisateurs et équipes) de ce registre.

<h3 id="method-registryremove_members">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.remove\_members()
</h3>

```python theme={"system"}
self, *members: 'User | UserMember | Team | TeamMember | str'
```

Retire des utilisateurs ou des équipes de ce registre.

<h5 id="arguments-4">
  Arguments
</h5>

<ResponseField name="members" type="User | UserMember | Team | TeamMember | str">
  Les utilisateurs ou les équipes à retirer du registre. Accepte des objets `User`, des objets `Team` ou leurs ID de type string.
</ResponseField>

<h5 id="raises-3">
  Exceptions levées
</h5>

* `TypeError` : si aucun membre n’est passé en argument.
* `ValueError` : s’il est impossible de déduire ou d’analyser les ID de l’utilisateur ou de l’équipe.

<h5 id="examples-2">
  Exemples
</h5>

```python theme={"system"}
import wandb

api = wandb.Api()

# Récupérer un registre existant
registry = api.registry(name="my-registry", organization="my-org")

user1 = api.user(username="some-user")
user2 = api.user(username="other-user")
registry.remove_members(user1, user2)

old_team = api.team(name="old-team")
registry.remove_members(old_team)
```

<h3 id="method-registrysave">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.save()
</h3>

```python theme={"system"}
self
```

Enregistre les attributs du registre dans le backend.

<h3 id="method-registryteam_members">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.team\_members()
</h3>

```python theme={"system"}
self
```

Renvoie les équipes actuellement membres de ce registre.

<h3 id="method-registryupdate_member">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.update\_member()
</h3>

```python theme={"system"}
self,
member: 'User | UserMember | Team | TeamMember | str',
role: 'MemberRole | str'
```

Met à jour le rôle d’un membre (utilisateur ou équipe) au sein de ce registre.

<h5 id="arguments-5">
  Arguments
</h5>

<ResponseField name="member" type="User | UserMember | Team | TeamMember | str">
  L’utilisateur ou l’équipe dont le rôle doit être mis à jour. Accepte un objet `User`, un objet `Team` ou leur ID sous forme de string.
</ResponseField>

<ResponseField name="role" type="MemberRole | str">
  Le nouveau rôle à attribuer au membre. Valeurs possibles :

  * "admin"
  * "member"
  * "viewer"
  * "restricted\_viewer" (si le serveur W\&B le prend en charge)
</ResponseField>

<h5 id="raises-4">
  Exceptions levées
</h5>

* `ValueError` : s’il est impossible de déterminer l’ID de l’utilisateur ou de l’équipe.

<h5 id="examples-3">
  Exemples
</h5>

Attribuer le rôle d’administrateur à tous les utilisateurs du registre

```python theme={"system"}
import wandb

api = wandb.Api()

# Récupérer un registre existant
registry = api.registry(name="my-registry", organization="my-org")

for member in registry.user_members():
    registry.update_member(member.user, role="admin")
```

<h3 id="method-registryuser_members">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.user\_members()
</h3>

```python theme={"system"}
self
```

Renvoie les utilisateurs actuellement membres de ce registre.

<h3 id="method-registryversions">
  <Badge color="blue" size="lg" shape="rounded">méthode</Badge> Registry.versions()
</h3>

```python theme={"system"}
self,
filter: 'dict[str, Any] | None' = None,
order: '_VersionOrder | None' = None,
per_page: 'PositiveInt' = 100,
start: 'str | None' = None
```

Renvoie les versions d’artifact de ce registre.

<h5 id="arguments-6">
  Arguments
</h5>

<ResponseField name="filter" type="dict[str, Any] | None">
  Mappage facultatif de filtres à appliquer à la requête sur les versions d'artifact.
</ResponseField>

<ResponseField name="order" type="_VersionOrder | None">
  String facultatif indiquant l'ordre des résultats. L'ordre peut être `created_at`, `artifact_size` ou `linked_at`. Avec le préfixe « + », le tri est croissant (par défaut). Avec le préfixe « - », le tri est décroissant.
</ResponseField>

<ResponseField name="per_page" type="PositiveInt">
  Nombre de résultats à récupérer par page. En général, il n'y a aucune raison de modifier cette valeur.
</ResponseField>

<ResponseField name="start" type="str | None">
  Curseur de pagination permettant de reprendre une requête antérieure, récupéré depuis l'attribut `.cursor` d'un paginateur précédent.
</ResponseField>


## Related topics

- [Deploy a container registry on CKS](/products/cks/tutorials/deploy-zot-registry.md)
