"""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.gcs.models import GCSExportStorage, GCSImportStorage
|
from io_storages.gcs.serializers import GCSExportStorageSerializer, GCSImportStorageSerializer
|
|
from .openapi_schema import (
|
_gcs_export_storage_schema,
|
_gcs_export_storage_schema_with_id,
|
_gcs_import_storage_schema,
|
_gcs_import_storage_schema_with_id,
|
)
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Get all import storage',
|
description='Get a list of all GCS 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', 'gcs'],
|
'x-fern-sdk-method-name': 'list',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Create import storage',
|
description='Create a new GCS import storage connection.',
|
request={
|
'application/json': _gcs_import_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'create',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSImportStorageListAPI(ImportStorageListAPI):
|
queryset = GCSImportStorage.objects.all()
|
serializer_class = GCSImportStorageSerializer
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Get import storage',
|
description='Get a specific GCS import storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'get',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='patch',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Update import storage',
|
description='Update a specific GCS import storage connection.',
|
request={
|
'application/json': _gcs_import_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'update',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='delete',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Delete import storage',
|
description='Delete a specific GCS import storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'delete',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSImportStorageDetailAPI(ImportStorageDetailAPI):
|
queryset = GCSImportStorage.objects.all()
|
serializer_class = GCSImportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Sync import storage',
|
description='Sync tasks from a GCS 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', 'gcs'],
|
'x-fern-sdk-method-name': 'sync',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSImportStorageSyncAPI(ImportStorageSyncAPI):
|
serializer_class = GCSImportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Sync export storage',
|
description='Sync tasks from an GCS export storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'sync',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSExportStorageSyncAPI(ExportStorageSyncAPI):
|
serializer_class = GCSExportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Validate import storage',
|
description='Validate a specific GCS import storage connection.',
|
request={
|
'application/json': _gcs_import_storage_schema_with_id,
|
},
|
responses={200: OpenApiResponse(description='Validation successful')},
|
extensions={
|
'x-fern-sdk-group-name': ['import_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'validate',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSImportStorageValidateAPI(ImportStorageValidateAPI):
|
serializer_class = GCSImportStorageSerializer
|
|
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Validate export storage',
|
description='Validate a specific GCS export storage connection.',
|
request={
|
'application/json': _gcs_export_storage_schema_with_id,
|
},
|
responses={200: OpenApiResponse(description='Validation successful')},
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'validate',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSExportStorageValidateAPI(ExportStorageValidateAPI):
|
serializer_class = GCSExportStorageSerializer
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Get all export storage',
|
description='Get a list of all GCS 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', 'gcs'],
|
'x-fern-sdk-method-name': 'list',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='post',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Create export storage',
|
description='Create a new GCS export storage connection to store annotations.',
|
request={
|
'application/json': _gcs_export_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'create',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSExportStorageListAPI(ExportStorageListAPI):
|
queryset = GCSExportStorage.objects.all()
|
serializer_class = GCSExportStorageSerializer
|
|
|
@method_decorator(
|
name='get',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Get export storage',
|
description='Get a specific GCS export storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'get',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='patch',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Update export storage',
|
description='Update a specific GCS export storage connection.',
|
request={
|
'application/json': _gcs_export_storage_schema,
|
},
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'update',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
@method_decorator(
|
name='delete',
|
decorator=extend_schema(
|
tags=['Storage: GCS'],
|
summary='Delete export storage',
|
description='Delete a specific GCS export storage connection.',
|
request=None,
|
extensions={
|
'x-fern-sdk-group-name': ['export_storage', 'gcs'],
|
'x-fern-sdk-method-name': 'delete',
|
'x-fern-audiences': ['public'],
|
},
|
),
|
)
|
class GCSExportStorageDetailAPI(ExportStorageDetailAPI):
|
queryset = GCSExportStorage.objects.all()
|
serializer_class = GCSExportStorageSerializer
|
|
|
class GCSImportStorageFormLayoutAPI(ImportStorageFormLayoutAPI):
|
pass
|
|
|
class GCSExportStorageFormLayoutAPI(ExportStorageFormLayoutAPI):
|
pass
|