All checks were successful
Build And Test / build-and-push (push) Successful in 13s
- ApiVpc에 IGW CRUD 추가 (/v2.0/internetgateways, external_network_id 사용) - IGW/RoutingTable/Subnet-attach View 및 URL 신규 (모두 동기) - API_SPEC.md 3.7.1~3.7.8 네트워크 섹션 추가 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
165 lines
12 KiB
Python
165 lines
12 KiB
Python
"""
|
|
NHN Cloud API URL Configuration
|
|
"""
|
|
|
|
from django.urls import path
|
|
|
|
from . import views
|
|
|
|
urlpatterns = [
|
|
# ==================== Token ====================
|
|
path("token/", views.TokenCreateView.as_view(), name="token-create"),
|
|
|
|
# ==================== Compute ====================
|
|
path("compute/flavors/", views.ComputeFlavorListView.as_view(), name="compute-flavor-list"),
|
|
path("compute/keypairs/", views.ComputeKeypairListView.as_view(), name="compute-keypair-list"),
|
|
path("compute/images/", views.ComputeImageListView.as_view(), name="compute-image-list"),
|
|
path("compute/instances/", views.ComputeInstanceListView.as_view(), name="compute-instance-list"),
|
|
path("compute/instances/create/", views.ComputeInstanceCreateView.as_view(), name="compute-instance-create"),
|
|
path("compute/instances/<str:server_id>/", views.ComputeInstanceDetailView.as_view(), name="compute-instance-detail"),
|
|
path("compute/instances/<str:server_id>/action/", views.ComputeInstanceActionView.as_view(), name="compute-instance-action"),
|
|
|
|
# ==================== VPC ====================
|
|
path("vpc/", views.VpcListView.as_view(), name="vpc-list"),
|
|
path("vpc/create/", views.VpcCreateView.as_view(), name="vpc-create"),
|
|
path("vpc/<str:vpc_id>/", views.VpcDetailView.as_view(), name="vpc-detail"),
|
|
|
|
# ==================== Subnet ====================
|
|
path("subnet/", views.SubnetListView.as_view(), name="subnet-list"),
|
|
path("subnet/create/", views.SubnetCreateView.as_view(), name="subnet-create"),
|
|
path("subnet/<str:subnet_id>/", views.SubnetDetailView.as_view(), name="subnet-detail"),
|
|
path("subnet/<str:subnet_id>/attach-routing-table/", views.SubnetAttachRoutingTableView.as_view(), name="subnet-attach-routing-table"),
|
|
|
|
# ==================== Internet Gateway ====================
|
|
path("internet-gateway/", views.InternetGatewayListView.as_view(), name="internet-gateway-list"),
|
|
path("internet-gateway/create/", views.InternetGatewayCreateView.as_view(), name="internet-gateway-create"),
|
|
path("internet-gateway/<str:internetgateway_id>/", views.InternetGatewayDetailView.as_view(), name="internet-gateway-detail"),
|
|
|
|
# ==================== Routing Table ====================
|
|
path("routing-table/", views.RoutingTableListView.as_view(), name="routing-table-list"),
|
|
path("routing-table/create/", views.RoutingTableCreateView.as_view(), name="routing-table-create"),
|
|
path("routing-table/<str:routingtable_id>/", views.RoutingTableDetailView.as_view(), name="routing-table-detail"),
|
|
path("routing-table/<str:routingtable_id>/set-default/", views.RoutingTableSetDefaultView.as_view(), name="routing-table-set-default"),
|
|
path("routing-table/<str:routingtable_id>/attach-gateway/", views.RoutingTableAttachGatewayView.as_view(), name="routing-table-attach-gateway"),
|
|
path("routing-table/<str:routingtable_id>/detach-gateway/", views.RoutingTableDetachGatewayView.as_view(), name="routing-table-detach-gateway"),
|
|
|
|
# ==================== Floating IP ====================
|
|
path("floatingip/", views.FloatingIpListView.as_view(), name="floatingip-list"),
|
|
path("floatingip/<str:floating_ip_id>/attach/", views.FloatingIpAttachView.as_view(), name="floatingip-attach"),
|
|
path("floatingip/<str:floating_ip_id>/detach/", views.FloatingIpDetachView.as_view(), name="floatingip-detach"),
|
|
|
|
# ==================== Security Group ====================
|
|
path("securitygroup/", views.SecurityGroupListView.as_view(), name="securitygroup-list"),
|
|
path("securitygroup/create/", views.SecurityGroupCreateView.as_view(), name="securitygroup-create"),
|
|
path("securitygroup/<str:security_group_id>/", views.SecurityGroupDetailView.as_view(), name="securitygroup-detail"),
|
|
|
|
# ==================== Security Group Rule ====================
|
|
path("securitygroup-rule/create/", views.SecurityGroupRuleCreateView.as_view(), name="securitygroup-rule-create"),
|
|
path("securitygroup-rule/<str:rule_id>/", views.SecurityGroupRuleDeleteView.as_view(), name="securitygroup-rule-delete"),
|
|
|
|
# ==================== Async Task ====================
|
|
path("tasks/", views.AsyncTaskListView.as_view(), name="task-list"),
|
|
path("tasks/<str:task_id>/", views.AsyncTaskDetailView.as_view(), name="task-detail"),
|
|
|
|
# ==================== NKS Cluster ====================
|
|
path("nks/supports/", views.NksSupportsView.as_view(), name="nks-supports"),
|
|
path("nks/clusters/", views.NksClusterListView.as_view(), name="nks-cluster-list"),
|
|
path("nks/clusters/create/", views.NksClusterCreateView.as_view(), name="nks-cluster-create"),
|
|
path("nks/clusters/<str:cluster_name>/", views.NksClusterDetailView.as_view(), name="nks-cluster-detail"),
|
|
path("nks/clusters/<str:cluster_name>/config/", views.NksClusterConfigView.as_view(), name="nks-cluster-config"),
|
|
path("nks/clusters/<str:cluster_name>/resize/", views.NksClusterResizeView.as_view(), name="nks-cluster-resize"),
|
|
path("nks/clusters/<str:cluster_name>/upgrade/", views.NksClusterUpgradeView.as_view(), name="nks-cluster-upgrade"),
|
|
path("nks/clusters/<str:cluster_name>/certificates/", views.NksClusterCertificatesView.as_view(), name="nks-cluster-certificates"),
|
|
path("nks/clusters/<str:cluster_name>/ipacl/", views.NksClusterIpAclView.as_view(), name="nks-cluster-ipacl"),
|
|
|
|
# NKS Cluster Events
|
|
path("nks/clusters/<str:cluster_uuid>/events/", views.NksClusterEventsView.as_view(), name="nks-cluster-events"),
|
|
path("nks/clusters/<str:cluster_uuid>/events/<str:event_uuid>/", views.NksClusterEventDetailView.as_view(), name="nks-cluster-event-detail"),
|
|
|
|
# ==================== NKS Node Group ====================
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/", views.NksNodeGroupListView.as_view(), name="nks-nodegroup-list"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/create/", views.NksNodeGroupCreateView.as_view(), name="nks-nodegroup-create"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/<str:nodegroup_name>/", views.NksNodeGroupDetailView.as_view(), name="nks-nodegroup-detail"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/<str:nodegroup_name>/upgrade/", views.NksNodeGroupUpgradeView.as_view(), name="nks-nodegroup-upgrade"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/<str:nodegroup_name>/userscript/", views.NksNodeGroupUserScriptView.as_view(), name="nks-nodegroup-userscript"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/<str:nodegroup_name>/autoscale/", views.NksAutoscaleConfigView.as_view(), name="nks-nodegroup-autoscale"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/<str:nodegroup_name>/start_node/", views.NksNodeStartView.as_view(), name="nks-node-start"),
|
|
path("nks/clusters/<str:cluster_name>/nodegroups/<str:nodegroup_name>/stop_node/", views.NksNodeStopView.as_view(), name="nks-node-stop"),
|
|
|
|
# ==================== Storage ====================
|
|
path("storage/containers/", views.StorageContainerListView.as_view(), name="storage-container-list"),
|
|
path("storage/containers/create/", views.StorageContainerCreateView.as_view(), name="storage-container-create"),
|
|
path("storage/containers/<str:container_name>/", views.StorageContainerDetailView.as_view(), name="storage-container-detail"),
|
|
|
|
# ==================== DNS Plus - Zone ====================
|
|
path("dns/zones/", views.DnsZoneListView.as_view(), name="dns-zone-list"),
|
|
path("dns/zones/create/", views.DnsZoneCreateView.as_view(), name="dns-zone-create"),
|
|
path("dns/zones/<str:zone_id>/", views.DnsZoneDetailView.as_view(), name="dns-zone-detail"),
|
|
|
|
# ==================== DNS Plus - RecordSet ====================
|
|
path("dns/zones/<str:zone_id>/recordsets/", views.DnsRecordSetListView.as_view(), name="dns-recordset-list"),
|
|
path("dns/zones/<str:zone_id>/recordsets/create/", views.DnsRecordSetCreateView.as_view(), name="dns-recordset-create"),
|
|
path("dns/zones/<str:zone_id>/recordsets/<str:recordset_id>/", views.DnsRecordSetDetailView.as_view(), name="dns-recordset-detail"),
|
|
|
|
# ==================== DNS Plus - GSLB ====================
|
|
path("dns/gslbs/", views.DnsGslbListView.as_view(), name="dns-gslb-list"),
|
|
path("dns/gslbs/create/", views.DnsGslbCreateView.as_view(), name="dns-gslb-create"),
|
|
path("dns/gslbs/<str:gslb_id>/", views.DnsGslbDetailView.as_view(), name="dns-gslb-detail"),
|
|
path("dns/gslbs/<str:gslb_id>/pools/", views.DnsGslbPoolConnectView.as_view(), name="dns-gslb-pool-connection"),
|
|
|
|
# ==================== DNS Plus - Pool ====================
|
|
path("dns/pools/", views.DnsPoolListView.as_view(), name="dns-pool-list"),
|
|
path("dns/pools/create/", views.DnsPoolCreateView.as_view(), name="dns-pool-create"),
|
|
path("dns/pools/<str:pool_id>/", views.DnsPoolDetailView.as_view(), name="dns-pool-detail"),
|
|
|
|
# ==================== DNS Plus - Health Check ====================
|
|
path("dns/health-checks/", views.DnsHealthCheckListView.as_view(), name="dns-healthcheck-list"),
|
|
path("dns/health-checks/create/", views.DnsHealthCheckCreateView.as_view(), name="dns-healthcheck-create"),
|
|
path("dns/health-checks/<str:health_check_id>/", views.DnsHealthCheckDetailView.as_view(), name="dns-healthcheck-detail"),
|
|
|
|
# ==================== Load Balancer ====================
|
|
path("lb/loadbalancers/", views.LoadBalancerListView.as_view(), name="lb-list"),
|
|
path("lb/loadbalancers/create/", views.LoadBalancerCreateView.as_view(), name="lb-create"),
|
|
path("lb/loadbalancers/<str:loadbalancer_id>/", views.LoadBalancerDetailView.as_view(), name="lb-detail"),
|
|
|
|
# ==================== LB Listener ====================
|
|
path("lb/listeners/", views.LBListenerListView.as_view(), name="lb-listener-list"),
|
|
path("lb/listeners/create/", views.LBListenerCreateView.as_view(), name="lb-listener-create"),
|
|
path("lb/listeners/<str:listener_id>/", views.LBListenerDetailView.as_view(), name="lb-listener-detail"),
|
|
|
|
# ==================== LB Pool ====================
|
|
path("lb/pools/", views.LBPoolListView.as_view(), name="lb-pool-list"),
|
|
path("lb/pools/create/", views.LBPoolCreateView.as_view(), name="lb-pool-create"),
|
|
path("lb/pools/<str:pool_id>/", views.LBPoolDetailView.as_view(), name="lb-pool-detail"),
|
|
|
|
# ==================== LB Member ====================
|
|
path("lb/pools/<str:pool_id>/members/", views.LBMemberListView.as_view(), name="lb-member-list"),
|
|
path("lb/pools/<str:pool_id>/members/create/", views.LBMemberCreateView.as_view(), name="lb-member-create"),
|
|
path("lb/pools/<str:pool_id>/members/<str:member_id>/", views.LBMemberDetailView.as_view(), name="lb-member-detail"),
|
|
|
|
# ==================== LB Health Monitor ====================
|
|
path("lb/healthmonitors/", views.LBHealthMonitorListView.as_view(), name="lb-healthmonitor-list"),
|
|
path("lb/healthmonitors/create/", views.LBHealthMonitorCreateView.as_view(), name="lb-healthmonitor-create"),
|
|
path("lb/healthmonitors/<str:healthmonitor_id>/", views.LBHealthMonitorDetailView.as_view(), name="lb-healthmonitor-detail"),
|
|
|
|
# ==================== LB L7 Policy ====================
|
|
path("lb/l7policies/", views.LBL7PolicyListView.as_view(), name="lb-l7policy-list"),
|
|
path("lb/l7policies/create/", views.LBL7PolicyCreateView.as_view(), name="lb-l7policy-create"),
|
|
path("lb/l7policies/<str:l7policy_id>/", views.LBL7PolicyDetailView.as_view(), name="lb-l7policy-detail"),
|
|
|
|
# ==================== LB L7 Rule ====================
|
|
path("lb/l7policies/<str:l7policy_id>/rules/", views.LBL7RuleListView.as_view(), name="lb-l7rule-list"),
|
|
path("lb/l7policies/<str:l7policy_id>/rules/create/", views.LBL7RuleCreateView.as_view(), name="lb-l7rule-create"),
|
|
path("lb/l7policies/<str:l7policy_id>/rules/<str:l7rule_id>/", views.LBL7RuleDetailView.as_view(), name="lb-l7rule-detail"),
|
|
|
|
# ==================== LB IP ACL ====================
|
|
path("lb/ipacl-groups/", views.LBIpAclGroupListView.as_view(), name="lb-ipacl-group-list"),
|
|
path("lb/ipacl-groups/create/", views.LBIpAclGroupCreateView.as_view(), name="lb-ipacl-group-create"),
|
|
path("lb/ipacl-groups/<str:ipacl_group_id>/", views.LBIpAclGroupDetailView.as_view(), name="lb-ipacl-group-detail"),
|
|
path("lb/ipacl-targets/create/", views.LBIpAclTargetCreateView.as_view(), name="lb-ipacl-target-create"),
|
|
path("lb/ipacl-targets/<str:ipacl_target_id>/", views.LBIpAclTargetDetailView.as_view(), name="lb-ipacl-target-detail"),
|
|
|
|
# ==================== LB Quota ====================
|
|
path("lb/quota/", views.LBQuotaView.as_view(), name="lb-quota"),
|
|
]
|