---
title: "surface-asset · types"
url: https://developers.dagio.ai/fr/reference/types-surface-asset/
---

# surface-asset · types

   
                              
                                                                       
                                     
                  
           
          
   

Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.

## SurfaceAssetMediaType

Native raster formats admitted by the first qualified binary asset protocol.

```typescript
export type SurfaceAssetMediaType = 'image/png' | 'image/jpeg';
```

```typescript
type SurfaceAssetMediaType = "image/png" | "image/jpeg";
```

## SurfaceAssetPayloadReference

Provider-specific immutable bytes are referenced, never embedded in canonical Revision JSON.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `storageLocation` | `"r2-asset"` | **Requis.** Référence de stockage contrôlée, distincte d’un contenu encodé dans le Model. |
| `payloadHash` | `string` | **Requis.** Définit « payload Hash » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `payloadSize` | `number` | **Requis.** Définit « payload Size » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface SurfaceAssetPayloadReference {
  storageLocation: 'r2-asset';
  payloadHash: string;
  payloadSize: number;
}
```

## SurfaceAssetContent

Explicit native content kind; a legacy Markdown document is never reinterpreted as an asset.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `type` | `"surface_asset"` | **Requis.** Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `schema_version` | `1` | **Requis.** Définit « schema_version » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `mediaType` | `SurfaceAssetMediaType` | **Requis.** Type MIME de la ressource; doit appartenir aux formats autorisés. |
| `pixelWidth` | `number` | **Requis.** Définit « pixel Width » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `pixelHeight` | `number` | **Requis.** Définit « pixel Height » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `payload` | `SurfaceAssetPayloadReference` | **Requis.** Définit « payload » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface SurfaceAssetContent {
  type: 'surface_asset';
  schema_version: 1;
  mediaType: SurfaceAssetMediaType;
  pixelWidth: number;
  pixelHeight: number;
  payload: SurfaceAssetPayloadReference;
}
```

## SurfaceAssetPolicy

Immutable Model capability for asset instances, distinct from a user or source grant.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `contract` | `"SurfaceAssetPolicy@1"` | **Requis.** Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
| `mediaTypes` | `SurfaceAssetMediaType[]` | **Requis.** Types MIME autorisés pour les ressources de cette politique. |
| `maximumBytes` | `number` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `maximumPixels` | `number` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |

```typescript
export interface SurfaceAssetPolicy {
  contract: 'SurfaceAssetPolicy@1';
  mediaTypes: SurfaceAssetMediaType[];
  maximumBytes: number;
  maximumPixels: number;
}
```

## SurfaceAssetReference

Revision-pinned source address; neither a media id nor a content hash grants access.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `contract` | `"SurfaceAssetReference@1"` | **Requis.** Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
| `surfaceId` | `string` | **Requis.** Définit « surface Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `revisionId` | `string` | **Requis.** Définit « revision Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `workspaceId` | `string` | **Requis.** Définit « workspace Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `modelId` | `string` | **Requis.** Définit « model Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `modelRevisionId` | `string` | **Requis.** Définit « model Revision Id » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `definitionPath` | `string` | **Requis.** Chemin exact d’une définition du Model; il ne désigne pas l’ID d’une fiche. |
| `payloadHash` | `string` | **Requis.** Définit « payload Hash » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface SurfaceAssetReference {
  contract: 'SurfaceAssetReference@1';
  surfaceId: string;
  revisionId: string;
  workspaceId: string;
  modelId: string;
  modelRevisionId: string;
  definitionPath: string;
  payloadHash: string;
}
```

[Toutes les références](https://developers.dagio.ai/fr/reference/)

<!-- surface-examples:start -->

## Exemples appliqués : Choisir le contenu de la Surface

Les propriétés du composant sélectionnent l’éditeur natif; chaque contenu conserve son propre format.

### Configuration

Propriétés du composant `NativeContent.props`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/surface-components/#nativecontent).

```json
{
  "recordProfileKey": "client",
  "contentKind": "document"
}
```

### Variante et raccordement

Propriétés du composant `NativeContent.props`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/surface-components/#nativecontent).

```json
{
  "recordProfileKey": "client",
  "contentKind": "code"
}
```

### Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

1. Soumission S-1042
2. Objet et besoin
3. Proposition
4. Références retenues

<!-- surface-examples:end -->
