diff --git a/openapi/scaleway.qaas.v1alpha1.Api.yml b/openapi/scaleway.qaas.v1alpha1.Api.yml
index 1a7ce8d..3152f15 100644
--- a/openapi/scaleway.qaas.v1alpha1.Api.yml
+++ b/openapi/scaleway.qaas.v1alpha1.Api.yml
@@ -1,4 +1,4 @@
-openapi: 3.0.0
+openapi: 3.1.0
 info:
   title: Quantum as a Service API
   description: |-
@@ -285,6 +285,9 @@ tags:
 - name: Bookings
   description: |
     A booking is a reserved timeframe for a platform where only one user could send its jobs
+- name: Models
+  description: |
+    A model is a quantum computation (circuit, sequence, hamiltonian...) to be executed by job
 components:
   schemas:
     google.protobuf.Int32Value:
@@ -446,6 +449,14 @@ components:
           type: string
           description: Result of the job, if the job is finished.
           nullable: true
+        model_id:
+          type: string
+          description: Computation model ID executed by the job.
+          nullable: true
+        parameters:
+          type: string
+          description: Execution parameters for this job.
+          nullable: true
       x-properties-order:
       - id
       - name
@@ -458,6 +469,8 @@ components:
       - progress_message
       - job_duration
       - result_distribution
+      - model_id
+      - parameters
     scaleway.qaas.v1alpha1.JobCircuit:
       type: object
       properties:
@@ -559,6 +572,21 @@ components:
       x-properties-order:
       - total_count
       - jobs
+    scaleway.qaas.v1alpha1.ListModelsResponse:
+      type: object
+      properties:
+        total_count:
+          type: integer
+          description: Total number of models.
+          format: uint64
+        models:
+          type: array
+          description: List of models.
+          items:
+            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Model'
+      x-properties-order:
+      - total_count
+      - models
     scaleway.qaas.v1alpha1.ListPlatformsResponse:
       type: object
       properties:
@@ -638,6 +666,30 @@ components:
       x-properties-order:
       - total_count
       - sessions
+    scaleway.qaas.v1alpha1.Model:
+      type: object
+      properties:
+        id:
+          type: string
+          description: Unique ID of the model.
+        created_at:
+          type: string
+          description: Time at which the model was created. (RFC 3339 format)
+          format: date-time
+          example: "2022-03-22T12:34:56.123456Z"
+          nullable: true
+        url:
+          type: string
+          description: Storage URL of the model.
+          nullable: true
+        project_id:
+          type: string
+          description: Project ID in which the model has been created.
+      x-properties-order:
+      - id
+      - created_at
+      - url
+      - project_id
     scaleway.qaas.v1alpha1.Platform:
       type: object
       properties:
@@ -1058,6 +1110,11 @@ components:
           type: string
           description: An optional booking unique ID of an attached booking.
           nullable: true
+        model_id:
+          type: string
+          description: Default computation model ID to be executed by job assigned
+            to this session.
+          nullable: true
       x-properties-order:
       - id
       - name
@@ -1078,6 +1135,7 @@ components:
       - origin_id
       - progress_message
       - booking_id
+      - model_id
     scaleway.qaas.v1alpha1.Session.Access:
       type: string
       enum:
@@ -1475,6 +1533,14 @@ paths:
                   description: Maximum duration of the job. (in seconds)
                   example: 2.5s
                   nullable: true
+                model_id:
+                  type: string
+                  description: Computation model ID to be executed by the job.
+                  nullable: true
+                parameters:
+                  type: string
+                  description: Execution parameters for this job.
+                  nullable: true
               required:
               - name
               - session_id
@@ -1485,6 +1551,8 @@ paths:
               - session_id
               - circuit
               - max_duration
+              - model_id
+              - parameters
       security:
       - scaleway: []
       x-codeSamples:
@@ -1765,6 +1833,146 @@ paths:
         source: |-
           http GET "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}/results" \
             X-Auth-Token:$SCW_SECRET_KEY
+  /qaas/v1alpha1/models:
+    get:
+      tags:
+      - Models
+      operationId: ListModels
+      summary: List all models attached to the **project ID**
+      description: Retrieve information about all models of the provided **project
+        ID**.
+      parameters:
+      - in: query
+        name: project_id
+        description: List models belonging to this project ID.
+        required: true
+        schema:
+          type: string
+          description: List models belonging to this project ID.
+      - in: query
+        name: page
+        description: Page number.
+        schema:
+          type: integer
+          description: Page number.
+          format: int32
+      - in: query
+        name: page_size
+        description: Maximum number of results to return per page.
+        schema:
+          type: integer
+          description: Maximum number of results to return per page.
+          format: uint32
+      - in: query
+        name: order_by
+        description: Sort order of the returned results.
+        schema:
+          type: string
+          description: Sort order of the returned results.
+          enum:
+          - created_at_desc
+          - created_at_asc
+          default: created_at_desc
+      responses:
+        "200":
+          description: ""
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListModelsResponse'
+      security:
+      - scaleway: []
+      x-codeSamples:
+      - lang: cURL
+        source: |-
+          curl -X GET \
+            -H "X-Auth-Token: $SCW_SECRET_KEY" \
+            "https://api.scaleway.com/qaas/v1alpha1/models?project_id=string"
+      - lang: HTTPie
+        source: |-
+          http GET "https://api.scaleway.com/qaas/v1alpha1/models" \
+            X-Auth-Token:$SCW_SECRET_KEY \
+            project_id==string
+    post:
+      tags:
+      - Models
+      operationId: CreateModel
+      summary: Create a new model
+      description: Create and register a new model that can be executed through next
+        jobs. A model can also be assigned to a Session.
+      responses:
+        "200":
+          description: ""
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Model'
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                project_id:
+                  type: string
+                  description: Project ID to attach this model.
+                payload:
+                  type: string
+                  description: The serialized model data.
+                  nullable: true
+              x-properties-order:
+              - project_id
+              - payload
+      security:
+      - scaleway: []
+      x-codeSamples:
+      - lang: cURL
+        source: |-
+          curl -X POST \
+            -H "X-Auth-Token: $SCW_SECRET_KEY" \
+            -H "Content-Type: application/json" \
+            -d '{"project_id":"string"}' \
+            "https://api.scaleway.com/qaas/v1alpha1/models"
+      - lang: HTTPie
+        source: |-
+          http POST "https://api.scaleway.com/qaas/v1alpha1/models" \
+            X-Auth-Token:$SCW_SECRET_KEY \
+            project_id="string"
+  /qaas/v1alpha1/models/{model_id}:
+    get:
+      tags:
+      - Models
+      operationId: GetModel
+      summary: Get model information
+      description: Retrieve information about of the provided **model ID**.
+      parameters:
+      - in: path
+        name: model_id
+        description: Unique ID of the model.
+        required: true
+        schema:
+          type: string
+          description: Unique ID of the model.
+      responses:
+        "200":
+          description: ""
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Model'
+      security:
+      - scaleway: []
+      x-codeSamples:
+      - lang: cURL
+        source: |-
+          curl -X GET \
+            -H "X-Auth-Token: $SCW_SECRET_KEY" \
+            "https://api.scaleway.com/qaas/v1alpha1/models/{model_id}"
+      - lang: HTTPie
+        source: |-
+          http GET "https://api.scaleway.com/qaas/v1alpha1/models/{model_id}" \
+            X-Auth-Token:$SCW_SECRET_KEY
   /qaas/v1alpha1/platforms:
     get:
       tags:
