Skip to main content
Glama

Custom Vision Training Client

models.py34 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T05:09:48+00:00 from __future__ import annotations from datetime import datetime from enum import Enum from typing import Dict, List, Optional from uuid import UUID from pydantic import BaseModel, Field, RootModel class BoundingBox(BaseModel): height: float = Field(..., description='Height.') left: float = Field(..., description='Coordinate of the left boundary.') top: float = Field(..., description='Coordinate of the top boundary.') width: float = Field(..., description='Width.') class Code(Enum): NoError = 'NoError' BadRequest = 'BadRequest' BadRequestExceededBatchSize = 'BadRequestExceededBatchSize' BadRequestNotSupported = 'BadRequestNotSupported' BadRequestInvalidIds = 'BadRequestInvalidIds' BadRequestProjectName = 'BadRequestProjectName' BadRequestProjectNameNotUnique = 'BadRequestProjectNameNotUnique' BadRequestProjectDescription = 'BadRequestProjectDescription' BadRequestProjectUnknownDomain = 'BadRequestProjectUnknownDomain' BadRequestProjectUnknownClassification = 'BadRequestProjectUnknownClassification' BadRequestProjectUnsupportedDomainTypeChange = ( 'BadRequestProjectUnsupportedDomainTypeChange' ) BadRequestProjectUnsupportedExportPlatform = ( 'BadRequestProjectUnsupportedExportPlatform' ) BadRequestProjectImagePreprocessingSettings = ( 'BadRequestProjectImagePreprocessingSettings' ) BadRequestProjectDuplicated = 'BadRequestProjectDuplicated' BadRequestIterationName = 'BadRequestIterationName' BadRequestIterationNameNotUnique = 'BadRequestIterationNameNotUnique' BadRequestIterationDescription = 'BadRequestIterationDescription' BadRequestIterationIsNotTrained = 'BadRequestIterationIsNotTrained' BadRequestIterationValidationFailed = 'BadRequestIterationValidationFailed' BadRequestWorkspaceCannotBeModified = 'BadRequestWorkspaceCannotBeModified' BadRequestWorkspaceNotDeletable = 'BadRequestWorkspaceNotDeletable' BadRequestTagName = 'BadRequestTagName' BadRequestTagNameNotUnique = 'BadRequestTagNameNotUnique' BadRequestTagDescription = 'BadRequestTagDescription' BadRequestTagType = 'BadRequestTagType' BadRequestMultipleNegativeTag = 'BadRequestMultipleNegativeTag' BadRequestImageTags = 'BadRequestImageTags' BadRequestImageRegions = 'BadRequestImageRegions' BadRequestNegativeAndRegularTagOnSameImage = ( 'BadRequestNegativeAndRegularTagOnSameImage' ) BadRequestRequiredParamIsNull = 'BadRequestRequiredParamIsNull' BadRequestIterationIsPublished = 'BadRequestIterationIsPublished' BadRequestInvalidPublishName = 'BadRequestInvalidPublishName' BadRequestInvalidPublishTarget = 'BadRequestInvalidPublishTarget' BadRequestUnpublishFailed = 'BadRequestUnpublishFailed' BadRequestIterationNotPublished = 'BadRequestIterationNotPublished' BadRequestSubscriptionApi = 'BadRequestSubscriptionApi' BadRequestExceedProjectLimit = 'BadRequestExceedProjectLimit' BadRequestExceedIterationPerProjectLimit = ( 'BadRequestExceedIterationPerProjectLimit' ) BadRequestExceedTagPerProjectLimit = 'BadRequestExceedTagPerProjectLimit' BadRequestExceedTagPerImageLimit = 'BadRequestExceedTagPerImageLimit' BadRequestExceededQuota = 'BadRequestExceededQuota' BadRequestCannotMigrateProjectWithName = 'BadRequestCannotMigrateProjectWithName' BadRequestNotLimitedTrial = 'BadRequestNotLimitedTrial' BadRequestImageBatch = 'BadRequestImageBatch' BadRequestImageStream = 'BadRequestImageStream' BadRequestImageUrl = 'BadRequestImageUrl' BadRequestImageFormat = 'BadRequestImageFormat' BadRequestImageSizeBytes = 'BadRequestImageSizeBytes' BadRequestImageExceededCount = 'BadRequestImageExceededCount' BadRequestTrainingNotNeeded = 'BadRequestTrainingNotNeeded' BadRequestTrainingNotNeededButTrainingPipelineUpdated = ( 'BadRequestTrainingNotNeededButTrainingPipelineUpdated' ) BadRequestTrainingValidationFailed = 'BadRequestTrainingValidationFailed' BadRequestClassificationTrainingValidationFailed = ( 'BadRequestClassificationTrainingValidationFailed' ) BadRequestMultiClassClassificationTrainingValidationFailed = ( 'BadRequestMultiClassClassificationTrainingValidationFailed' ) BadRequestMultiLabelClassificationTrainingValidationFailed = ( 'BadRequestMultiLabelClassificationTrainingValidationFailed' ) BadRequestDetectionTrainingValidationFailed = ( 'BadRequestDetectionTrainingValidationFailed' ) BadRequestTrainingAlreadyInProgress = 'BadRequestTrainingAlreadyInProgress' BadRequestDetectionTrainingNotAllowNegativeTag = ( 'BadRequestDetectionTrainingNotAllowNegativeTag' ) BadRequestInvalidEmailAddress = 'BadRequestInvalidEmailAddress' BadRequestDomainNotSupportedForAdvancedTraining = ( 'BadRequestDomainNotSupportedForAdvancedTraining' ) BadRequestExportPlatformNotSupportedForAdvancedTraining = ( 'BadRequestExportPlatformNotSupportedForAdvancedTraining' ) BadRequestReservedBudgetInHoursNotEnoughForAdvancedTraining = ( 'BadRequestReservedBudgetInHoursNotEnoughForAdvancedTraining' ) BadRequestExportValidationFailed = 'BadRequestExportValidationFailed' BadRequestExportAlreadyInProgress = 'BadRequestExportAlreadyInProgress' BadRequestPredictionIdsMissing = 'BadRequestPredictionIdsMissing' BadRequestPredictionIdsExceededCount = 'BadRequestPredictionIdsExceededCount' BadRequestPredictionTagsExceededCount = 'BadRequestPredictionTagsExceededCount' BadRequestPredictionResultsExceededCount = ( 'BadRequestPredictionResultsExceededCount' ) BadRequestPredictionInvalidApplicationName = ( 'BadRequestPredictionInvalidApplicationName' ) BadRequestPredictionInvalidQueryParameters = ( 'BadRequestPredictionInvalidQueryParameters' ) BadRequestInvalidImportToken = 'BadRequestInvalidImportToken' BadRequestExportWhileTraining = 'BadRequestExportWhileTraining' BadRequestInvalid = 'BadRequestInvalid' UnsupportedMediaType = 'UnsupportedMediaType' Forbidden = 'Forbidden' ForbiddenUser = 'ForbiddenUser' ForbiddenUserResource = 'ForbiddenUserResource' ForbiddenUserSignupDisabled = 'ForbiddenUserSignupDisabled' ForbiddenUserSignupAllowanceExceeded = 'ForbiddenUserSignupAllowanceExceeded' ForbiddenUserDoesNotExist = 'ForbiddenUserDoesNotExist' ForbiddenUserDisabled = 'ForbiddenUserDisabled' ForbiddenUserInsufficientCapability = 'ForbiddenUserInsufficientCapability' ForbiddenDRModeEnabled = 'ForbiddenDRModeEnabled' ForbiddenInvalid = 'ForbiddenInvalid' NotFound = 'NotFound' NotFoundProject = 'NotFoundProject' NotFoundProjectDefaultIteration = 'NotFoundProjectDefaultIteration' NotFoundIteration = 'NotFoundIteration' NotFoundIterationPerformance = 'NotFoundIterationPerformance' NotFoundTag = 'NotFoundTag' NotFoundImage = 'NotFoundImage' NotFoundDomain = 'NotFoundDomain' NotFoundApimSubscription = 'NotFoundApimSubscription' NotFoundInvalid = 'NotFoundInvalid' Conflict = 'Conflict' ConflictInvalid = 'ConflictInvalid' ErrorUnknown = 'ErrorUnknown' ErrorIterationCopyFailed = 'ErrorIterationCopyFailed' ErrorPreparePerformanceMigrationFailed = 'ErrorPreparePerformanceMigrationFailed' ErrorProjectInvalidWorkspace = 'ErrorProjectInvalidWorkspace' ErrorProjectInvalidPipelineConfiguration = ( 'ErrorProjectInvalidPipelineConfiguration' ) ErrorProjectInvalidDomain = 'ErrorProjectInvalidDomain' ErrorProjectTrainingRequestFailed = 'ErrorProjectTrainingRequestFailed' ErrorProjectImportRequestFailed = 'ErrorProjectImportRequestFailed' ErrorProjectExportRequestFailed = 'ErrorProjectExportRequestFailed' ErrorFeaturizationServiceUnavailable = 'ErrorFeaturizationServiceUnavailable' ErrorFeaturizationQueueTimeout = 'ErrorFeaturizationQueueTimeout' ErrorFeaturizationInvalidFeaturizer = 'ErrorFeaturizationInvalidFeaturizer' ErrorFeaturizationAugmentationUnavailable = ( 'ErrorFeaturizationAugmentationUnavailable' ) ErrorFeaturizationUnrecognizedJob = 'ErrorFeaturizationUnrecognizedJob' ErrorFeaturizationAugmentationError = 'ErrorFeaturizationAugmentationError' ErrorExporterInvalidPlatform = 'ErrorExporterInvalidPlatform' ErrorExporterInvalidFeaturizer = 'ErrorExporterInvalidFeaturizer' ErrorExporterInvalidClassifier = 'ErrorExporterInvalidClassifier' ErrorPredictionServiceUnavailable = 'ErrorPredictionServiceUnavailable' ErrorPredictionModelNotFound = 'ErrorPredictionModelNotFound' ErrorPredictionModelNotCached = 'ErrorPredictionModelNotCached' ErrorPrediction = 'ErrorPrediction' ErrorPredictionStorage = 'ErrorPredictionStorage' ErrorRegionProposal = 'ErrorRegionProposal' ErrorInvalid = 'ErrorInvalid' class CustomVisionError(BaseModel): code: Code = Field(..., description='The error code.') message: str = Field( ..., description='A message explaining the error reported by the service.' ) class Type(Enum): Classification = 'Classification' ObjectDetection = 'ObjectDetection' class Domain(BaseModel): enabled: Optional[bool] = None exportable: Optional[bool] = None id: Optional[UUID] = None name: Optional[str] = None type: Optional[Type] = None class Flavor(Enum): Linux = 'Linux' Windows = 'Windows' ONNX10 = 'ONNX10' ONNX12 = 'ONNX12' ARM = 'ARM' TensorFlowNormal = 'TensorFlowNormal' TensorFlowLite = 'TensorFlowLite' class Platform(Enum): CoreML = 'CoreML' TensorFlow = 'TensorFlow' DockerFile = 'DockerFile' ONNX = 'ONNX' VAIDK = 'VAIDK' class Status(Enum): Exporting = 'Exporting' Failed = 'Failed' Done = 'Done' class Export(BaseModel): downloadUri: Optional[str] = Field( None, description='URI used to download the model.' ) flavor: Optional[Flavor] = Field( None, description='Flavor of the export. These are specializations of the export platform.\r\nDocker platform has valid flavors: Linux, Windows, ARM.\r\nTensorflow platform has valid flavors: TensorFlowNormal, TensorFlowLite.\r\nONNX platform has valid flavors: ONNX10, ONNX12.', ) newerVersionAvailable: Optional[bool] = Field( None, description='Indicates an updated version of the export package is available and should be re-exported for the latest changes.', ) platform: Optional[Platform] = Field(None, description='Platform of the export.') status: Optional[Status] = Field(None, description='Status of the export.') class Status1(Enum): OK = 'OK' OKDuplicate = 'OKDuplicate' ErrorSource = 'ErrorSource' ErrorImageFormat = 'ErrorImageFormat' ErrorImageSize = 'ErrorImageSize' ErrorStorage = 'ErrorStorage' ErrorLimitExceed = 'ErrorLimitExceed' ErrorTagLimitExceed = 'ErrorTagLimitExceed' ErrorRegionLimitExceed = 'ErrorRegionLimitExceed' ErrorUnknown = 'ErrorUnknown' ErrorNegativeAndRegularTagOnSameImage = 'ErrorNegativeAndRegularTagOnSameImage' class ImageProcessingSettings(BaseModel): augmentationMethods: Optional[Dict[str, bool]] = Field( None, description='Gets or sets enabled image transforms. The key corresponds to the transform name. If value is set to true, then correspondent transform is enabled. Otherwise this transform will not be used.\r\nAugmentation will be uniformly distributed among enabled transforms.', ) class ImageRegion(BaseModel): created: Optional[datetime] = None height: float = Field(..., description='Height.') left: float = Field(..., description='Coordinate of the left boundary.') regionId: Optional[UUID] = None tagId: UUID = Field(..., description='Id of the tag associated with this region.') tagName: Optional[str] = None top: float = Field(..., description='Coordinate of the top boundary.') width: float = Field(..., description='Width.') class ImageRegionCreateEntry(BaseModel): height: float = Field(..., description='Height.') imageId: UUID = Field(..., description='Id of the image.') left: float = Field(..., description='Coordinate of the left boundary.') tagId: UUID = Field(..., description='Id of the tag associated with this region.') top: float = Field(..., description='Coordinate of the top boundary.') width: float = Field(..., description='Width.') class ImageRegionCreateResult(BaseModel): created: Optional[datetime] = None height: float = Field(..., description='Height.') imageId: Optional[UUID] = None left: float = Field(..., description='Coordinate of the left boundary.') regionId: Optional[UUID] = None tagId: UUID = Field(..., description='Id of the tag associated with this region.') tagName: Optional[str] = None top: float = Field(..., description='Coordinate of the top boundary.') width: float = Field(..., description='Width.') class ImageRegionCreateSummary(BaseModel): created: Optional[List[ImageRegionCreateResult]] = None duplicated: Optional[List[ImageRegionCreateEntry]] = None exceeded: Optional[List[ImageRegionCreateEntry]] = None class ImageTag(BaseModel): created: Optional[datetime] = None tagId: Optional[UUID] = None tagName: Optional[str] = None class ImageTagCreateEntry(BaseModel): imageId: Optional[UUID] = Field(None, description='Id of the image.') tagId: Optional[UUID] = Field(None, description='Id of the tag.') class ImageTagCreateSummary(BaseModel): created: Optional[List[ImageTagCreateEntry]] = None duplicated: Optional[List[ImageTagCreateEntry]] = None exceeded: Optional[List[ImageTagCreateEntry]] = None class ImageUrl(BaseModel): url: str = Field(..., description='Url of the image.') class ClassificationType(Enum): Multiclass = 'Multiclass' Multilabel = 'Multilabel' class ExportableToEnum(Enum): CoreML = 'CoreML' TensorFlow = 'TensorFlow' DockerFile = 'DockerFile' ONNX = 'ONNX' VAIDK = 'VAIDK' class TrainingType(Enum): Regular = 'Regular' Advanced = 'Advanced' class Iteration(BaseModel): classificationType: Optional[ClassificationType] = Field( None, description='Gets the classification type of the project.' ) created: Optional[datetime] = Field( None, description='Gets the time this iteration was completed.' ) domainId: Optional[UUID] = Field( None, description='Get or sets a guid of the domain the iteration has been trained on.', ) exportable: Optional[bool] = Field( None, description='Whether the iteration can be exported to another format for download.', ) exportableTo: Optional[List[ExportableToEnum]] = Field( None, description='A set of platforms this iteration can export to.' ) id: Optional[UUID] = Field(None, description='Gets the id of the iteration.') lastModified: Optional[datetime] = Field( None, description='Gets the time this iteration was last modified.' ) name: str = Field(..., description='Gets or sets the name of the iteration.') originalPublishResourceId: Optional[str] = Field( None, description='Resource Provider Id this iteration was originally published to.', ) projectId: Optional[UUID] = Field( None, description='Gets the project id of the iteration.' ) publishName: Optional[str] = Field(None, description='Name of the published model.') reservedBudgetInHours: Optional[int] = Field( None, description='Gets the reserved advanced training budget for the iteration.', ) status: Optional[str] = Field( None, description='Gets the current iteration status.' ) trainedAt: Optional[datetime] = Field( None, description='Gets the time this iteration was last modified.' ) trainingTimeInMinutes: Optional[int] = Field( None, description='Gets the training time for the iteration.' ) trainingType: Optional[TrainingType] = Field( None, description='Gets the training type of the iteration.' ) class Prediction(BaseModel): boundingBox: Optional[BoundingBox] = None probability: Optional[float] = Field(None, description='Probability of the tag.') tagId: Optional[UUID] = Field(None, description='Id of the predicted tag.') tagName: Optional[str] = Field(None, description='Name of the predicted tag.') class PredictionQueryTag(BaseModel): id: Optional[UUID] = None maxThreshold: Optional[float] = None minThreshold: Optional[float] = None class OrderBy(Enum): Newest = 'Newest' Oldest = 'Oldest' Suggested = 'Suggested' class PredictionQueryToken(BaseModel): application: Optional[str] = None continuation: Optional[str] = None endTime: Optional[datetime] = None iterationId: Optional[UUID] = None maxCount: Optional[int] = None orderBy: Optional[OrderBy] = None session: Optional[str] = None startTime: Optional[datetime] = None tags: Optional[List[PredictionQueryTag]] = None class Status2(Enum): Succeeded = 'Succeeded' Importing = 'Importing' Failed = 'Failed' class ProjectExport(BaseModel): estimatedImportTimeInMS: Optional[int] = Field( None, description='Estimated time this project will take to import, can change based on network connectivity and load between\r\nsource and destination regions.', ) imageCount: Optional[int] = Field( None, description='Count of images that will be exported.' ) iterationCount: Optional[int] = Field( None, description='Count of iterations that will be exported.' ) regionCount: Optional[int] = Field( None, description='Count of regions that will be exported.' ) tagCount: Optional[int] = Field( None, description='Count of tags that will be exported.' ) token: Optional[str] = Field( None, description='Opaque token that should be passed to ImportProject to perform the import. This token grants access to import this\r\nproject to all that have the token.', ) class TargetExportPlatform(Enum): CoreML = 'CoreML' TensorFlow = 'TensorFlow' DockerFile = 'DockerFile' ONNX = 'ONNX' VAIDK = 'VAIDK' class ProjectSettings(BaseModel): classificationType: Optional[ClassificationType] = Field( None, description='Gets or sets the classification type of the project.' ) detectionParameters: Optional[str] = Field( None, description='Detection parameters in use, if any.' ) domainId: Optional[UUID] = Field( None, description='Gets or sets the id of the Domain to use with this project.' ) imageProcessingSettings: Optional[ImageProcessingSettings] = None targetExportPlatforms: Optional[List[TargetExportPlatform]] = Field( None, description='A list of ExportPlatform that the trained model should be able to support.', ) useNegativeSet: Optional[bool] = Field( None, description='Indicates if negative set is being used.' ) class Region(BaseModel): height: float = Field(..., description='Height.') left: float = Field(..., description='Coordinate of the left boundary.') tagId: UUID = Field(..., description='Id of the tag associated with this region.') top: float = Field(..., description='Coordinate of the top boundary.') width: float = Field(..., description='Width.') class RegionProposal(BaseModel): boundingBox: Optional[BoundingBox] = None confidence: Optional[float] = None class StoredImagePrediction(BaseModel): created: Optional[datetime] = Field( None, description='Date this prediction was created.' ) domain: Optional[UUID] = Field(None, description='Domain used for the prediction.') id: Optional[UUID] = Field(None, description='Prediction Id.') iteration: Optional[UUID] = Field(None, description='Iteration Id.') originalImageUri: Optional[str] = Field( None, description='The URI to the original prediction image.' ) predictions: Optional[List[Prediction]] = Field( None, description='List of predictions.' ) project: Optional[UUID] = Field(None, description='Project Id.') resizedImageUri: Optional[str] = Field( None, description='The URI to the (resized) prediction image.' ) thumbnailUri: Optional[str] = Field( None, description='The URI to the thumbnail of the original prediction image.' ) class StoredSuggestedTagAndRegion(BaseModel): created: Optional[datetime] = Field( None, description='Date this prediction was created.' ) domain: Optional[UUID] = Field(None, description='Domain used for the prediction.') height: Optional[int] = Field(None, description='Height of the resized image.') id: Optional[UUID] = Field(None, description='Prediction Id.') iteration: Optional[UUID] = Field(None, description='Iteration Id.') originalImageUri: Optional[str] = Field( None, description='The URI to the original prediction image.' ) predictionUncertainty: Optional[float] = Field( None, description='Uncertainty (entropy) of suggested tags or regions per image.', ) predictions: Optional[List[Prediction]] = Field( None, description='List of predictions.' ) project: Optional[UUID] = Field(None, description='Project Id.') resizedImageUri: Optional[str] = Field( None, description='The URI to the (resized) prediction image.' ) thumbnailUri: Optional[str] = Field( None, description='The URI to the thumbnail of the original prediction image.' ) width: Optional[int] = Field(None, description='Width of the resized image.') class SuggestedTagAndRegion(BaseModel): created: Optional[datetime] = Field( None, description='Date this prediction was created.' ) id: Optional[UUID] = Field(None, description='Prediction Id.') iteration: Optional[UUID] = Field(None, description='Iteration Id.') predictionUncertainty: Optional[float] = Field( None, description='Uncertainty (entropy) of suggested tags or regions per image.', ) predictions: Optional[List[Prediction]] = Field( None, description='List of predictions.' ) project: Optional[UUID] = Field(None, description='Project Id.') class SortBy(Enum): UncertaintyAscending = 'UncertaintyAscending' UncertaintyDescending = 'UncertaintyDescending' class SuggestedTagAndRegionQueryToken(BaseModel): continuation: Optional[str] = Field( None, description='Continuation Id for database pagination. Initially null but later used to paginate.', ) maxCount: Optional[int] = Field( None, description='Maximum number of results you want to be returned in the response.', ) session: Optional[str] = Field( None, description='SessionId for database query. Initially set to null but later used to paginate.', ) sortBy: Optional[SortBy] = Field( None, description='OrderBy. Ordering mechanism for your results.' ) tagIds: Optional[List[UUID]] = Field( None, description='Existing TagIds in project to filter suggested tags on.' ) threshold: Optional[float] = Field( None, description='Confidence threshold to filter suggested tags on.' ) class Type1(Enum): Regular = 'Regular' Negative = 'Negative' class Tag(BaseModel): description: str = Field( ..., description='Gets or sets the description of the tag.' ) id: Optional[UUID] = Field(None, description='Gets the Tag ID.') imageCount: Optional[int] = Field( None, description='Gets the number of images with this tag.' ) name: str = Field(..., description='Gets or sets the name of the tag.') type: Type1 = Field(..., description='Gets or sets the type of the tag.') class TagFilter(BaseModel): tagIds: Optional[List[UUID]] = Field( None, description='Existing TagIds in project to get suggested tags count for.' ) threshold: Optional[float] = Field( None, description='Confidence threshold to filter suggested tags on.' ) class TagPerformance(BaseModel): averagePrecision: Optional[float] = Field( None, description='Gets the average precision when applicable.' ) id: Optional[UUID] = None name: Optional[str] = None precision: Optional[float] = Field(None, description='Gets the precision.') precisionStdDeviation: Optional[float] = Field( None, description='Gets the standard deviation for the precision.' ) recall: Optional[float] = Field(None, description='Gets the recall.') recallStdDeviation: Optional[float] = Field( None, description='Gets the standard deviation for the recall.' ) class TrainingParameters(BaseModel): selectedTags: Optional[List[UUID]] = Field( None, description='List of tags selected for this training session, other tags in the project will be ignored.', ) class DomainsGetResponse(RootModel[List[Domain]]): root: List[Domain] class TargetExportPlatforms(RootModel[List[TargetExportPlatform]]): root: List[TargetExportPlatform] class ImageIds(RootModel[List[UUID]]): root: List[UUID] = Field(..., max_length=256, min_length=0) class ProjectsProjectIdImagesPostRequest(BaseModel): imageData: bytes = Field( ..., description='Binary image data. Supported formats are JPEG, GIF, PNG, and BMP. Supports images up to 6MB.', ) class TagIds(RootModel[List[UUID]]): root: List[UUID] = Field(..., max_length=20, min_length=0) class RegionIds(RootModel[List[UUID]]): root: List[UUID] = Field(..., max_length=64, min_length=0) class ProjectsProjectIdImagesSuggestedCountPostResponse( RootModel[Optional[Dict[str, int]]] ): root: Optional[Dict[str, int]] = None class OrderBy1(Enum): Newest = 'Newest' Oldest = 'Oldest' class TagIds2(RootModel[List[UUID]]): root: List[UUID] class ImageIds2(RootModel[List[UUID]]): root: List[UUID] = Field(..., max_length=64, min_length=0) class TagIds3(RootModel[List[UUID]]): root: List[UUID] = Field(..., max_length=20, min_length=0) class ProjectsProjectIdIterationsGetResponse(RootModel[List[Iteration]]): root: List[Iteration] class ProjectsProjectIdIterationsIterationIdExportGetResponse(RootModel[List[Export]]): root: List[Export] class TagIds5(RootModel[List[UUID]]): root: List[UUID] class Ids(RootModel[List[UUID]]): root: List[UUID] = Field(..., max_length=64, min_length=0) class ProjectsProjectIdQuicktestImagePostRequest(BaseModel): imageData: bytes = Field( ..., description='Binary image data. Supported formats are JPEG, GIF, PNG, and BMP. Supports images up to 6MB.', ) class ProjectsProjectIdTagsGetResponse(RootModel[List[Tag]]): root: List[Tag] class ProjectsProjectIdTagsandregionsSuggestionsPostResponse( RootModel[List[SuggestedTagAndRegion]] ): root: List[SuggestedTagAndRegion] class Image(BaseModel): created: Optional[datetime] = Field(None, description='Date the image was created.') height: Optional[int] = Field(None, description='Height of the image.') id: Optional[UUID] = Field(None, description='Id of the image.') originalImageUri: Optional[str] = Field( None, description='The URI to the original uploaded image.' ) regions: Optional[List[ImageRegion]] = Field( None, description='Regions associated with this image.' ) resizedImageUri: Optional[str] = Field( None, description='The URI to the (resized) image used for training.' ) tags: Optional[List[ImageTag]] = Field( None, description='Tags associated with this image.' ) thumbnailUri: Optional[str] = Field( None, description='The URI to the thumbnail of the original image.' ) width: Optional[int] = Field(None, description='Width of the image.') class ImageCreateResult(BaseModel): image: Optional[Image] = None sourceUrl: Optional[str] = Field(None, description='Source URL of the image.') status: Optional[Status1] = Field(None, description='Status of the image creation.') class ImageCreateSummary(BaseModel): images: Optional[List[ImageCreateResult]] = Field( None, description='List of the image creation results.' ) isBatchSuccessful: Optional[bool] = Field( None, description='True if all of the images in the batch were created successfully, otherwise false.', ) class ImageFileCreateEntry(BaseModel): contents: Optional[str] = None name: Optional[str] = None regions: Optional[List[Region]] = None tagIds: Optional[List[UUID]] = None class ImageIdCreateEntry(BaseModel): id: Optional[UUID] = Field(None, description='Id of the image.') regions: Optional[List[Region]] = None tagIds: Optional[List[UUID]] = None class ImagePerformance(BaseModel): created: Optional[datetime] = None height: Optional[int] = None id: Optional[UUID] = None imageUri: Optional[str] = None predictions: Optional[List[Prediction]] = None regions: Optional[List[ImageRegion]] = None tags: Optional[List[ImageTag]] = None thumbnailUri: Optional[str] = None width: Optional[int] = None class ImagePrediction(BaseModel): created: Optional[datetime] = Field( None, description='Date this prediction was created.' ) id: Optional[UUID] = Field(None, description='Prediction Id.') iteration: Optional[UUID] = Field(None, description='Iteration Id.') predictions: Optional[List[Prediction]] = Field( None, description='List of predictions.' ) project: Optional[UUID] = Field(None, description='Project Id.') class ImageRegionCreateBatch(BaseModel): regions: Optional[List[ImageRegionCreateEntry]] = None class ImageRegionProposal(BaseModel): imageId: Optional[UUID] = None projectId: Optional[UUID] = None proposals: Optional[List[RegionProposal]] = None class ImageTagCreateBatch(BaseModel): tags: Optional[List[ImageTagCreateEntry]] = Field( None, description='Image Tag entries to include in this batch.' ) class ImageUrlCreateEntry(BaseModel): regions: Optional[List[Region]] = None tagIds: Optional[List[UUID]] = None url: str = Field(..., description='Url of the image.') class IterationPerformance(BaseModel): averagePrecision: Optional[float] = Field( None, description='Gets the average precision when applicable.' ) perTagPerformance: Optional[List[TagPerformance]] = Field( None, description='Gets the per-tag performance details for this iteration.' ) precision: Optional[float] = Field(None, description='Gets the precision.') precisionStdDeviation: Optional[float] = Field( None, description='Gets the standard deviation for the precision.' ) recall: Optional[float] = Field(None, description='Gets the recall.') recallStdDeviation: Optional[float] = Field( None, description='Gets the standard deviation for the recall.' ) class PredictionQueryResult(BaseModel): results: Optional[List[StoredImagePrediction]] = Field( None, description='Result of an prediction request.' ) token: Optional[PredictionQueryToken] = None class Project(BaseModel): created: Optional[datetime] = Field( None, description='Gets the date this project was created.' ) description: str = Field( ..., description='Gets or sets the description of the project.' ) drModeEnabled: Optional[bool] = Field( None, description='Gets if the Disaster Recovery (DR) mode is on, indicating the project is temporarily read-only.', ) id: Optional[UUID] = Field(None, description='Gets the project id.') lastModified: Optional[datetime] = Field( None, description='Gets the date this project was last modified.' ) name: str = Field(..., description='Gets or sets the name of the project.') settings: ProjectSettings status: Optional[Status2] = Field( None, description='Gets the status of the project.' ) thumbnailUri: Optional[str] = Field( None, description='Gets the thumbnail url representing the image.' ) class SuggestedTagAndRegionQuery(BaseModel): results: Optional[List[StoredSuggestedTagAndRegion]] = Field( None, description='Result of a suggested tags and regions request of the untagged image.', ) token: Optional[SuggestedTagAndRegionQueryToken] = None class ProjectsGetResponse(RootModel[List[Project]]): root: List[Project] class ProjectsProjectIdImagesIdGetResponse(RootModel[List[Image]]): root: List[Image] class ProjectsProjectIdImagesTaggedGetResponse(RootModel[List[Image]]): root: List[Image] class ProjectsProjectIdImagesUntaggedGetResponse(RootModel[List[Image]]): root: List[Image] class ProjectsProjectIdIterationsIterationIdPerformanceImagesGetResponse( RootModel[List[ImagePerformance]] ): root: List[ImagePerformance] class ImageFileCreateBatch(BaseModel): images: Optional[List[ImageFileCreateEntry]] = None tagIds: Optional[List[UUID]] = None class ImageIdCreateBatch(BaseModel): images: Optional[List[ImageIdCreateEntry]] = None tagIds: Optional[List[UUID]] = None class ImageUrlCreateBatch(BaseModel): images: Optional[List[ImageUrlCreateEntry]] = None tagIds: Optional[List[UUID]] = None

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ag2-mcp-servers/custom-vision-training-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server