DoculaDevelopersDezvoltatori
API 0.8.0 · BuildVersiune produs 0.33.0
Documentation navigationNavigare documentație
GET/api/v1/ingestion-models

List bounded canonical ingestion-model familiesListează familiile canonice de modele de ingestie

List bounded canonical ingestion-model families. Reads a bounded canonical view without mutation. No request body or required parameters apply. HTTP success: 200; documented failures: 401, 403, 405, 422, 500, 503. Follow the canonical configuration dependency order and retain every returned identity and hash.Listează familiile canonice de modele de ingestie. Citește o vedere canonică limitată fără modificare. Nu declară body sau parametri obligatorii. Succes HTTP: 200; erori documentate: 401, 403, 405, 422, 500, 503. Respectă ordinea canonică a dependențelor de configurare și păstrează fiecare identitate și hash returnat.

Roles: administrator, engineer, operator, auditorRoluri: administrator (administrator), engineer (inginer), operator (operator), auditor (auditor)Host-local session requiredEste necesară sesiunea hostului

A session with must_change_password=true is forbidden regardless of role; only session read, password change, and logout remain authorized.O sesiune cu must_change_password=true este interzisă indiferent de rol; rămân autorizate doar citirea sesiunii, schimbarea parolei și deconectarea.

Required headers and parametersHeadere și parametri obligatorii

This operation declares no request headers or parameters.Această operație nu declară headere sau parametri.

Lifecycle and conventionsCiclu și convenții

Open the related API conventionDeschide convenția API asociată

Request examplesExemple de cerere

Synthetic curl · copy onlycurl sintetic · numai pentru copiere
curl --request GET "$DOCULA_URL/api/v1/ingestion-models" \
  --cookie "$COOKIE_JAR"

No request body applies. Use the documented method, path, headers, and parameters.Nu se aplică un body al cererii. Folosește metoda, calea, headerele și parametrii documentați.

Responses and failuresRăspunsuri și erori

200At most 100 canonical ingestion-model summaries.Cel mult 100 de rezumate ale modelelor canonice de ingestie.

Structured response bodyBody structurat al răspunsului

application/json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "ingestion_models"
  ],
  "properties": {
    "ingestion_models": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/components/schemas/CanonicalDefinitionSummary",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "slug",
          "name",
          "description",
          "draft_revision",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "slug": {
            "type": "string",
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "draft_revision": {
            "type": "integer",
            "minimum": 0
          },
          "latest_version_number": {
            "type": "integer",
            "minimum": 1
          },
          "latest_status": {
            "type": "string",
            "enum": [
              "versioned",
              "published"
            ]
          },
          "updated_at": {
            "$ref": "#/components/schemas/CanonicalTimestamp",
            "type": "string",
            "format": "date-time",
            "description": "UTC timestamp serialized with RFC3339Nano precision."
          }
        }
      }
    }
  }
}
Synthetic IngestionModelListOK responseExemplu sintetic HTTP 200
{
  "ingestion_models": [
    {
      "id": "11111111-1111-4111-8111-000000000001",
      "slug": "synthetic-example",
      "name": "synthetic-example",
      "description": "synthetic-example",
      "draft_revision": 0,
      "updated_at": "2026-08-01T10:00:00Z"
    }
  ]
}
401A valid session is required.Este necesară o sesiune validă.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 401
        },
        "code": {
          "const": "authentication_required"
        }
      }
    }
  ]
}
Synthetic ConfigurationAuthenticationRequired responseExemplu sintetic HTTP 401
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 401,
  "code": "authentication_required",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
403The current role cannot access configuration, or same-origin CSRF protection rejected a mutation.Rolul curent nu poate accesa configurarea sau protecția CSRF same-origin a respins o mutație.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 403
        },
        "code": {
          "enum": [
            "csrf_rejected",
            "forbidden"
          ]
        }
      }
    }
  ]
}
Synthetic ConfigurationForbidden responseExemplu sintetic HTTP 403
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 403,
  "code": "csrf_rejected",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
405The method is not supported by this canonical path.Metoda nu este acceptată de această cale canonică.

Structured response bodyBody structurat al răspunsului

Response headersHeaderele răspunsului

AllowThe exact method or method set supported by this path.Metoda sau setul exact de metode acceptate de această cale.

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 405
        },
        "code": {
          "const": "method_not_allowed"
        }
      }
    }
  ]
}
Synthetic ConfigurationMethodNotAllowed responseExemplu sintetic HTTP 405
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 405,
  "code": "method_not_allowed",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
422The request, query, header, or canonical configuration is invalid.Cererea, query-ul, headerul sau configurarea canonică este invalidă.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 422
        },
        "code": {
          "const": "validation_failed"
        }
      }
    }
  ]
}
Synthetic ConfigurationValidationFailed responseExemplu sintetic HTTP 422
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 422,
  "code": "validation_failed",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
500Canonical configuration failed safely.Configurarea canonică a eșuat în siguranță.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 500
        },
        "code": {
          "const": "internal_error"
        }
      }
    }
  ]
}
Synthetic ConfigurationInternalError responseExemplu sintetic HTTP 500
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 500,
  "code": "internal_error",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
503A canonical configuration dependency is unavailable or returned unsafe evidence.O dependență a configurării canonice este indisponibilă sau a returnat dovezi nesigure.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 503
        },
        "code": {
          "const": "dependency_unavailable"
        }
      }
    }
  ]
}
Synthetic ConfigurationDependencyUnavailable responseExemplu sintetic HTTP 503
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 503,
  "code": "dependency_unavailable",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}

Frontend capabilityCapabilitate frontend

API-onlyDoar API
PlannedPlanificatNoNuImplementedImplementatNoNuAcceptedAcceptatNoNu

Ingestion-model workflows are API-only; see the operational tasks guide.Operația rămâne intenționat disponibilă doar prin API.

Guided courseCurs ghidat

This operation is not part of the finite Story 5.3 course.Această operație nu face parte din cursul finit Story 5.3.