@@ -2438,6 +2646,11 @@ paths:
                   - started_at
                   - finished_at
                   - description
+                model_id:
+                  type: string
+                  description: Default computation model ID to be executed by job
+                    assigned to this session.
+                  nullable: true
               required:
               - project_id
               - platform_id
@@ -2450,6 +2663,7 @@ paths:
               - tags
               - deduplication_id
               - booking_demand
+              - model_id
       security:
       - scaleway: []
       x-codeSamples:
diff --git a/scaleway_qaas_client/v1alpha1/__init__.py b/scaleway_qaas_client/v1alpha1/__init__.py
index 6b3246a..2de07ea 100644
--- a/scaleway_qaas_client/v1alpha1/__init__.py
+++ b/scaleway_qaas_client/v1alpha1/__init__.py
@@ -60,3 +60,6 @@
 from .quantum_as_a_service_api_client.models import (
     ScalewayQaasV1Alpha1SessionAccess as QaaSSessionAccess,
 )
+from .quantum_as_a_service_api_client.models import (
+    ScalewayQaasV1Alpha1Model as QaaSModel,
+)
diff --git a/scaleway_qaas_client/v1alpha1/client.py b/scaleway_qaas_client/v1alpha1/client.py
index d6c06cc..155e707 100644
--- a/scaleway_qaas_client/v1alpha1/client.py
+++ b/scaleway_qaas_client/v1alpha1/client.py
@@ -80,6 +80,15 @@
 from scaleway_qaas_client.v1alpha1.quantum_as_a_service_api_client.api.processes.list_process_results import (
     sync_detailed as _list_process_results_sync,
 )
+from scaleway_qaas_client.v1alpha1.quantum_as_a_service_api_client.api.models.get_model import (
+    sync_detailed as _get_model_sync,
+)
+from scaleway_qaas_client.v1alpha1.quantum_as_a_service_api_client.api.models.list_models import (
+    sync_detailed as _list_models_sync,
+)
+from scaleway_qaas_client.v1alpha1.quantum_as_a_service_api_client.api.models.create_model import (
+    sync_detailed as _create_model_sync,
+)
 from scaleway_qaas_client.v1alpha1.quantum_as_a_service_api_client.client import (
     AuthenticatedClient,
 )
@@ -88,6 +97,7 @@
     CancelProcessBody,
     CreateProcessBody,
     CreateJobBody,
+    CreateModelBody,
     CreateJobBodyCircuit,
     CreateSessionBody,
     ScalewayQaasV1Alpha1Job,
@@ -98,6 +108,7 @@
     ScalewayQaasV1Alpha1Application,
     ScalewayQaasV1Alpha1Process,
     ScalewayQaasV1Alpha1ProcessResult,
+    ScalewayQaasV1Alpha1Model,
     TerminateSessionBody,
 )
 from scaleway_qaas_client.v1alpha1.quantum_as_a_service_api_client.types import Response
@@ -205,6 +216,7 @@ def create_session(
         max_idle_duration: Union[str, int] = "59m",
         deduplication_id: Optional[str] = None,
         name: Optional[str] = None,
+        model_id: Optional[str] = None,
     ) -> ScalewayQaasV1Alpha1Session:
         """Create a session
 
@@ -215,8 +227,9 @@ def create_session(
             name (Union[None, Unset, str]): Name of the session.
             max_idle_duration (Union[None, Unset, str]): Maximum idle duration before the session ends. (in seconds)
                 Example: 2.5s.
-            max_duration (Union[None, Unset, str]): Maximum duration before the session ends. (in seconds) Example: 2.5s.
+            max_duration (Union[None, Unset, str]): Maximum duration before the session ends. (in seconds) Example: 20m.
             deduplication_id (Union[None, Unset, str]): Deduplication ID of the session.
+            model_id (Union[None, Unset, str]): Default computation model ID to be executed by job assigned to this session.
 
         Raises:
             errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -246,6 +259,7 @@ def create_session(
                 deduplication_id=deduplication_id,
                 max_duration=max_duration,
                 max_idle_duration=max_idle_duration,
+                model_id=model_id,
             ),
         )
 
@@ -379,8 +393,12 @@ def list_session_acls(
     def create_job(
         self,
         session_id: str,
-        payload: Union[Dict, List, str],
+        model_id: Optional[str] = None,
+        payload: Optional[
+            Union[Dict, List, str]
+        ] = None,  # Deprecated, use model_id from create_model(payload) instead
         name: Optional[str] = None,
+        parameters: Optional[Union[Dict, List, str]] = None,
     ) -> ScalewayQaasV1Alpha1Job:
         """Create a job
 
