import Base from '../client/base';
import { neutronBase } from '../client/constants';
export class NeutronClient extends Base {
get baseUrl() {
return neutronBase();
}
get resources() {
return [
{
key: 'networks',
responseKey: 'network',
subResources: [
{
name: 'dhcpAgents',
key: 'dhcp-agents',
},
],
},
{
key: 'subnets',
responseKey: 'subnet',
},
{
name: 'subnetpools',
key: 'subnetpools',
responseKey: 'subnetpool',
},
{
key: 'ports',
responseKey: 'port',
},
{
key: 'routers',
responseKey: 'router',
extendOperations: [
{
name: 'addRouterInterface',
key: 'add_router_interface',
method: 'put',
},
{
name: 'removeRouterInterface',
key: 'remove_router_interface',
method: 'put',
},
{
name: 'addExtraRoutes',
key: 'add_extraroutes',
method: 'put',
},
{
name: 'removeExtraRoutes',
key: 'remove_extraroutes',
method: 'put',
},
],
subResources: [
{
name: 'l3Agents',
key: 'l3-agents',
},
],
},
{
key: 'floatingips',
responseKey: 'floatingip',
subResources: [
{
name: 'portForwardings',
key: 'port_forwardings',
responseKey: 'port_forwarding',
},
],
},
{
key: 'extensions',
responseKey: 'extensions',
},
{
key: 'agents',
responseKey: 'agent',
subResources: [
{
name: 'dhcpNetworks',
key: 'dhcp-networks',
responseKey: 'network',
},
{
name: 'l3Routers',
key: 'l3-routers',
responseKey: 'router',
},
],
},
{
name: 'rbacPolicies',
key: 'rbac-policies',
responseKey: 'rbac_policy',
},
{
name: 'firewalls',
key: 'fwaas/firewall_groups',
responseKey: 'firewall_group',
},
{
name: 'firewallPolicies',
key: 'fwaas/firewall_policies',
responseKey: 'firewall_policy',
extendOperations: [
{
name: 'insertRule',
key: 'insert_rule',
method: 'put',
},
{
name: 'removeRule',
key: 'remove_rule',
method: 'put',
},
],
},
{
name: 'firewallRules',
key: 'fwaas/firewall_rules',
responseKey: 'firewall_rule',
},
{
name: 'networkIpAvailabilities',
key: 'network-ip-availabilities',
},
{
name: 'azones',
key: 'availability_zones',
},
{
name: 'qosPolicies',
key: 'qos/policies',
responseKey: 'policy',
subResources: [
{
name: 'bandwidthLimitRules',
key: 'bandwidth_limit_rules',
},
{
name: 'dscpMarkingRules',
key: 'dscp_marking_rules',
},
],
},
{
name: 'securityGroups',
key: 'security-groups',
responseKey: 'security_group',
},
{
name: 'securityGroupRules',
key: 'security-group-rules',
responseKey: 'security_group_rule',
},
{
name: 'endpointGroups',
key: 'endpoint-groups',
responseKey: 'endpoint_group',
},
{
name: 'ikePolicies',
key: 'ikepolicies',
responseKey: 'ikepolicy',
},
{
name: 'ipsecPolicies',
key: 'ipsecpolicies',
responseKey: 'ipsecpolicy',
},
{
name: 'ipsecSiteConnections',
key: 'ipsec_site_connections',
responseKey: 'ipsec_site_connection',
},
{
key: 'vpnservices',
responseKey: 'vpnservice',
},
{
key: 'quotas',
responseKey: 'quota',
extendOperations: [
{
key: 'details',
},
],
},
];
}
}
const neutronClient = new NeutronClient();
export default neutronClient;