v0.0.13 | Skip Django JWT auth for NHN API (Kong handles it)
All checks were successful
Build And Test / build-and-push (push) Successful in 1m54s

- Add NHNBaseView with authentication_classes = []
- All NHN View classes now inherit from NHNBaseView
- Kong already validates JWT, no need for Django to re-validate

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-25 17:22:23 +09:00
parent f3b7898989
commit 6207f6b83f
2 changed files with 90 additions and 81 deletions

View File

@ -70,6 +70,18 @@ from .packages.base import NHNCloudAPIError
logger = logging.getLogger(__name__)
# ==================== Base View ====================
class NHNBaseView(APIView):
"""
NHN Cloud API 베이스 뷰
Kong이 이미 JWT 인증을 수행하므로 Django에서는 인증을 건너뜀
"""
authentication_classes = []
permission_classes = [AllowAny]
# ==================== Common Headers ====================
region_header = openapi.Parameter(
@ -114,12 +126,9 @@ def get_nhn_headers(request):
# ==================== Token API ====================
class TokenCreateView(APIView):
class TokenCreateView(NHNBaseView):
"""토큰 생성 API"""
authentication_classes = [] # 인증 완전히 건너뜀
permission_classes = [AllowAny]
@swagger_auto_schema(
operation_summary="NHN Cloud API 토큰 생성",
operation_description="NHN Cloud API 인증 토큰을 생성합니다.",
@ -172,7 +181,7 @@ class TokenCreateView(APIView):
# ==================== Compute API ====================
class ComputeFlavorListView(APIView):
class ComputeFlavorListView(NHNBaseView):
"""Flavor 목록 조회 API"""
@swagger_auto_schema(
@ -189,7 +198,7 @@ class ComputeFlavorListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class ComputeKeypairListView(APIView):
class ComputeKeypairListView(NHNBaseView):
"""Keypair 목록 조회 API"""
@swagger_auto_schema(
@ -206,7 +215,7 @@ class ComputeKeypairListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class ComputeImageListView(APIView):
class ComputeImageListView(NHNBaseView):
"""이미지 목록 조회 API"""
@swagger_auto_schema(
@ -223,7 +232,7 @@ class ComputeImageListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class ComputeInstanceListView(APIView):
class ComputeInstanceListView(NHNBaseView):
"""인스턴스 목록 조회 API"""
@swagger_auto_schema(
@ -243,7 +252,7 @@ class ComputeInstanceListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class ComputeInstanceDetailView(APIView):
class ComputeInstanceDetailView(NHNBaseView):
"""인스턴스 상세/삭제 API"""
@swagger_auto_schema(
@ -285,7 +294,7 @@ class ComputeInstanceDetailView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class ComputeInstanceCreateView(APIView):
class ComputeInstanceCreateView(NHNBaseView):
"""인스턴스 생성 API (비동기)"""
@swagger_auto_schema(
@ -324,7 +333,7 @@ class ComputeInstanceCreateView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class ComputeInstanceActionView(APIView):
class ComputeInstanceActionView(NHNBaseView):
"""인스턴스 액션 API (시작/정지/재부팅) - 비동기"""
@swagger_auto_schema(
@ -377,7 +386,7 @@ class ComputeInstanceActionView(APIView):
# ==================== VPC API ====================
class VpcListView(APIView):
class VpcListView(NHNBaseView):
"""VPC 목록 조회 API"""
@swagger_auto_schema(
@ -399,7 +408,7 @@ class VpcListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class VpcCreateView(APIView):
class VpcCreateView(NHNBaseView):
"""VPC 생성 API (비동기)"""
@swagger_auto_schema(
@ -432,7 +441,7 @@ class VpcCreateView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class VpcDetailView(APIView):
class VpcDetailView(NHNBaseView):
"""VPC 상세/삭제 API"""
@swagger_auto_schema(
@ -480,7 +489,7 @@ class VpcDetailView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class SubnetListView(APIView):
class SubnetListView(NHNBaseView):
"""서브넷 목록 조회 API"""
@swagger_auto_schema(
@ -497,7 +506,7 @@ class SubnetListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class SubnetCreateView(APIView):
class SubnetCreateView(NHNBaseView):
"""서브넷 생성 API (비동기)"""
@swagger_auto_schema(
@ -531,7 +540,7 @@ class SubnetCreateView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class SubnetDetailView(APIView):
class SubnetDetailView(NHNBaseView):
"""서브넷 상세/삭제 API"""
@swagger_auto_schema(
@ -572,7 +581,7 @@ class SubnetDetailView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class FloatingIpListView(APIView):
class FloatingIpListView(NHNBaseView):
"""Floating IP 목록 조회 API"""
@swagger_auto_schema(
@ -592,7 +601,7 @@ class FloatingIpListView(APIView):
# ==================== Security Group API ====================
class SecurityGroupListView(APIView):
class SecurityGroupListView(NHNBaseView):
"""보안 그룹 목록 조회 API"""
@swagger_auto_schema(
@ -612,7 +621,7 @@ class SecurityGroupListView(APIView):
# ==================== Async Task API ====================
class AsyncTaskListView(APIView):
class AsyncTaskListView(NHNBaseView):
"""비동기 작업 목록 조회 API"""
@swagger_auto_schema(
@ -640,7 +649,7 @@ class AsyncTaskListView(APIView):
return Response({"tasks": data})
class AsyncTaskDetailView(APIView):
class AsyncTaskDetailView(NHNBaseView):
"""비동기 작업 상세 조회 API"""
@swagger_auto_schema(
@ -674,7 +683,7 @@ class AsyncTaskDetailView(APIView):
# ==================== NKS API ====================
class NksSupportsView(APIView):
class NksSupportsView(NHNBaseView):
"""NKS 지원 버전 및 작업 종류 조회 API"""
@swagger_auto_schema(
@ -691,7 +700,7 @@ class NksSupportsView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterListView(APIView):
class NksClusterListView(NHNBaseView):
"""NKS 클러스터 목록 조회 API"""
@swagger_auto_schema(
@ -708,7 +717,7 @@ class NksClusterListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterDetailView(APIView):
class NksClusterDetailView(NHNBaseView):
"""NKS 클러스터 상세/삭제 API"""
@swagger_auto_schema(
@ -748,7 +757,7 @@ class NksClusterDetailView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterConfigView(APIView):
class NksClusterConfigView(NHNBaseView):
"""NKS 클러스터 kubeconfig 조회 API"""
@swagger_auto_schema(
@ -766,7 +775,7 @@ class NksClusterConfigView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterCreateView(APIView):
class NksClusterCreateView(NHNBaseView):
"""NKS 클러스터 생성 API (비동기)"""
@swagger_auto_schema(
@ -834,7 +843,7 @@ class NksClusterCreateView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterResizeView(APIView):
class NksClusterResizeView(NHNBaseView):
"""NKS 클러스터 리사이즈 API"""
@swagger_auto_schema(
@ -857,7 +866,7 @@ class NksClusterResizeView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterUpgradeView(APIView):
class NksClusterUpgradeView(NHNBaseView):
"""NKS 클러스터 업그레이드 API"""
@swagger_auto_schema(
@ -880,7 +889,7 @@ class NksClusterUpgradeView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterEventsView(APIView):
class NksClusterEventsView(NHNBaseView):
"""NKS 클러스터 작업 이력 API"""
@swagger_auto_schema(
@ -897,7 +906,7 @@ class NksClusterEventsView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterEventDetailView(APIView):
class NksClusterEventDetailView(NHNBaseView):
"""NKS 클러스터 작업 이력 상세 API"""
@swagger_auto_schema(
@ -914,7 +923,7 @@ class NksClusterEventDetailView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterCertificatesView(APIView):
class NksClusterCertificatesView(NHNBaseView):
"""NKS 클러스터 인증서 갱신 API"""
@swagger_auto_schema(
@ -932,7 +941,7 @@ class NksClusterCertificatesView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksClusterIpAclView(APIView):
class NksClusterIpAclView(NHNBaseView):
"""NKS 클러스터 API 엔드포인트 IP 접근 제어 API"""
@swagger_auto_schema(
@ -975,7 +984,7 @@ class NksClusterIpAclView(APIView):
# ==================== NKS Node Group API ====================
class NksNodeGroupListView(APIView):
class NksNodeGroupListView(NHNBaseView):
"""NKS 노드 그룹 목록 조회 API"""
@swagger_auto_schema(
@ -992,7 +1001,7 @@ class NksNodeGroupListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksNodeGroupCreateView(APIView):
class NksNodeGroupCreateView(NHNBaseView):
"""NKS 노드 그룹 생성 API"""
@swagger_auto_schema(
@ -1023,7 +1032,7 @@ class NksNodeGroupCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksNodeGroupDetailView(APIView):
class NksNodeGroupDetailView(NHNBaseView):
"""NKS 노드 그룹 상세/삭제/수정 API"""
@swagger_auto_schema(
@ -1078,7 +1087,7 @@ class NksNodeGroupDetailView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksNodeGroupUpgradeView(APIView):
class NksNodeGroupUpgradeView(NHNBaseView):
"""NKS 노드 그룹 업그레이드 API"""
@swagger_auto_schema(
@ -1106,7 +1115,7 @@ class NksNodeGroupUpgradeView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksNodeGroupUserScriptView(APIView):
class NksNodeGroupUserScriptView(NHNBaseView):
"""NKS 노드 그룹 사용자 스크립트 API"""
@swagger_auto_schema(
@ -1133,7 +1142,7 @@ class NksNodeGroupUserScriptView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksNodeStartView(APIView):
class NksNodeStartView(NHNBaseView):
"""NKS 워커 노드 시작 API"""
@swagger_auto_schema(
@ -1160,7 +1169,7 @@ class NksNodeStartView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksNodeStopView(APIView):
class NksNodeStopView(NHNBaseView):
"""NKS 워커 노드 중지 API"""
@swagger_auto_schema(
@ -1187,7 +1196,7 @@ class NksNodeStopView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class NksAutoscaleConfigView(APIView):
class NksAutoscaleConfigView(NHNBaseView):
"""NKS 오토스케일러 설정 API"""
@swagger_auto_schema(
@ -1243,7 +1252,7 @@ storage_account_header = openapi.Parameter(
)
class StorageContainerListView(APIView):
class StorageContainerListView(NHNBaseView):
"""스토리지 컨테이너 목록 조회 API"""
@swagger_auto_schema(
@ -1263,7 +1272,7 @@ class StorageContainerListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class StorageContainerCreateView(APIView):
class StorageContainerCreateView(NHNBaseView):
"""스토리지 컨테이너 생성 API (비동기)"""
@swagger_auto_schema(
@ -1296,7 +1305,7 @@ class StorageContainerCreateView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class StorageContainerDetailView(APIView):
class StorageContainerDetailView(NHNBaseView):
"""스토리지 컨테이너 상세/삭제 API"""
@swagger_auto_schema(
@ -1362,7 +1371,7 @@ def get_appkey(request):
# ==================== DNS Zone API ====================
class DnsZoneListView(APIView):
class DnsZoneListView(NHNBaseView):
"""DNS Zone 목록 조회 API"""
@swagger_auto_schema(
@ -1386,7 +1395,7 @@ class DnsZoneListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsZoneCreateView(APIView):
class DnsZoneCreateView(NHNBaseView):
"""DNS Zone 생성 API"""
@swagger_auto_schema(
@ -1412,7 +1421,7 @@ class DnsZoneCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsZoneDetailView(APIView):
class DnsZoneDetailView(NHNBaseView):
"""DNS Zone 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -1465,7 +1474,7 @@ class DnsZoneDetailView(APIView):
# ==================== DNS Record Set API ====================
class DnsRecordSetListView(APIView):
class DnsRecordSetListView(NHNBaseView):
"""DNS 레코드 세트 목록 조회 API"""
@swagger_auto_schema(
@ -1492,7 +1501,7 @@ class DnsRecordSetListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsRecordSetCreateView(APIView):
class DnsRecordSetCreateView(NHNBaseView):
"""DNS 레코드 세트 생성 API"""
@swagger_auto_schema(
@ -1521,7 +1530,7 @@ class DnsRecordSetCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsRecordSetDetailView(APIView):
class DnsRecordSetDetailView(NHNBaseView):
"""DNS 레코드 세트 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -1580,7 +1589,7 @@ class DnsRecordSetDetailView(APIView):
# ==================== DNS Pool API ====================
class DnsPoolListView(APIView):
class DnsPoolListView(NHNBaseView):
"""DNS Pool 목록 조회 API"""
@swagger_auto_schema(
@ -1604,7 +1613,7 @@ class DnsPoolListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsPoolCreateView(APIView):
class DnsPoolCreateView(NHNBaseView):
"""DNS Pool 생성 API"""
@swagger_auto_schema(
@ -1632,7 +1641,7 @@ class DnsPoolCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsPoolDetailView(APIView):
class DnsPoolDetailView(NHNBaseView):
"""DNS Pool 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -1691,7 +1700,7 @@ class DnsPoolDetailView(APIView):
# ==================== DNS GSLB API ====================
class DnsGslbListView(APIView):
class DnsGslbListView(NHNBaseView):
"""DNS GSLB 목록 조회 API"""
@swagger_auto_schema(
@ -1715,7 +1724,7 @@ class DnsGslbListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsGslbCreateView(APIView):
class DnsGslbCreateView(NHNBaseView):
"""DNS GSLB 생성 API"""
@swagger_auto_schema(
@ -1744,7 +1753,7 @@ class DnsGslbCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsGslbDetailView(APIView):
class DnsGslbDetailView(NHNBaseView):
"""DNS GSLB 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -1801,7 +1810,7 @@ class DnsGslbDetailView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsGslbPoolConnectView(APIView):
class DnsGslbPoolConnectView(NHNBaseView):
"""GSLB에 Pool 연결/수정/해제 API"""
@swagger_auto_schema(
@ -1870,7 +1879,7 @@ class DnsGslbPoolConnectView(APIView):
# ==================== DNS Health Check API ====================
class DnsHealthCheckListView(APIView):
class DnsHealthCheckListView(NHNBaseView):
"""DNS Health Check 목록 조회 API"""
@swagger_auto_schema(
@ -1894,7 +1903,7 @@ class DnsHealthCheckListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsHealthCheckCreateView(APIView):
class DnsHealthCheckCreateView(NHNBaseView):
"""DNS Health Check 생성 API"""
@swagger_auto_schema(
@ -1927,7 +1936,7 @@ class DnsHealthCheckCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class DnsHealthCheckDetailView(APIView):
class DnsHealthCheckDetailView(NHNBaseView):
"""DNS Health Check 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -1991,7 +2000,7 @@ class DnsHealthCheckDetailView(APIView):
# ==================== Load Balancer API ====================
class LoadBalancerListView(APIView):
class LoadBalancerListView(NHNBaseView):
"""로드밸런서 목록 조회 API"""
@swagger_auto_schema(
@ -2017,7 +2026,7 @@ class LoadBalancerListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LoadBalancerCreateView(APIView):
class LoadBalancerCreateView(NHNBaseView):
"""로드밸런서 생성 API (비동기)"""
@swagger_auto_schema(
@ -2049,7 +2058,7 @@ class LoadBalancerCreateView(APIView):
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
class LoadBalancerDetailView(APIView):
class LoadBalancerDetailView(NHNBaseView):
"""로드밸런서 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -2123,7 +2132,7 @@ class LoadBalancerDetailView(APIView):
# ==================== LB Listener API ====================
class LBListenerListView(APIView):
class LBListenerListView(NHNBaseView):
"""리스너 목록 조회 API"""
@swagger_auto_schema(
@ -2144,7 +2153,7 @@ class LBListenerListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBListenerCreateView(APIView):
class LBListenerCreateView(NHNBaseView):
"""리스너 생성 API"""
@swagger_auto_schema(
@ -2178,7 +2187,7 @@ class LBListenerCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBListenerDetailView(APIView):
class LBListenerDetailView(NHNBaseView):
"""리스너 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -2239,7 +2248,7 @@ class LBListenerDetailView(APIView):
# ==================== LB Pool API ====================
class LBPoolListView(APIView):
class LBPoolListView(NHNBaseView):
"""풀 목록 조회 API"""
@swagger_auto_schema(
@ -2261,7 +2270,7 @@ class LBPoolListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBPoolCreateView(APIView):
class LBPoolCreateView(NHNBaseView):
"""풀 생성 API"""
@swagger_auto_schema(
@ -2293,7 +2302,7 @@ class LBPoolCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBPoolDetailView(APIView):
class LBPoolDetailView(NHNBaseView):
"""풀 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -2353,7 +2362,7 @@ class LBPoolDetailView(APIView):
# ==================== LB Member API ====================
class LBMemberListView(APIView):
class LBMemberListView(NHNBaseView):
"""멤버 목록 조회 API"""
@swagger_auto_schema(
@ -2370,7 +2379,7 @@ class LBMemberListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBMemberCreateView(APIView):
class LBMemberCreateView(NHNBaseView):
"""멤버 추가 API"""
@swagger_auto_schema(
@ -2400,7 +2409,7 @@ class LBMemberCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBMemberDetailView(APIView):
class LBMemberDetailView(NHNBaseView):
"""멤버 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -2458,7 +2467,7 @@ class LBMemberDetailView(APIView):
# ==================== LB Health Monitor API ====================
class LBHealthMonitorListView(APIView):
class LBHealthMonitorListView(NHNBaseView):
"""헬스 모니터 목록 조회 API"""
@swagger_auto_schema(
@ -2478,7 +2487,7 @@ class LBHealthMonitorListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBHealthMonitorCreateView(APIView):
class LBHealthMonitorCreateView(NHNBaseView):
"""헬스 모니터 생성 API"""
@swagger_auto_schema(
@ -2513,7 +2522,7 @@ class LBHealthMonitorCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBHealthMonitorDetailView(APIView):
class LBHealthMonitorDetailView(NHNBaseView):
"""헬스 모니터 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -2801,7 +2810,7 @@ class LBL7RuleDetailView(APIView):
# ==================== LB IP ACL Group API ====================
class LBIpAclGroupListView(APIView):
class LBIpAclGroupListView(NHNBaseView):
"""IP ACL 그룹 목록 조회 API"""
@swagger_auto_schema(
@ -2818,7 +2827,7 @@ class LBIpAclGroupListView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBIpAclGroupCreateView(APIView):
class LBIpAclGroupCreateView(NHNBaseView):
"""IP ACL 그룹 생성 API"""
@swagger_auto_schema(
@ -2847,7 +2856,7 @@ class LBIpAclGroupCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBIpAclGroupDetailView(APIView):
class LBIpAclGroupDetailView(NHNBaseView):
"""IP ACL 그룹 상세/수정/삭제 API"""
@swagger_auto_schema(
@ -2905,7 +2914,7 @@ class LBIpAclGroupDetailView(APIView):
# ==================== LB IP ACL Target API ====================
class LBIpAclTargetCreateView(APIView):
class LBIpAclTargetCreateView(NHNBaseView):
"""IP ACL 타깃 추가 API"""
@swagger_auto_schema(
@ -2932,7 +2941,7 @@ class LBIpAclTargetCreateView(APIView):
return Response({"error": e.message}, status=status.HTTP_400_BAD_REQUEST)
class LBIpAclTargetDetailView(APIView):
class LBIpAclTargetDetailView(NHNBaseView):
"""IP ACL 타깃 수정/삭제 API"""
@swagger_auto_schema(
@ -2978,7 +2987,7 @@ class LBIpAclTargetDetailView(APIView):
# ==================== LB Quota API ====================
class LBQuotaView(APIView):
class LBQuotaView(NHNBaseView):
"""로드밸런서 쿼타 조회 API"""
@swagger_auto_schema(

View File

@ -1 +1 @@
v0.0.12
v0.0.13