"""This file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license. """ from django.utils.decorators import method_decorator from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import OpenApiParameter, OpenApiResponse, extend_schema from io_storages.api import ( ExportStorageDetailAPI, ExportStorageFormLayoutAPI, ExportStorageListAPI, ExportStorageSyncAPI, ExportStorageValidateAPI, ImportStorageDetailAPI, ImportStorageFormLayoutAPI, ImportStorageListAPI, ImportStorageSyncAPI, ImportStorageValidateAPI, ) from io_storages.localfiles.models import LocalFilesExportStorage, LocalFilesImportStorage from io_storages.localfiles.serializers import LocalFilesExportStorageSerializer, LocalFilesImportStorageSerializer from .openapi_schema import ( _local_files_export_storage_schema, _local_files_export_storage_schema_with_id, _local_files_import_storage_schema, _local_files_import_storage_schema_with_id, ) @method_decorator( name='get', decorator=extend_schema( tags=['Storage: Local'], summary='Get all import storage', description='Get a list of all local file import storage connections.', parameters=[ OpenApiParameter( name='project', type=OpenApiTypes.INT, location='query', description='Project ID', required=True, ), ], request=None, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'list', 'x-fern-audiences': ['public'], }, ), ) @method_decorator( name='post', decorator=extend_schema( tags=['Storage: Local'], summary='Create import storage', description='Create a new local file import storage connection.', request={ 'application/json': _local_files_import_storage_schema, }, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'create', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesImportStorageListAPI(ImportStorageListAPI): queryset = LocalFilesImportStorage.objects.all() serializer_class = LocalFilesImportStorageSerializer @method_decorator( name='get', decorator=extend_schema( tags=['Storage: Local'], summary='Get import storage', description='Get a specific local file import storage connection.', request=None, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'get', 'x-fern-audiences': ['public'], }, ), ) @method_decorator( name='patch', decorator=extend_schema( tags=['Storage: Local'], summary='Update import storage', description='Update a specific local file import storage connection.', request={ 'application/json': _local_files_import_storage_schema, }, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'update', 'x-fern-audiences': ['public'], }, ), ) @method_decorator( name='delete', decorator=extend_schema( tags=['Storage: Local'], summary='Delete import storage', description='Delete a specific local file import storage connection.', request=None, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'delete', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesImportStorageDetailAPI(ImportStorageDetailAPI): queryset = LocalFilesImportStorage.objects.all() serializer_class = LocalFilesImportStorageSerializer @method_decorator( name='post', decorator=extend_schema( tags=['Storage: Local'], summary='Sync import storage', description='Sync tasks from a local file import storage connection.', parameters=[ OpenApiParameter( name='id', type=OpenApiTypes.INT, location='path', description='Storage ID', ), ], request=None, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'sync', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesImportStorageSyncAPI(ImportStorageSyncAPI): serializer_class = LocalFilesImportStorageSerializer @method_decorator( name='post', decorator=extend_schema( tags=['Storage: Local'], summary='Sync export storage', description='Sync tasks from a local file export storage connection.', request=None, extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'sync', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesExportStorageSyncAPI(ExportStorageSyncAPI): serializer_class = LocalFilesExportStorageSerializer @method_decorator( name='post', decorator=extend_schema( tags=['Storage: Local'], summary='Validate import storage', description='Validate a specific local file import storage connection.', request={ 'application/json': _local_files_import_storage_schema_with_id, }, responses={200: OpenApiResponse(description='Validation successful')}, extensions={ 'x-fern-sdk-group-name': ['import_storage', 'local'], 'x-fern-sdk-method-name': 'validate', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesImportStorageValidateAPI(ImportStorageValidateAPI): serializer_class = LocalFilesImportStorageSerializer @method_decorator( name='post', decorator=extend_schema( tags=['Storage: Local'], summary='Validate export storage', description='Validate a specific local file export storage connection.', request={ 'application/json': _local_files_export_storage_schema_with_id, }, responses={200: OpenApiResponse(description='Validation successful')}, extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'validate', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesExportStorageValidateAPI(ExportStorageValidateAPI): serializer_class = LocalFilesExportStorageSerializer @method_decorator( name='get', decorator=extend_schema( tags=['Storage: Local'], summary='Get all export storage', description='Get a list of all local file export storage connections.', parameters=[ OpenApiParameter( name='project', type=OpenApiTypes.INT, location='query', description='Project ID', required=True, ), ], extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'list', 'x-fern-audiences': ['public'], }, ), ) @method_decorator( name='post', decorator=extend_schema( tags=['Storage: Local'], summary='Create export storage', description='Create a new local file export storage connection to store annotations.', request={ 'application/json': _local_files_export_storage_schema, }, extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'create', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesExportStorageListAPI(ExportStorageListAPI): queryset = LocalFilesExportStorage.objects.all() serializer_class = LocalFilesExportStorageSerializer @method_decorator( name='get', decorator=extend_schema( tags=['Storage: Local'], summary='Get export storage', description='Get a specific local file export storage connection.', request=None, extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'get', 'x-fern-audiences': ['public'], }, ), ) @method_decorator( name='patch', decorator=extend_schema( tags=['Storage: Local'], summary='Update export storage', description='Update a specific local file export storage connection.', request={ 'application/json': _local_files_export_storage_schema, }, extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'update', 'x-fern-audiences': ['public'], }, ), ) @method_decorator( name='delete', decorator=extend_schema( tags=['Storage: Local'], summary='Delete export storage', description='Delete a specific local file export storage connection.', request=None, extensions={ 'x-fern-sdk-group-name': ['export_storage', 'local'], 'x-fern-sdk-method-name': 'delete', 'x-fern-audiences': ['public'], }, ), ) class LocalFilesExportStorageDetailAPI(ExportStorageDetailAPI): queryset = LocalFilesExportStorage.objects.all() serializer_class = LocalFilesExportStorageSerializer class LocalFilesImportStorageFormLayoutAPI(ImportStorageFormLayoutAPI): pass class LocalFilesExportStorageFormLayoutAPI(ExportStorageFormLayoutAPI): pass