"""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
|