@@ -389,7 +407,9 @@ def create_job(
         Args:
             name (str): Name of the job.
             session_id (str): Session in which the job is executed.
-            payload (str): Quantum circuit that should be executed.
+            payload (str): DEPRECATED Quantum circuit that should be executed.
+            model_id (Union[None, Unset, str]): Computation model ID to be executed by the job.
+            parameters (Union[None, Unset, str]): Execution parameters for this job.
 
         Raises:
             errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -402,10 +422,9 @@ def create_job(
         if not session_id:
             raise Exception("create_job: session_id cannot be None")
 
-        if not payload:
-            raise Exception("create_job: payload cannot be None")
+        if payload:
+            payload = payload if isinstance(payload, str) else json.dumps(payload)
 
-        payload = payload if isinstance(payload, str) else json.dumps(payload)
         name = name or f"qj-{randomname.get_name()}"
 
         response = _create_job_sync(
@@ -413,7 +432,9 @@ def create_job(
             body=CreateJobBody(
                 name=name,
                 session_id=session_id,
-                circuit=CreateJobBodyCircuit(qiskit_circuit=payload),
+                model_id=model_id,
+                circuit=(CreateJobBodyCircuit(qiskit_circuit=payload)),
+                parameters=parameters,
             ),
         )
 
@@ -756,3 +777,83 @@ def list_process_results(
         _raise_on_error(response)
 
         return response.parsed.process_results
+
+    def create_model(
+        self, payload: Union[str, Dict, List]
+    ) -> ScalewayQaasV1Alpha1Model:
+        """Create a new model
+
+        Create and register a new model that can be executed through next jobs. A model can also be assigned
+        to a Session.
+
+        Args:
+            payload (Union[None, Unset, str]): The serialized model data.
+
+        Raises:
+            errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+            httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+        Returns:
+            ScalewayQaasV1Alpha1Model
+        """
+        if not payload:
+            raise Exception("create_model: payload cannot be None")
+
+        payload = payload if isinstance(payload, str) else json.dumps(payload)
+
+        response = _create_model_sync(
+            client=self.__client,
+            body=CreateModelBody(
+                project_id=self.__project_id,
+                payload=payload,
+            ),
+        )
+
+        _raise_on_error(response)
+
+        return response.parsed
+
+    def get_model(self, model_id: str) -> ScalewayQaasV1Alpha1Model:
+        """Get model information
+
+        Retrieve information about of the provided **model ID**.
+
+        Args:
+            model_id (str): Unique ID of the model.
+
+        Raises:
+            errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+            httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+        Returns:
+            Response[ScalewayQaasV1Alpha1Model]
+        """
+        if not model_id:
+            raise Exception("get_model: model_id cannot be None")
+
+        response = _get_model_sync(client=self.__client, model_id=model_id)
+
+        _raise_on_error(response)
+
+        return response.parsed
+
+    def list_models(self) -> List[ScalewayQaasV1Alpha1Model]:
+        """List all models attached to the **project ID**
+
+        Retrieve information about all models of the provided **project ID**.
+
+        Raises:
+            errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+            httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+        Returns:
+            Response[ScalewayQaasV1Alpha1ListModelsResponse]
+        """
+        response = _list_models_sync(
+            client=self.__client,
+            project_id=self.__project_id,
+        )
+
+        _raise_on_error(response)
+
+        return response.parsed.models
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/__init__.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/__init__.py
new file mode 100644
index 0000000..2d7c0b2
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/__init__.py
@@ -0,0 +1 @@
+"""Contains endpoint functions for accessing the API"""
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/create_model.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/create_model.py
new file mode 100644
index 0000000..b7ad175
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/create_model.py
@@ -0,0 +1,171 @@
+from http import HTTPStatus
+from typing import Any, Optional, Union
+
+import httpx
+
+from ... import errors
+from ...client import AuthenticatedClient, Client
+from ...models.create_model_body import CreateModelBody
+from ...models.scaleway_qaas_v1_alpha_1_model import ScalewayQaasV1Alpha1Model
+from ...types import Response
+
+
+def _get_kwargs(
+    *,
+    body: CreateModelBody,
+) -> dict[str, Any]:
+    headers: dict[str, Any] = {}
+
+    _kwargs: dict[str, Any] = {
+        "method": "post",
+        "url": "/qaas/v1alpha1/models",
+    }
+
+    _kwargs["json"] = body.to_dict()
+
+    headers["Content-Type"] = "application/json"
+
+    _kwargs["headers"] = headers
+    return _kwargs
+
+
+def _parse_response(
+    *, client: Union[AuthenticatedClient, Client], response: httpx.Response
+) -> Optional[ScalewayQaasV1Alpha1Model]:
+    if response.status_code == 200:
+        response_200 = ScalewayQaasV1Alpha1Model.from_dict(response.json())
+
+        return response_200
+    if client.raise_on_unexpected_status:
+        raise errors.UnexpectedStatus(response.status_code, response.content)
+    else:
+        return None
+
+
+def _build_response(
+    *, client: Union[AuthenticatedClient, Client], response: httpx.Response
+) -> Response[ScalewayQaasV1Alpha1Model]:
+    return Response(
+        status_code=HTTPStatus(response.status_code),
+        content=response.content,
+        headers=response.headers,
+        parsed=_parse_response(client=client, response=response),
+    )
+
+
+def sync_detailed(
+    *,
+    client: AuthenticatedClient,
+    body: CreateModelBody,
+) -> Response[ScalewayQaasV1Alpha1Model]:
+    """Create a new model
+
+     Create and register a new model that can be executed through next jobs. A model can also be assigned
+    to a Session.
+
+    Args:
+        body (CreateModelBody):
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        Response[ScalewayQaasV1Alpha1Model]
+    """
+
+    kwargs = _get_kwargs(
+        body=body,
+    )
+
+    response = client.get_httpx_client().request(
+        **kwargs,
+    )
+
+    return _build_response(client=client, response=response)
+
+
+def sync(
+    *,
+    client: AuthenticatedClient,
+    body: CreateModelBody,
+) -> Optional[ScalewayQaasV1Alpha1Model]:
+    """Create a new model
+
+     Create and register a new model that can be executed through next jobs. A model can also be assigned
+    to a Session.
+
+    Args:
+        body (CreateModelBody):
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        ScalewayQaasV1Alpha1Model
+    """
+
+    return sync_detailed(
+        client=client,
+        body=body,
+    ).parsed
+
+
+async def asyncio_detailed(
+    *,
+    client: AuthenticatedClient,
+    body: CreateModelBody,
+) -> Response[ScalewayQaasV1Alpha1Model]:
+    """Create a new model
+
+     Create and register a new model that can be executed through next jobs. A model can also be assigned
+    to a Session.
+
+    Args:
+        body (CreateModelBody):
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        Response[ScalewayQaasV1Alpha1Model]
+    """
+
+    kwargs = _get_kwargs(
+        body=body,
+    )
+
+    response = await client.get_async_httpx_client().request(**kwargs)
+
+    return _build_response(client=client, response=response)
+
+
+async def asyncio(
+    *,
+    client: AuthenticatedClient,
+    body: CreateModelBody,
+) -> Optional[ScalewayQaasV1Alpha1Model]:
+    """Create a new model
+
+     Create and register a new model that can be executed through next jobs. A model can also be assigned
+    to a Session.
+
+    Args:
+        body (CreateModelBody):
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        ScalewayQaasV1Alpha1Model
+    """
+
+    return (
+        await asyncio_detailed(
+            client=client,
+            body=body,
+        )
+    ).parsed
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/get_model.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/get_model.py
new file mode 100644
index 0000000..d8eaee0
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/get_model.py
@@ -0,0 +1,158 @@
+from http import HTTPStatus
+from typing import Any, Optional, Union
+
+import httpx
+
+from ... import errors
+from ...client import AuthenticatedClient, Client
+from ...models.scaleway_qaas_v1_alpha_1_model import ScalewayQaasV1Alpha1Model
+from ...types import Response
+
+
+def _get_kwargs(
+    model_id: str,
+) -> dict[str, Any]:
+    _kwargs: dict[str, Any] = {
+        "method": "get",
+        "url": f"/qaas/v1alpha1/models/{model_id}",
+    }
+
+    return _kwargs
+
+
+def _parse_response(
+    *, client: Union[AuthenticatedClient, Client], response: httpx.Response
+) -> Optional[ScalewayQaasV1Alpha1Model]:
+    if response.status_code == 200:
+        response_200 = ScalewayQaasV1Alpha1Model.from_dict(response.json())
+
+        return response_200
+    if client.raise_on_unexpected_status:
+        raise errors.UnexpectedStatus(response.status_code, response.content)
+    else:
+        return None
+
+
+def _build_response(
+    *, client: Union[AuthenticatedClient, Client], response: httpx.Response
+) -> Response[ScalewayQaasV1Alpha1Model]:
+    return Response(
+        status_code=HTTPStatus(response.status_code),
+        content=response.content,
+        headers=response.headers,
+        parsed=_parse_response(client=client, response=response),
+    )
+
+
+def sync_detailed(
+    model_id: str,
+    *,
+    client: AuthenticatedClient,
+) -> Response[ScalewayQaasV1Alpha1Model]:
+    """Get model information
+
+     Retrieve information about of the provided **model ID**.
+
+    Args:
+        model_id (str): Unique ID of the model.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        Response[ScalewayQaasV1Alpha1Model]
+    """
+
+    kwargs = _get_kwargs(
+        model_id=model_id,
+    )
+
+    response = client.get_httpx_client().request(
+        **kwargs,
+    )
+
+    return _build_response(client=client, response=response)
+
+
+def sync(
+    model_id: str,
+    *,
+    client: AuthenticatedClient,
+) -> Optional[ScalewayQaasV1Alpha1Model]:
+    """Get model information
+
+     Retrieve information about of the provided **model ID**.
+
+    Args:
+        model_id (str): Unique ID of the model.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        ScalewayQaasV1Alpha1Model
+    """
+
+    return sync_detailed(
+        model_id=model_id,
+        client=client,
+    ).parsed
+
+
+async def asyncio_detailed(
+    model_id: str,
+    *,
+    client: AuthenticatedClient,
+) -> Response[ScalewayQaasV1Alpha1Model]:
+    """Get model information
+
+     Retrieve information about of the provided **model ID**.
+
+    Args:
+        model_id (str): Unique ID of the model.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        Response[ScalewayQaasV1Alpha1Model]
+    """
+
+    kwargs = _get_kwargs(
+        model_id=model_id,
+    )
+
+    response = await client.get_async_httpx_client().request(**kwargs)
+
+    return _build_response(client=client, response=response)
+
+
+async def asyncio(
+    model_id: str,
+    *,
+    client: AuthenticatedClient,
+) -> Optional[ScalewayQaasV1Alpha1Model]:
+    """Get model information
+
+     Retrieve information about of the provided **model ID**.
+
+    Args:
+        model_id (str): Unique ID of the model.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        ScalewayQaasV1Alpha1Model
+    """
+
+    return (
+        await asyncio_detailed(
+            model_id=model_id,
+            client=client,
+        )
+    ).parsed
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/list_models.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/list_models.py
new file mode 100644
index 0000000..5bf9465
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/api/models/list_models.py
@@ -0,0 +1,222 @@
+from http import HTTPStatus
+from typing import Any, Optional, Union
+
+import httpx
+
+from ... import errors
+from ...client import AuthenticatedClient, Client
+from ...models.list_models_order_by import ListModelsOrderBy
+from ...models.scaleway_qaas_v1_alpha_1_list_models_response import (
+    ScalewayQaasV1Alpha1ListModelsResponse,
+)
+from ...types import UNSET, Response, Unset
+
+
+def _get_kwargs(
+    *,
+    project_id: str,
+    page: Union[Unset, int] = UNSET,
+    page_size: Union[Unset, int] = UNSET,
+    order_by: Union[Unset, ListModelsOrderBy] = ListModelsOrderBy.CREATED_AT_DESC,
+) -> dict[str, Any]:
+    params: dict[str, Any] = {}
+
+    params["project_id"] = project_id
+
+    params["page"] = page
+
+    params["page_size"] = page_size
+
+    json_order_by: Union[Unset, str] = UNSET
+    if not isinstance(order_by, Unset):
+        json_order_by = order_by.value
+
+    params["order_by"] = json_order_by
+
+    params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
+
+    _kwargs: dict[str, Any] = {
+        "method": "get",
+        "url": "/qaas/v1alpha1/models",
+        "params": params,
+    }
+
+    return _kwargs
+
+
+def _parse_response(
+    *, client: Union[AuthenticatedClient, Client], response: httpx.Response
+) -> Optional[ScalewayQaasV1Alpha1ListModelsResponse]:
+    if response.status_code == 200:
+        response_200 = ScalewayQaasV1Alpha1ListModelsResponse.from_dict(response.json())
+
+        return response_200
+    if client.raise_on_unexpected_status:
+        raise errors.UnexpectedStatus(response.status_code, response.content)
+    else:
+        return None
+
+
+def _build_response(
+    *, client: Union[AuthenticatedClient, Client], response: httpx.Response
+) -> Response[ScalewayQaasV1Alpha1ListModelsResponse]:
+    return Response(
+        status_code=HTTPStatus(response.status_code),
+        content=response.content,
+        headers=response.headers,
+        parsed=_parse_response(client=client, response=response),
+    )
+
+
+def sync_detailed(
+    *,
+    client: AuthenticatedClient,
+    project_id: str,
+    page: Union[Unset, int] = UNSET,
+    page_size: Union[Unset, int] = UNSET,
+    order_by: Union[Unset, ListModelsOrderBy] = ListModelsOrderBy.CREATED_AT_DESC,
+) -> Response[ScalewayQaasV1Alpha1ListModelsResponse]:
+    """List all models attached to the **project ID**
+
+     Retrieve information about all models of the provided **project ID**.
+
+    Args:
+        project_id (str): List models belonging to this project ID.
+        page (Union[Unset, int]): Page number.
+        page_size (Union[Unset, int]): Maximum number of results to return per page.
+        order_by (Union[Unset, ListModelsOrderBy]): Sort order of the returned results. Default:
+            ListModelsOrderBy.CREATED_AT_DESC.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        Response[ScalewayQaasV1Alpha1ListModelsResponse]
+    """
+
+    kwargs = _get_kwargs(
+        project_id=project_id,
+        page=page,
+        page_size=page_size,
+        order_by=order_by,
+    )
+
+    response = client.get_httpx_client().request(
+        **kwargs,
+    )
+
+    return _build_response(client=client, response=response)
+
+
+def sync(
+    *,
+    client: AuthenticatedClient,
+    project_id: str,
+    page: Union[Unset, int] = UNSET,
+    page_size: Union[Unset, int] = UNSET,
+    order_by: Union[Unset, ListModelsOrderBy] = ListModelsOrderBy.CREATED_AT_DESC,
+) -> Optional[ScalewayQaasV1Alpha1ListModelsResponse]:
+    """List all models attached to the **project ID**
+
+     Retrieve information about all models of the provided **project ID**.
+
+    Args:
+        project_id (str): List models belonging to this project ID.
+        page (Union[Unset, int]): Page number.
+        page_size (Union[Unset, int]): Maximum number of results to return per page.
+        order_by (Union[Unset, ListModelsOrderBy]): Sort order of the returned results. Default:
+            ListModelsOrderBy.CREATED_AT_DESC.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        ScalewayQaasV1Alpha1ListModelsResponse
+    """
+
+    return sync_detailed(
+        client=client,
+        project_id=project_id,
+        page=page,
+        page_size=page_size,
+        order_by=order_by,
+    ).parsed
+
+
+async def asyncio_detailed(
+    *,
+    client: AuthenticatedClient,
+    project_id: str,
+    page: Union[Unset, int] = UNSET,
+    page_size: Union[Unset, int] = UNSET,
+    order_by: Union[Unset, ListModelsOrderBy] = ListModelsOrderBy.CREATED_AT_DESC,
+) -> Response[ScalewayQaasV1Alpha1ListModelsResponse]:
+    """List all models attached to the **project ID**
+
+     Retrieve information about all models of the provided **project ID**.
+
+    Args:
+        project_id (str): List models belonging to this project ID.
+        page (Union[Unset, int]): Page number.
+        page_size (Union[Unset, int]): Maximum number of results to return per page.
+        order_by (Union[Unset, ListModelsOrderBy]): Sort order of the returned results. Default:
+            ListModelsOrderBy.CREATED_AT_DESC.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        Response[ScalewayQaasV1Alpha1ListModelsResponse]
+    """
+
+    kwargs = _get_kwargs(
+        project_id=project_id,
+        page=page,
+        page_size=page_size,
+        order_by=order_by,
+    )
+
+    response = await client.get_async_httpx_client().request(**kwargs)
+
+    return _build_response(client=client, response=response)
+
+
+async def asyncio(
+    *,
+    client: AuthenticatedClient,
+    project_id: str,
+    page: Union[Unset, int] = UNSET,
+    page_size: Union[Unset, int] = UNSET,
+    order_by: Union[Unset, ListModelsOrderBy] = ListModelsOrderBy.CREATED_AT_DESC,
+) -> Optional[ScalewayQaasV1Alpha1ListModelsResponse]:
+    """List all models attached to the **project ID**
+
+     Retrieve information about all models of the provided **project ID**.
+
+    Args:
+        project_id (str): List models belonging to this project ID.
+        page (Union[Unset, int]): Page number.
+        page_size (Union[Unset, int]): Maximum number of results to return per page.
+        order_by (Union[Unset, ListModelsOrderBy]): Sort order of the returned results. Default:
+            ListModelsOrderBy.CREATED_AT_DESC.
+
+    Raises:
+        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
+        httpx.TimeoutException: If the request takes longer than Client.timeout.
+
+    Returns:
+        ScalewayQaasV1Alpha1ListModelsResponse
+    """
+
+    return (
+        await asyncio_detailed(
+            client=client,
+            project_id=project_id,
+            page=page,
+            page_size=page_size,
+            order_by=order_by,
+        )
+    ).parsed
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/__init__.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/__init__.py
index 1a43da4..2eb0c2c 100644
--- a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/__init__.py
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/__init__.py
@@ -4,6 +4,7 @@
 from .cancel_process_body import CancelProcessBody
 from .create_job_body import CreateJobBody
 from .create_job_body_circuit import CreateJobBodyCircuit
+from .create_model_body import CreateModelBody
 from .create_process_body import CreateProcessBody
 from .create_session_body import CreateSessionBody
 from .create_session_body_booking_demand import CreateSessionBodyBookingDemand
@@ -12,6 +13,7 @@
 from .list_bookings_order_by import ListBookingsOrderBy
 from .list_job_results_order_by import ListJobResultsOrderBy
 from .list_jobs_order_by import ListJobsOrderBy
+from .list_models_order_by import ListModelsOrderBy
 from .list_platforms_order_by import ListPlatformsOrderBy
 from .list_platforms_platform_technology import ListPlatformsPlatformTechnology
 from .list_platforms_platform_type import ListPlatformsPlatformType
@@ -40,6 +42,9 @@
 from .scaleway_qaas_v1_alpha_1_list_jobs_response import (
     ScalewayQaasV1Alpha1ListJobsResponse,
 )
+from .scaleway_qaas_v1_alpha_1_list_models_response import (
+    ScalewayQaasV1Alpha1ListModelsResponse,
+)
 from .scaleway_qaas_v1_alpha_1_list_platforms_response import (
     ScalewayQaasV1Alpha1ListPlatformsResponse,
 )
@@ -58,6 +63,7 @@
 from .scaleway_qaas_v1_alpha_1_list_sessions_response import (
     ScalewayQaasV1Alpha1ListSessionsResponse,
 )
+from .scaleway_qaas_v1_alpha_1_model import ScalewayQaasV1Alpha1Model
 from .scaleway_qaas_v1_alpha_1_platform import ScalewayQaasV1Alpha1Platform
 from .scaleway_qaas_v1_alpha_1_platform_availability import (
     ScalewayQaasV1Alpha1PlatformAvailability,
@@ -101,6 +107,7 @@
     "CancelProcessBody",
     "CreateJobBody",
     "CreateJobBodyCircuit",
+    "CreateModelBody",
     "CreateProcessBody",
     "CreateSessionBody",
     "CreateSessionBodyBookingDemand",
@@ -109,6 +116,7 @@
     "ListBookingsOrderBy",
     "ListJobResultsOrderBy",
     "ListJobsOrderBy",
+    "ListModelsOrderBy",
     "ListPlatformsOrderBy",
     "ListPlatformsPlatformTechnology",
     "ListPlatformsPlatformType",
@@ -127,12 +135,14 @@
     "ScalewayQaasV1Alpha1ListBookingsResponse",
     "ScalewayQaasV1Alpha1ListJobResultsResponse",
     "ScalewayQaasV1Alpha1ListJobsResponse",
+    "ScalewayQaasV1Alpha1ListModelsResponse",
     "ScalewayQaasV1Alpha1ListPlatformsResponse",
     "ScalewayQaasV1Alpha1ListProcessesResponse",
     "ScalewayQaasV1Alpha1ListProcessResultsResponse",
     "ScalewayQaasV1Alpha1ListSessionACLsRequestOrderBy",
     "ScalewayQaasV1Alpha1ListSessionACLsResponse",
     "ScalewayQaasV1Alpha1ListSessionsResponse",
+    "ScalewayQaasV1Alpha1Model",
     "ScalewayQaasV1Alpha1Platform",
     "ScalewayQaasV1Alpha1PlatformAvailability",
     "ScalewayQaasV1Alpha1PlatformBookingRequirement",
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_job_body.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_job_body.py
index e3f51fb..74843c6 100644
--- a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_job_body.py
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_job_body.py
@@ -22,6 +22,8 @@ class CreateJobBody:
         circuit (CreateJobBodyCircuit): Quantum circuit that should be executed.
         tags (Union[None, Unset, list[str]]): Tags of the job.
         max_duration (Union[None, Unset, str]): Maximum duration of the job. (in seconds) Example: 2.5s.
+        model_id (Union[None, Unset, str]): Computation model ID to be executed by the job.
+        parameters (Union[None, Unset, str]): Execution parameters for this job.
     """
 
     name: str
@@ -29,6 +31,8 @@ class CreateJobBody:
     circuit: "CreateJobBodyCircuit"
     tags: Union[None, Unset, list[str]] = UNSET
     max_duration: Union[None, Unset, str] = UNSET
+    model_id: Union[None, Unset, str] = UNSET
+    parameters: Union[None, Unset, str] = UNSET
     additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
 
     def to_dict(self) -> dict[str, Any]:
@@ -53,6 +57,18 @@ def to_dict(self) -> dict[str, Any]:
         else:
             max_duration = self.max_duration
 
+        model_id: Union[None, Unset, str]
+        if isinstance(self.model_id, Unset):
+            model_id = UNSET
+        else:
+            model_id = self.model_id
+
+        parameters: Union[None, Unset, str]
+        if isinstance(self.parameters, Unset):
+            parameters = UNSET
+        else:
+            parameters = self.parameters
+
         field_dict: dict[str, Any] = {}
         field_dict.update(self.additional_properties)
         field_dict.update(
@@ -66,6 +82,10 @@ def to_dict(self) -> dict[str, Any]:
             field_dict["tags"] = tags
         if max_duration is not UNSET:
             field_dict["max_duration"] = max_duration
+        if model_id is not UNSET:
+            field_dict["model_id"] = model_id
+        if parameters is not UNSET:
+            field_dict["parameters"] = parameters
 
         return field_dict
 
@@ -106,12 +126,32 @@ def _parse_max_duration(data: object) -> Union[None, Unset, str]:
 
         max_duration = _parse_max_duration(d.pop("max_duration", UNSET))
 
+        def _parse_model_id(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        model_id = _parse_model_id(d.pop("model_id", UNSET))
+
+        def _parse_parameters(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        parameters = _parse_parameters(d.pop("parameters", UNSET))
+
         create_job_body = cls(
             name=name,
             session_id=session_id,
             circuit=circuit,
             tags=tags,
             max_duration=max_duration,
+            model_id=model_id,
+            parameters=parameters,
         )
 
         create_job_body.additional_properties = d
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_model_body.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_model_body.py
new file mode 100644
index 0000000..81d03b2
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_model_body.py
@@ -0,0 +1,79 @@
+from collections.abc import Mapping
+from typing import Any, TypeVar, Union, cast
+
+from attrs import define as _attrs_define
+from attrs import field as _attrs_field
+
+from ..types import UNSET, Unset
+
+T = TypeVar("T", bound="CreateModelBody")
+
+
+@_attrs_define
+class CreateModelBody:
+    """
+    Attributes:
+        project_id (Union[Unset, str]): Project ID to attach this model.
+        payload (Union[None, Unset, str]): The serialized model data.
+    """
+
+    project_id: Union[Unset, str] = UNSET
+    payload: Union[None, Unset, str] = UNSET
+    additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
+
+    def to_dict(self) -> dict[str, Any]:
+        project_id = self.project_id
+
+        payload: Union[None, Unset, str]
+        if isinstance(self.payload, Unset):
+            payload = UNSET
+        else:
+            payload = self.payload
+
+        field_dict: dict[str, Any] = {}
+        field_dict.update(self.additional_properties)
+        field_dict.update({})
+        if project_id is not UNSET:
+            field_dict["project_id"] = project_id
+        if payload is not UNSET:
+            field_dict["payload"] = payload
+
+        return field_dict
+
+    @classmethod
+    def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
+        d = dict(src_dict)
+        project_id = d.pop("project_id", UNSET)
+
+        def _parse_payload(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        payload = _parse_payload(d.pop("payload", UNSET))
+
+        create_model_body = cls(
+            project_id=project_id,
+            payload=payload,
+        )
+
+        create_model_body.additional_properties = d
+        return create_model_body
+
+    @property
+    def additional_keys(self) -> list[str]:
+        return list(self.additional_properties.keys())
+
+    def __getitem__(self, key: str) -> Any:
+        return self.additional_properties[key]
+
+    def __setitem__(self, key: str, value: Any) -> None:
+        self.additional_properties[key] = value
+
+    def __delitem__(self, key: str) -> None:
+        del self.additional_properties[key]
+
+    def __contains__(self, key: str) -> bool:
+        return key in self.additional_properties
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_session_body.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_session_body.py
index 6a2d37c..b1fe393 100644
--- a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_session_body.py
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/create_session_body.py
@@ -30,6 +30,7 @@ class CreateSessionBody:
         deduplication_id (Union[None, Unset, str]): Deduplication ID of the session.
         booking_demand (Union[Unset, CreateSessionBodyBookingDemand]): A booking demand to schedule the session, only
             applicable if the platform is bookable.
+        model_id (Union[None, Unset, str]): Default computation model ID to be executed by job assigned to this session.
     """
 
     project_id: str
@@ -40,6 +41,7 @@ class CreateSessionBody:
     tags: Union[None, Unset, list[str]] = UNSET
     deduplication_id: Union[None, Unset, str] = UNSET
     booking_demand: Union[Unset, "CreateSessionBodyBookingDemand"] = UNSET
+    model_id: Union[None, Unset, str] = UNSET
     additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
 
     def to_dict(self) -> dict[str, Any]:
@@ -84,6 +86,12 @@ def to_dict(self) -> dict[str, Any]:
         if not isinstance(self.booking_demand, Unset):
             booking_demand = self.booking_demand.to_dict()
 
+        model_id: Union[None, Unset, str]
+        if isinstance(self.model_id, Unset):
+            model_id = UNSET
+        else:
+            model_id = self.model_id
+
         field_dict: dict[str, Any] = {}
         field_dict.update(self.additional_properties)
         field_dict.update(
@@ -104,6 +112,8 @@ def to_dict(self) -> dict[str, Any]:
             field_dict["deduplication_id"] = deduplication_id
         if booking_demand is not UNSET:
             field_dict["booking_demand"] = booking_demand
+        if model_id is not UNSET:
+            field_dict["model_id"] = model_id
 
         return field_dict
 
@@ -178,6 +188,15 @@ def _parse_deduplication_id(data: object) -> Union[None, Unset, str]:
         else:
             booking_demand = CreateSessionBodyBookingDemand.from_dict(_booking_demand)
 
+        def _parse_model_id(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        model_id = _parse_model_id(d.pop("model_id", UNSET))
+
         create_session_body = cls(
             project_id=project_id,
             platform_id=platform_id,
@@ -187,6 +206,7 @@ def _parse_deduplication_id(data: object) -> Union[None, Unset, str]:
             tags=tags,
             deduplication_id=deduplication_id,
             booking_demand=booking_demand,
+            model_id=model_id,
         )
 
         create_session_body.additional_properties = d
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/list_models_order_by.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/list_models_order_by.py
new file mode 100644
index 0000000..7f989cf
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/list_models_order_by.py
@@ -0,0 +1,9 @@
+from enum import Enum
+
+
+class ListModelsOrderBy(str, Enum):
+    CREATED_AT_ASC = "created_at_asc"
+    CREATED_AT_DESC = "created_at_desc"
+
+    def __str__(self) -> str:
+        return str(self.value)
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_job.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_job.py
index 73cd4ab..de94b7b 100644
--- a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_job.py
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_job.py
@@ -31,6 +31,8 @@ class ScalewayQaasV1Alpha1Job:
         progress_message (Union[None, Unset, str]): Last progress message, if the job has started.
         job_duration (Union[None, Unset, str]): Duration of the job, if the job is finished. (in seconds) Example: 2.5s.
         result_distribution (Union[None, Unset, str]): Result of the job, if the job is finished.
+        model_id (Union[None, Unset, str]): Computation model ID executed by the job.
+        parameters (Union[None, Unset, str]): Execution parameters for this job.
     """
 
     id: Union[Unset, str] = UNSET
@@ -46,6 +48,8 @@ class ScalewayQaasV1Alpha1Job:
     progress_message: Union[None, Unset, str] = UNSET
     job_duration: Union[None, Unset, str] = UNSET
     result_distribution: Union[None, Unset, str] = UNSET
+    model_id: Union[None, Unset, str] = UNSET
+    parameters: Union[None, Unset, str] = UNSET
     additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
 
     def to_dict(self) -> dict[str, Any]:
@@ -110,6 +114,18 @@ def to_dict(self) -> dict[str, Any]:
         else:
             result_distribution = self.result_distribution
 
+        model_id: Union[None, Unset, str]
+        if isinstance(self.model_id, Unset):
+            model_id = UNSET
+        else:
+            model_id = self.model_id
+
+        parameters: Union[None, Unset, str]
+        if isinstance(self.parameters, Unset):
+            parameters = UNSET
+        else:
+            parameters = self.parameters
+
         field_dict: dict[str, Any] = {}
         field_dict.update(self.additional_properties)
         field_dict.update({})
@@ -135,6 +151,10 @@ def to_dict(self) -> dict[str, Any]:
             field_dict["job_duration"] = job_duration
         if result_distribution is not UNSET:
             field_dict["result_distribution"] = result_distribution
+        if model_id is not UNSET:
+            field_dict["model_id"] = model_id
+        if parameters is not UNSET:
+            field_dict["parameters"] = parameters
 
         return field_dict
 
@@ -251,6 +271,24 @@ def _parse_result_distribution(data: object) -> Union[None, Unset, str]:
             d.pop("result_distribution", UNSET)
         )
 
+        def _parse_model_id(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        model_id = _parse_model_id(d.pop("model_id", UNSET))
+
+        def _parse_parameters(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        parameters = _parse_parameters(d.pop("parameters", UNSET))
+
         scaleway_qaas_v1_alpha_1_job = cls(
             id=id,
             name=name,
@@ -263,6 +301,8 @@ def _parse_result_distribution(data: object) -> Union[None, Unset, str]:
             progress_message=progress_message,
             job_duration=job_duration,
             result_distribution=result_distribution,
+            model_id=model_id,
+            parameters=parameters,
         )
 
         scaleway_qaas_v1_alpha_1_job.additional_properties = d
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_list_models_response.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_list_models_response.py
new file mode 100644
index 0000000..d1bc843
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_list_models_response.py
@@ -0,0 +1,84 @@
+from collections.abc import Mapping
+from typing import TYPE_CHECKING, Any, TypeVar, Union
+
+from attrs import define as _attrs_define
+from attrs import field as _attrs_field
+
+from ..types import UNSET, Unset
+
+if TYPE_CHECKING:
+    from ..models.scaleway_qaas_v1_alpha_1_model import ScalewayQaasV1Alpha1Model
+
+
+T = TypeVar("T", bound="ScalewayQaasV1Alpha1ListModelsResponse")
+
+
+@_attrs_define
+class ScalewayQaasV1Alpha1ListModelsResponse:
+    """
+    Attributes:
+        total_count (Union[Unset, int]): Total number of models.
+        models (Union[Unset, list['ScalewayQaasV1Alpha1Model']]): List of models.
+    """
+
+    total_count: Union[Unset, int] = UNSET
+    models: Union[Unset, list["ScalewayQaasV1Alpha1Model"]] = UNSET
+    additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
+
+    def to_dict(self) -> dict[str, Any]:
+        total_count = self.total_count
+
+        models: Union[Unset, list[dict[str, Any]]] = UNSET
+        if not isinstance(self.models, Unset):
+            models = []
+            for models_item_data in self.models:
+                models_item = models_item_data.to_dict()
+                models.append(models_item)
+
+        field_dict: dict[str, Any] = {}
+        field_dict.update(self.additional_properties)
+        field_dict.update({})
+        if total_count is not UNSET:
+            field_dict["total_count"] = total_count
+        if models is not UNSET:
+            field_dict["models"] = models
+
+        return field_dict
+
+    @classmethod
+    def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
+        from ..models.scaleway_qaas_v1_alpha_1_model import ScalewayQaasV1Alpha1Model
+
+        d = dict(src_dict)
+        total_count = d.pop("total_count", UNSET)
+
+        models = []
+        _models = d.pop("models", UNSET)
+        for models_item_data in _models or []:
+            models_item = ScalewayQaasV1Alpha1Model.from_dict(models_item_data)
+
+            models.append(models_item)
+
+        scaleway_qaas_v1_alpha_1_list_models_response = cls(
+            total_count=total_count,
+            models=models,
+        )
+
+        scaleway_qaas_v1_alpha_1_list_models_response.additional_properties = d
+        return scaleway_qaas_v1_alpha_1_list_models_response
+
+    @property
+    def additional_keys(self) -> list[str]:
+        return list(self.additional_properties.keys())
+
+    def __getitem__(self, key: str) -> Any:
+        return self.additional_properties[key]
+
+    def __setitem__(self, key: str, value: Any) -> None:
+        self.additional_properties[key] = value
+
+    def __delitem__(self, key: str) -> None:
+        del self.additional_properties[key]
+
+    def __contains__(self, key: str) -> bool:
+        return key in self.additional_properties
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_model.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_model.py
new file mode 100644
index 0000000..fd3c9c2
--- /dev/null
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_model.py
@@ -0,0 +1,121 @@
+import datetime
+from collections.abc import Mapping
+from typing import Any, TypeVar, Union, cast
+
+from attrs import define as _attrs_define
+from attrs import field as _attrs_field
+from dateutil.parser import isoparse
+
+from ..types import UNSET, Unset
+
+T = TypeVar("T", bound="ScalewayQaasV1Alpha1Model")
+
+
+@_attrs_define
+class ScalewayQaasV1Alpha1Model:
+    """
+    Attributes:
+        id (Union[Unset, str]): Unique ID of the model.
+        created_at (Union[None, Unset, datetime.datetime]): Time at which the model was created. (RFC 3339 format)
+            Example: 2022-03-22T12:34:56.123456Z.
+        url (Union[None, Unset, str]): Storage URL of the model.
+        project_id (Union[Unset, str]): Project ID in which the model has been created.
+    """
+
+    id: Union[Unset, str] = UNSET
+    created_at: Union[None, Unset, datetime.datetime] = UNSET
+    url: Union[None, Unset, str] = UNSET
+    project_id: Union[Unset, str] = UNSET
+    additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
+
+    def to_dict(self) -> dict[str, Any]:
+        id = self.id
+
+        created_at: Union[None, Unset, str]
+        if isinstance(self.created_at, Unset):
+            created_at = UNSET
+        elif isinstance(self.created_at, datetime.datetime):
+            created_at = self.created_at.isoformat()
+        else:
+            created_at = self.created_at
+
+        url: Union[None, Unset, str]
+        if isinstance(self.url, Unset):
+            url = UNSET
+        else:
+            url = self.url
+
+        project_id = self.project_id
+
+        field_dict: dict[str, Any] = {}
+        field_dict.update(self.additional_properties)
+        field_dict.update({})
+        if id is not UNSET:
+            field_dict["id"] = id
+        if created_at is not UNSET:
+            field_dict["created_at"] = created_at
+        if url is not UNSET:
+            field_dict["url"] = url
+        if project_id is not UNSET:
+            field_dict["project_id"] = project_id
+
+        return field_dict
+
+    @classmethod
+    def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
+        d = dict(src_dict)
+        id = d.pop("id", UNSET)
+
+        def _parse_created_at(data: object) -> Union[None, Unset, datetime.datetime]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            try:
+                if not isinstance(data, str):
+                    raise TypeError()
+                created_at_type_0 = isoparse(data)
+
+                return created_at_type_0
+            except:  # noqa: E722
+                pass
+            return cast(Union[None, Unset, datetime.datetime], data)
+
+        created_at = _parse_created_at(d.pop("created_at", UNSET))
+
+        def _parse_url(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        url = _parse_url(d.pop("url", UNSET))
+
+        project_id = d.pop("project_id", UNSET)
+
+        scaleway_qaas_v1_alpha_1_model = cls(
+            id=id,
+            created_at=created_at,
+            url=url,
+            project_id=project_id,
+        )
+
+        scaleway_qaas_v1_alpha_1_model.additional_properties = d
+        return scaleway_qaas_v1_alpha_1_model
+
+    @property
+    def additional_keys(self) -> list[str]:
+        return list(self.additional_properties.keys())
+
+    def __getitem__(self, key: str) -> Any:
+        return self.additional_properties[key]
+
+    def __setitem__(self, key: str, value: Any) -> None:
+        self.additional_properties[key] = value
+
+    def __delitem__(self, key: str) -> None:
+        del self.additional_properties[key]
+
+    def __contains__(self, key: str) -> bool:
+        return key in self.additional_properties
diff --git a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_session.py b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_session.py
index 45307c6..5758846 100644
--- a/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_session.py
+++ b/scaleway_qaas_client/v1alpha1/quantum_as_a_service_api_client/models/scaleway_qaas_v1_alpha_1_session.py
@@ -47,6 +47,7 @@ class ScalewayQaasV1Alpha1Session:
         origin_id (Union[None, Unset, str]): Unique ID of the session's origin resource (if exists).
         progress_message (Union[None, Unset, str]): Any progress of the session.
         booking_id (Union[None, Unset, str]): An optional booking unique ID of an attached booking.
+        model_id (Union[None, Unset, str]): Default computation model ID to be executed by job assigned to this session.
     """
 
     id: Union[Unset, str] = UNSET
@@ -72,6 +73,7 @@ class ScalewayQaasV1Alpha1Session:
     origin_id: Union[None, Unset, str] = UNSET
     progress_message: Union[None, Unset, str] = UNSET
     booking_id: Union[None, Unset, str] = UNSET
+    model_id: Union[None, Unset, str] = UNSET
     additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
 
     def to_dict(self) -> dict[str, Any]:
@@ -168,6 +170,12 @@ def to_dict(self) -> dict[str, Any]:
         else:
             booking_id = self.booking_id
 
+        model_id: Union[None, Unset, str]
+        if isinstance(self.model_id, Unset):
+            model_id = UNSET
+        else:
+            model_id = self.model_id
+
         field_dict: dict[str, Any] = {}
         field_dict.update(self.additional_properties)
         field_dict.update({})
@@ -209,6 +217,8 @@ def to_dict(self) -> dict[str, Any]:
             field_dict["progress_message"] = progress_message
         if booking_id is not UNSET:
             field_dict["booking_id"] = booking_id
+        if model_id is not UNSET:
+            field_dict["model_id"] = model_id
 
         return field_dict
 
@@ -373,6 +383,15 @@ def _parse_booking_id(data: object) -> Union[None, Unset, str]:
 
         booking_id = _parse_booking_id(d.pop("booking_id", UNSET))
 
+        def _parse_model_id(data: object) -> Union[None, Unset, str]:
+            if data is None:
+                return data
+            if isinstance(data, Unset):
+                return data
+            return cast(Union[None, Unset, str], data)
+
+        model_id = _parse_model_id(d.pop("model_id", UNSET))
+
         scaleway_qaas_v1_alpha_1_session = cls(
             id=id,
             name=name,
@@ -393,6 +412,7 @@ def _parse_booking_id(data: object) -> Union[None, Unset, str]:
             origin_id=origin_id,
             progress_message=progress_message,
             booking_id=booking_id,
+            model_id=model_id,
         )
 
         scaleway_qaas_v1_alpha_1_session.additional_properties = d
diff --git a/setup.py b/setup.py
index e7ebf05..6c88783 100644
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@
 
 setup(
     name="scaleway_qaas_client",
-    version="0.1.17",
+    version="0.1.18",
     project_urls={
         "Documentation": "https://www.scaleway.com/en/quantum-as-a-service/",
         "Source": "https://github.com/scaleway/scaleway-qaas-client-pythom",
