2025-08-21 17:15:11 -05:00
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.18
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi . api ;
class AssetsApi {
AssetsApi ( [ ApiClient ? apiClient ] ) : apiClient = apiClient ? ? defaultApiClient ;
final ApiClient apiClient ;
/// checkBulkUpload
///
2025-09-02 21:21:14 +02:00
/// Checks if assets exist by checksums. This endpoint requires the `asset.upload` permission.
2025-08-21 17:15:11 -05:00
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [AssetBulkUploadCheckDto] assetBulkUploadCheckDto (required):
Future < Response > checkBulkUploadWithHttpInfo ( AssetBulkUploadCheckDto assetBulkUploadCheckDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/bulk-upload-check' ;
// ignore: prefer_final_locals
Object ? postBody = assetBulkUploadCheckDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' POST ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// checkBulkUpload
///
2025-09-02 21:21:14 +02:00
/// Checks if assets exist by checksums. This endpoint requires the `asset.upload` permission.
2025-08-21 17:15:11 -05:00
///
/// Parameters:
///
/// * [AssetBulkUploadCheckDto] assetBulkUploadCheckDto (required):
Future < AssetBulkUploadCheckResponseDto ? > checkBulkUpload ( AssetBulkUploadCheckDto assetBulkUploadCheckDto , ) async {
final response = await checkBulkUploadWithHttpInfo ( assetBulkUploadCheckDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetBulkUploadCheckResponseDto ' , ) as AssetBulkUploadCheckResponseDto ;
}
return null ;
}
/// checkExistingAssets
///
/// Checks if multiple assets exist on the server and returns all existing - used by background backup
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [CheckExistingAssetsDto] checkExistingAssetsDto (required):
Future < Response > checkExistingAssetsWithHttpInfo ( CheckExistingAssetsDto checkExistingAssetsDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/exist' ;
// ignore: prefer_final_locals
Object ? postBody = checkExistingAssetsDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' POST ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// checkExistingAssets
///
/// Checks if multiple assets exist on the server and returns all existing - used by background backup
///
/// Parameters:
///
/// * [CheckExistingAssetsDto] checkExistingAssetsDto (required):
Future < CheckExistingAssetsResponseDto ? > checkExistingAssets ( CheckExistingAssetsDto checkExistingAssetsDto , ) async {
final response = await checkExistingAssetsWithHttpInfo ( checkExistingAssetsDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' CheckExistingAssetsResponseDto ' , ) as CheckExistingAssetsResponseDto ;
}
return null ;
}
2025-08-27 14:31:23 -04:00
/// This endpoint requires the `asset.update` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [AssetMetadataKey] key (required):
Future < Response > deleteAssetMetadataWithHttpInfo ( String id , AssetMetadataKey key , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/metadata/{key}'
. replaceAll ( ' {id} ' , id )
. replaceAll ( ' {key} ' , key . toString ( ) ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' DELETE ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.update` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [AssetMetadataKey] key (required):
Future < void > deleteAssetMetadata ( String id , AssetMetadataKey key , ) async {
final response = await deleteAssetMetadataWithHttpInfo ( id , key , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
}
2025-08-21 17:15:11 -05:00
/// This endpoint requires the `asset.delete` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [AssetBulkDeleteDto] assetBulkDeleteDto (required):
Future < Response > deleteAssetsWithHttpInfo ( AssetBulkDeleteDto assetBulkDeleteDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets' ;
// ignore: prefer_final_locals
Object ? postBody = assetBulkDeleteDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' DELETE ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.delete` permission.
///
/// Parameters:
///
/// * [AssetBulkDeleteDto] assetBulkDeleteDto (required):
Future < void > deleteAssets ( AssetBulkDeleteDto assetBulkDeleteDto , ) async {
final response = await deleteAssetsWithHttpInfo ( assetBulkDeleteDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
}
/// This endpoint requires the `asset.download` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [String] slug:
Future < Response > downloadAssetWithHttpInfo ( String id , { String ? key , String ? slug , } ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/original'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( key ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' key ' , key ) ) ;
}
if ( slug ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' slug ' , slug ) ) ;
}
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.download` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [String] slug:
Future < MultipartFile ? > downloadAsset ( String id , { String ? key , String ? slug , } ) async {
final response = await downloadAssetWithHttpInfo ( id , key: key , slug: slug , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' MultipartFile ' , ) as MultipartFile ;
}
return null ;
}
/// getAllUserAssetsByDeviceId
///
/// Get all asset of a device that are in the database, ID only.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] deviceId (required):
Future < Response > getAllUserAssetsByDeviceIdWithHttpInfo ( String deviceId , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/device/{deviceId}'
. replaceAll ( ' {deviceId} ' , deviceId ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// getAllUserAssetsByDeviceId
///
/// Get all asset of a device that are in the database, ID only.
///
/// Parameters:
///
/// * [String] deviceId (required):
Future < List < String > ? > getAllUserAssetsByDeviceId ( String deviceId , ) async {
final response = await getAllUserAssetsByDeviceIdWithHttpInfo ( deviceId , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
final responseBody = await _decodeBodyBytes ( response ) ;
return ( await apiClient . deserializeAsync ( responseBody , ' List<String> ' ) as List )
. cast < String > ( )
. toList ( growable: false ) ;
}
return null ;
}
/// This endpoint requires the `asset.read` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [String] slug:
Future < Response > getAssetInfoWithHttpInfo ( String id , { String ? key , String ? slug , } ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( key ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' key ' , key ) ) ;
}
if ( slug ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' slug ' , slug ) ) ;
}
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.read` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [String] slug:
Future < AssetResponseDto ? > getAssetInfo ( String id , { String ? key , String ? slug , } ) async {
final response = await getAssetInfoWithHttpInfo ( id , key: key , slug: slug , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetResponseDto ' , ) as AssetResponseDto ;
}
return null ;
}
2025-08-27 14:31:23 -04:00
/// This endpoint requires the `asset.read` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
Future < Response > getAssetMetadataWithHttpInfo ( String id , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/metadata'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.read` permission.
///
/// Parameters:
///
/// * [String] id (required):
Future < List < AssetMetadataResponseDto > ? > getAssetMetadata ( String id , ) async {
final response = await getAssetMetadataWithHttpInfo ( id , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
final responseBody = await _decodeBodyBytes ( response ) ;
return ( await apiClient . deserializeAsync ( responseBody , ' List<AssetMetadataResponseDto> ' ) as List )
. cast < AssetMetadataResponseDto > ( )
. toList ( growable: false ) ;
}
return null ;
}
/// This endpoint requires the `asset.read` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [AssetMetadataKey] key (required):
Future < Response > getAssetMetadataByKeyWithHttpInfo ( String id , AssetMetadataKey key , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/metadata/{key}'
. replaceAll ( ' {id} ' , id )
. replaceAll ( ' {key} ' , key . toString ( ) ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.read` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [AssetMetadataKey] key (required):
Future < AssetMetadataResponseDto ? > getAssetMetadataByKey ( String id , AssetMetadataKey key , ) async {
final response = await getAssetMetadataByKeyWithHttpInfo ( id , key , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetMetadataResponseDto ' , ) as AssetMetadataResponseDto ;
}
return null ;
}
2025-08-21 17:15:11 -05:00
/// This endpoint requires the `asset.statistics` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [bool] isFavorite:
///
/// * [bool] isTrashed:
///
/// * [AssetVisibility] visibility:
Future < Response > getAssetStatisticsWithHttpInfo ( { bool ? isFavorite , bool ? isTrashed , AssetVisibility ? visibility , } ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/statistics' ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( isFavorite ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' isFavorite ' , isFavorite ) ) ;
}
if ( isTrashed ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' isTrashed ' , isTrashed ) ) ;
}
if ( visibility ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' visibility ' , visibility ) ) ;
}
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.statistics` permission.
///
/// Parameters:
///
/// * [bool] isFavorite:
///
/// * [bool] isTrashed:
///
/// * [AssetVisibility] visibility:
Future < AssetStatsResponseDto ? > getAssetStatistics ( { bool ? isFavorite , bool ? isTrashed , AssetVisibility ? visibility , } ) async {
final response = await getAssetStatisticsWithHttpInfo ( isFavorite: isFavorite , isTrashed: isTrashed , visibility: visibility , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetStatsResponseDto ' , ) as AssetStatsResponseDto ;
}
return null ;
}
/// This property was deprecated in v1.116.0. This endpoint requires the `asset.read` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
2025-09-10 22:27:55 -04:00
/// * [int] count:
Future < Response > getRandomWithHttpInfo ( { int ? count , } ) async {
2025-08-21 17:15:11 -05:00
// ignore: prefer_const_declarations
final apiPath = r'/assets/random' ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( count ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' count ' , count ) ) ;
}
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This property was deprecated in v1.116.0. This endpoint requires the `asset.read` permission.
///
/// Parameters:
///
2025-09-10 22:27:55 -04:00
/// * [int] count:
Future < List < AssetResponseDto > ? > getRandom ( { int ? count , } ) async {
2025-08-21 17:15:11 -05:00
final response = await getRandomWithHttpInfo ( count: count , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
final responseBody = await _decodeBodyBytes ( response ) ;
return ( await apiClient . deserializeAsync ( responseBody , ' List<AssetResponseDto> ' ) as List )
. cast < AssetResponseDto > ( )
. toList ( growable: false ) ;
}
return null ;
}
/// This endpoint requires the `asset.view` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [String] slug:
Future < Response > playAssetVideoWithHttpInfo ( String id , { String ? key , String ? slug , } ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/video/playback'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( key ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' key ' , key ) ) ;
}
if ( slug ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' slug ' , slug ) ) ;
}
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.view` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [String] slug:
Future < MultipartFile ? > playAssetVideo ( String id , { String ? key , String ? slug , } ) async {
final response = await playAssetVideoWithHttpInfo ( id , key: key , slug: slug , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' MultipartFile ' , ) as MultipartFile ;
}
return null ;
}
2025-09-10 15:35:41 -04:00
/// Replace the asset with new file, without changing its id
2025-08-21 17:15:11 -05:00
///
2025-09-10 15:35:41 -04:00
/// This property was deprecated in v1.142.0. Replace the asset with new file, without changing its id. This endpoint requires the `asset.replace` permission.
2025-08-21 17:15:11 -05:00
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [MultipartFile] assetData (required):
///
/// * [String] deviceAssetId (required):
///
/// * [String] deviceId (required):
///
/// * [DateTime] fileCreatedAt (required):
///
/// * [DateTime] fileModifiedAt (required):
///
/// * [String] key:
///
/// * [String] slug:
///
/// * [String] duration:
///
/// * [String] filename:
Future < Response > replaceAssetWithHttpInfo ( String id , MultipartFile assetData , String deviceAssetId , String deviceId , DateTime fileCreatedAt , DateTime fileModifiedAt , { String ? key , String ? slug , String ? duration , String ? filename , } ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/original'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( key ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' key ' , key ) ) ;
}
if ( slug ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' slug ' , slug ) ) ;
}
const contentTypes = < String > [ ' multipart/form-data ' ] ;
bool hasFields = false ;
final mp = MultipartRequest ( ' PUT ' , Uri . parse ( apiPath ) ) ;
if ( assetData ! = null ) {
hasFields = true ;
mp . fields [ r'assetData' ] = assetData . field ;
mp . files . add ( assetData ) ;
}
if ( deviceAssetId ! = null ) {
hasFields = true ;
mp . fields [ r'deviceAssetId' ] = parameterToString ( deviceAssetId ) ;
}
if ( deviceId ! = null ) {
hasFields = true ;
mp . fields [ r'deviceId' ] = parameterToString ( deviceId ) ;
}
if ( duration ! = null ) {
hasFields = true ;
mp . fields [ r'duration' ] = parameterToString ( duration ) ;
}
if ( fileCreatedAt ! = null ) {
hasFields = true ;
mp . fields [ r'fileCreatedAt' ] = parameterToString ( fileCreatedAt ) ;
}
if ( fileModifiedAt ! = null ) {
hasFields = true ;
mp . fields [ r'fileModifiedAt' ] = parameterToString ( fileModifiedAt ) ;
}
if ( filename ! = null ) {
hasFields = true ;
mp . fields [ r'filename' ] = parameterToString ( filename ) ;
}
if ( hasFields ) {
postBody = mp ;
}
return apiClient . invokeAPI (
apiPath ,
' PUT ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
2025-09-10 15:35:41 -04:00
/// Replace the asset with new file, without changing its id
2025-08-21 17:15:11 -05:00
///
2025-09-10 15:35:41 -04:00
/// This property was deprecated in v1.142.0. Replace the asset with new file, without changing its id. This endpoint requires the `asset.replace` permission.
2025-08-21 17:15:11 -05:00
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [MultipartFile] assetData (required):
///
/// * [String] deviceAssetId (required):
///
/// * [String] deviceId (required):
///
/// * [DateTime] fileCreatedAt (required):
///
/// * [DateTime] fileModifiedAt (required):
///
/// * [String] key:
///
/// * [String] slug:
///
/// * [String] duration:
///
/// * [String] filename:
Future < AssetMediaResponseDto ? > replaceAsset ( String id , MultipartFile assetData , String deviceAssetId , String deviceId , DateTime fileCreatedAt , DateTime fileModifiedAt , { String ? key , String ? slug , String ? duration , String ? filename , } ) async {
final response = await replaceAssetWithHttpInfo ( id , assetData , deviceAssetId , deviceId , fileCreatedAt , fileModifiedAt , key: key , slug: slug , duration: duration , filename: filename , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetMediaResponseDto ' , ) as AssetMediaResponseDto ;
}
return null ;
}
/// Performs an HTTP 'POST /assets/jobs' operation and returns the [Response].
/// Parameters:
///
/// * [AssetJobsDto] assetJobsDto (required):
Future < Response > runAssetJobsWithHttpInfo ( AssetJobsDto assetJobsDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/jobs' ;
// ignore: prefer_final_locals
Object ? postBody = assetJobsDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' POST ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// Parameters:
///
/// * [AssetJobsDto] assetJobsDto (required):
Future < void > runAssetJobs ( AssetJobsDto assetJobsDto , ) async {
final response = await runAssetJobsWithHttpInfo ( assetJobsDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
}
/// This endpoint requires the `asset.update` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [UpdateAssetDto] updateAssetDto (required):
Future < Response > updateAssetWithHttpInfo ( String id , UpdateAssetDto updateAssetDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody = updateAssetDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' PUT ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.update` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [UpdateAssetDto] updateAssetDto (required):
Future < AssetResponseDto ? > updateAsset ( String id , UpdateAssetDto updateAssetDto , ) async {
final response = await updateAssetWithHttpInfo ( id , updateAssetDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetResponseDto ' , ) as AssetResponseDto ;
}
return null ;
}
2025-08-27 14:31:23 -04:00
/// This endpoint requires the `asset.update` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [AssetMetadataUpsertDto] assetMetadataUpsertDto (required):
Future < Response > updateAssetMetadataWithHttpInfo ( String id , AssetMetadataUpsertDto assetMetadataUpsertDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/metadata'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody = assetMetadataUpsertDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' PUT ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.update` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [AssetMetadataUpsertDto] assetMetadataUpsertDto (required):
Future < List < AssetMetadataResponseDto > ? > updateAssetMetadata ( String id , AssetMetadataUpsertDto assetMetadataUpsertDto , ) async {
final response = await updateAssetMetadataWithHttpInfo ( id , assetMetadataUpsertDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
final responseBody = await _decodeBodyBytes ( response ) ;
return ( await apiClient . deserializeAsync ( responseBody , ' List<AssetMetadataResponseDto> ' ) as List )
. cast < AssetMetadataResponseDto > ( )
. toList ( growable: false ) ;
}
return null ;
}
2025-08-21 17:15:11 -05:00
/// This endpoint requires the `asset.update` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [AssetBulkUpdateDto] assetBulkUpdateDto (required):
Future < Response > updateAssetsWithHttpInfo ( AssetBulkUpdateDto assetBulkUpdateDto , ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets' ;
// ignore: prefer_final_locals
Object ? postBody = assetBulkUpdateDto ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
const contentTypes = < String > [ ' application/json ' ] ;
return apiClient . invokeAPI (
apiPath ,
' PUT ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.update` permission.
///
/// Parameters:
///
/// * [AssetBulkUpdateDto] assetBulkUpdateDto (required):
Future < void > updateAssets ( AssetBulkUpdateDto assetBulkUpdateDto , ) async {
final response = await updateAssetsWithHttpInfo ( assetBulkUpdateDto , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
}
/// This endpoint requires the `asset.upload` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [MultipartFile] assetData (required):
///
/// * [String] deviceAssetId (required):
///
/// * [String] deviceId (required):
///
/// * [DateTime] fileCreatedAt (required):
///
/// * [DateTime] fileModifiedAt (required):
///
2025-08-27 14:31:23 -04:00
/// * [List<AssetMetadataUpsertItemDto>] metadata (required):
///
2025-08-21 17:15:11 -05:00
/// * [String] key:
///
/// * [String] slug:
///
/// * [String] xImmichChecksum:
/// sha1 checksum that can be used for duplicate detection before the file is uploaded
///
/// * [String] duration:
///
/// * [String] filename:
///
/// * [bool] isFavorite:
///
/// * [String] livePhotoVideoId:
///
/// * [MultipartFile] sidecarData:
///
/// * [AssetVisibility] visibility:
2025-08-27 14:31:23 -04:00
Future < Response > uploadAssetWithHttpInfo ( MultipartFile assetData , String deviceAssetId , String deviceId , DateTime fileCreatedAt , DateTime fileModifiedAt , List < AssetMetadataUpsertItemDto > metadata , { String ? key , String ? slug , String ? xImmichChecksum , String ? duration , String ? filename , bool ? isFavorite , String ? livePhotoVideoId , MultipartFile ? sidecarData , AssetVisibility ? visibility , } ) async {
2025-08-21 17:15:11 -05:00
// ignore: prefer_const_declarations
final apiPath = r'/assets' ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( key ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' key ' , key ) ) ;
}
if ( slug ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' slug ' , slug ) ) ;
}
if ( xImmichChecksum ! = null ) {
headerParams [ r'x-immich-checksum' ] = parameterToString ( xImmichChecksum ) ;
}
const contentTypes = < String > [ ' multipart/form-data ' ] ;
bool hasFields = false ;
final mp = MultipartRequest ( ' POST ' , Uri . parse ( apiPath ) ) ;
if ( assetData ! = null ) {
hasFields = true ;
mp . fields [ r'assetData' ] = assetData . field ;
mp . files . add ( assetData ) ;
}
if ( deviceAssetId ! = null ) {
hasFields = true ;
mp . fields [ r'deviceAssetId' ] = parameterToString ( deviceAssetId ) ;
}
if ( deviceId ! = null ) {
hasFields = true ;
mp . fields [ r'deviceId' ] = parameterToString ( deviceId ) ;
}
if ( duration ! = null ) {
hasFields = true ;
mp . fields [ r'duration' ] = parameterToString ( duration ) ;
}
if ( fileCreatedAt ! = null ) {
hasFields = true ;
mp . fields [ r'fileCreatedAt' ] = parameterToString ( fileCreatedAt ) ;
}
if ( fileModifiedAt ! = null ) {
hasFields = true ;
mp . fields [ r'fileModifiedAt' ] = parameterToString ( fileModifiedAt ) ;
}
if ( filename ! = null ) {
hasFields = true ;
mp . fields [ r'filename' ] = parameterToString ( filename ) ;
}
if ( isFavorite ! = null ) {
hasFields = true ;
mp . fields [ r'isFavorite' ] = parameterToString ( isFavorite ) ;
}
if ( livePhotoVideoId ! = null ) {
hasFields = true ;
mp . fields [ r'livePhotoVideoId' ] = parameterToString ( livePhotoVideoId ) ;
}
2025-08-27 14:31:23 -04:00
if ( metadata ! = null ) {
hasFields = true ;
mp . fields [ r'metadata' ] = parameterToString ( metadata ) ;
}
2025-08-21 17:15:11 -05:00
if ( sidecarData ! = null ) {
hasFields = true ;
mp . fields [ r'sidecarData' ] = sidecarData . field ;
mp . files . add ( sidecarData ) ;
}
if ( visibility ! = null ) {
hasFields = true ;
mp . fields [ r'visibility' ] = parameterToString ( visibility ) ;
}
if ( hasFields ) {
postBody = mp ;
}
return apiClient . invokeAPI (
apiPath ,
' POST ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.upload` permission.
///
/// Parameters:
///
/// * [MultipartFile] assetData (required):
///
/// * [String] deviceAssetId (required):
///
/// * [String] deviceId (required):
///
/// * [DateTime] fileCreatedAt (required):
///
/// * [DateTime] fileModifiedAt (required):
///
2025-08-27 14:31:23 -04:00
/// * [List<AssetMetadataUpsertItemDto>] metadata (required):
///
2025-08-21 17:15:11 -05:00
/// * [String] key:
///
/// * [String] slug:
///
/// * [String] xImmichChecksum:
/// sha1 checksum that can be used for duplicate detection before the file is uploaded
///
/// * [String] duration:
///
/// * [String] filename:
///
/// * [bool] isFavorite:
///
/// * [String] livePhotoVideoId:
///
/// * [MultipartFile] sidecarData:
///
/// * [AssetVisibility] visibility:
2025-08-27 14:31:23 -04:00
Future < AssetMediaResponseDto ? > uploadAsset ( MultipartFile assetData , String deviceAssetId , String deviceId , DateTime fileCreatedAt , DateTime fileModifiedAt , List < AssetMetadataUpsertItemDto > metadata , { String ? key , String ? slug , String ? xImmichChecksum , String ? duration , String ? filename , bool ? isFavorite , String ? livePhotoVideoId , MultipartFile ? sidecarData , AssetVisibility ? visibility , } ) async {
final response = await uploadAssetWithHttpInfo ( assetData , deviceAssetId , deviceId , fileCreatedAt , fileModifiedAt , metadata , key: key , slug: slug , xImmichChecksum: xImmichChecksum , duration: duration , filename: filename , isFavorite: isFavorite , livePhotoVideoId: livePhotoVideoId , sidecarData: sidecarData , visibility: visibility , ) ;
2025-08-21 17:15:11 -05:00
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' AssetMediaResponseDto ' , ) as AssetMediaResponseDto ;
}
return null ;
}
/// This endpoint requires the `asset.view` permission.
///
/// Note: This method returns the HTTP [Response].
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [AssetMediaSize] size:
///
/// * [String] slug:
Future < Response > viewAssetWithHttpInfo ( String id , { String ? key , AssetMediaSize ? size , String ? slug , } ) async {
// ignore: prefer_const_declarations
final apiPath = r'/assets/{id}/thumbnail'
. replaceAll ( ' {id} ' , id ) ;
// ignore: prefer_final_locals
Object ? postBody ;
final queryParams = < QueryParam > [ ] ;
final headerParams = < String , String > { } ;
final formParams = < String , String > { } ;
if ( key ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' key ' , key ) ) ;
}
if ( size ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' size ' , size ) ) ;
}
if ( slug ! = null ) {
queryParams . addAll ( _queryParams ( ' ' , ' slug ' , slug ) ) ;
}
const contentTypes = < String > [ ] ;
return apiClient . invokeAPI (
apiPath ,
' GET ' ,
queryParams ,
postBody ,
headerParams ,
formParams ,
contentTypes . isEmpty ? null : contentTypes . first ,
) ;
}
/// This endpoint requires the `asset.view` permission.
///
/// Parameters:
///
/// * [String] id (required):
///
/// * [String] key:
///
/// * [AssetMediaSize] size:
///
/// * [String] slug:
Future < MultipartFile ? > viewAsset ( String id , { String ? key , AssetMediaSize ? size , String ? slug , } ) async {
final response = await viewAssetWithHttpInfo ( id , key: key , size: size , slug: slug , ) ;
if ( response . statusCode > = HttpStatus . badRequest ) {
throw ApiException ( response . statusCode , await _decodeBodyBytes ( response ) ) ;
}
// When a remote server returns no body with a status of 204, we shall not decode it.
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string.
if ( response . body . isNotEmpty & & response . statusCode ! = HttpStatus . noContent ) {
return await apiClient . deserializeAsync ( await _decodeBodyBytes ( response ) , ' MultipartFile ' , ) as MultipartFile ;
}
return null ;
}
}