"""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,
|
ImportStorageValidateAPI,
|
)
|
from io_storages.redis.models import RedisExportStorage, RedisImportStorage
|
from io_storages.redis.serializers import RedisExportStorageSerializer, RedisImportStorageSerializer
|
|
from .openapi_schema import (
|
_redis_export_storage_schema,
|
_redis_export_storage_schema_with_id,
|
_redis_import_storage_schema,
|
_redis_import_storage_schema_with_id,
|
)
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Get all import storage',
|
description='Get a list of all Redis 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', 'redis'],
|
'x-fern-sdk-method-name': 'list',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Create import storage',
|
description='Create a new Redis import storage connection.',
|
request={
|
'application/json': _redis_import_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'redis'],
|
'x-fern-sdk-method-name': 'create',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisImportStorageListAPI(ImportStorageListAPI):
|
queryset = RedisImportStorage.objects.all()
|
serializer_class = RedisImportStorageSerializer
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Get import storage',
|
description='Get a specific Redis import storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'redis'],
|
'x-fern-sdk-method-name': 'get',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='patch',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Update import storage',
|
description='Update a specific Redis import storage connection.',
|
request={
|
'application/json': _redis_import_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'redis'],
|
'x-fern-sdk-method-name': 'update',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='delete',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Delete import storage',
|
description='Delete a specific Redis import storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'redis'],
|
'x-fern-sdk-method-name': 'delete',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisImportStorageDetailAPI(ImportStorageDetailAPI):
|
queryset = RedisImportStorage.objects.all()
|
serializer_class = RedisImportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Sync import storage',
|
description='Sync tasks from a Redis 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', 'redis'],
|
'x-fern-sdk-method-name': 'sync',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisImportStorageSyncAPI(ExportStorageSyncAPI):
|
serializer_class = RedisImportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Sync export storage',
|
description='Sync tasks from a Redis export storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'redis'],
|
'x-fern-sdk-method-name': 'sync',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisExportStorageSyncAPI(ExportStorageSyncAPI):
|
serializer_class = RedisExportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Validate import storage',
|
description='Validate a specific Redis import storage connection.',
|
request={
|
'application/json': _redis_import_storage_schema_with_id,
|
},
|
responses={200: OpenApiResponse(description='Validation successful')},
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'redis'],
|
'x-fern-sdk-method-name': 'validate',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisImportStorageValidateAPI(ImportStorageValidateAPI):
|
serializer_class = RedisImportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Validate export storage',
|
description='Validate a specific Redis export storage connection.',
|
request={
|
'application/json': _redis_export_storage_schema_with_id,
|
},
|
responses={200: OpenApiResponse(description='Validation successful')},
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'redis'],
|
'x-fern-sdk-method-name': 'validate',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisExportStorageValidateAPI(ExportStorageValidateAPI):
|
serializer_class = RedisExportStorageSerializer
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Get all export storage',
|
description='Get a list of all Redis 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', 'redis'],
|
'x-fern-sdk-method-name': 'list',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Create export storage',
|
description='Create a new Redis export storage connection to store annotations.',
|
request={
|
'application/json': _redis_export_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'redis'],
|
'x-fern-sdk-method-name': 'create',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisExportStorageListAPI(ExportStorageListAPI):
|
queryset = RedisExportStorage.objects.all()
|
serializer_class = RedisExportStorageSerializer
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Get export storage',
|
description='Get a specific Redis export storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'redis'],
|
'x-fern-sdk-method-name': 'get',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='patch',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Update export storage',
|
description='Update a specific Redis export storage connection.',
|
request={
|
'application/json': _redis_export_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'redis'],
|
'x-fern-sdk-method-name': 'update',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='delete',
|
decorator=extend_schema(
|
tags=['Storage: Redis'],
|
summary='Delete export storage',
|
description='Delete a specific Redis export storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'redis'],
|
'x-fern-sdk-method-name': 'delete',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class RedisExportStorageDetailAPI(ExportStorageDetailAPI):
|
queryset = RedisExportStorage.objects.all()
|
serializer_class = RedisExportStorageSerializer
|
|
|
class RedisImportStorageFormLayoutAPI(ImportStorageFormLayoutAPI):
|
pass
|
|
|
class RedisExportStorageFormLayoutAPI(ExportStorageFormLayoutAPI):
|
pass
|