Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions core/src/main/java/org/openstack4j/api/Builders.java
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,22 @@ public static FirewallPolicyUpdateBuilder firewallPolicyUpdate() {
return NeutronFirewallPolicyUpdate.builder();
}

/**
* The builder to create a meteringLabel
* @return MeteringLabelBuilder
*/
public static MeteringLabelBuilder meteringLabel(){
return NeutronMeteringLabel.builder();
}

/**
* The builder to create a meteringRule
* @return MeteringRuleBuilder
*/
public static MeteringRuleBuilder meteringRule(){
return NeutronMeteringRule.builder();
}

/**
* The builder to create a lbPool
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ public interface NetworkService extends RestService {
*/
List<? extends Network> list();

/**
* Lists the networks associated by the specified {@code tenantId}
*
* @param networkId the network identifier
* @return List of Network
*/
List<? extends Network> list(String tenantId);

/**
* Gets the network by ID
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.openstack4j.api.networking.ext.FirewallAsService;
import org.openstack4j.api.networking.ext.LoadBalancerService;
import org.openstack4j.api.networking.ext.MeteringService;
import org.openstack4j.api.networking.ext.NetQuotaService;
import org.openstack4j.common.RestService;

Expand Down Expand Up @@ -53,6 +54,11 @@ public interface NetworkingService extends RestService {
* @return the network quota service
*/
NetQuotaService quotas();

/**
* @return the metering service
*/
MeteringService metering();

/**
* @return the LBaaS service
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package org.openstack4j.api.networking.ext;

import java.util.List;

import org.openstack4j.common.RestService;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.network.MeteringLabel;

/**
* Networking (Neutron) Metering Label Extension API
*
* @author Caio Bergamasco
*/
public interface MeteringLabelService extends RestService {

/**
* Lists metering labels
*
* @return the list of metering labels
*/
List<? extends MeteringLabel> get();

/**
* Shows the specified metering label
*
* @param meteringId the metering label identifier
* @return the metering label
*/
MeteringLabel get(String meteringId);

/**
* Creates a new metering label
*
* @param metering the metering label to create
* @return the newly created metering label
*/
MeteringLabel create(MeteringLabel metering);

/**
* Delete a metering label by ID
*
* @param meteringId the metering label identifier to delete
* @return the action response
*/
ActionResponse delete(String meteringId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package org.openstack4j.api.networking.ext;

import java.util.List;

import org.openstack4j.common.RestService;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.network.MeteringRule;

/**
* Networking (Neutron) Metering Rule Extension API
*
* @author Caio Bergamasco
*/
public interface MeteringRuleService extends RestService {

/**
* Lists metering rules
*
* @return the list of metering rules
*/
List<? extends MeteringRule> get();

/**
* Shows the specified metering rule details
*
* @param meteringId the metering rule identifier
* @return the detailed metering rule
*/
MeteringRule get(String meteringId);

/**
* Creates a new metering rule
*
* @param meteringRule the metering rule to create
* @return the newly created metering rule
*/
MeteringRule create(MeteringRule meteringRule);

/**
* Delete a metering rule by ID
*
* @param meteringRuleId the metering rule identifier to delete
* @return the action response
*/
ActionResponse delete(String meteringRuleId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.openstack4j.api.networking.ext;

import org.openstack4j.common.RestService;

/**
* Networking (Neutron) Metering Service
*
* @author Caio Bergamasco
*/
public interface MeteringService extends RestService {

/**
* @return the Metering Label Service API
*/
MeteringLabelService meteringLabel();

/**
* @return the Metering Rule Service API
*/
MeteringRuleService meteringRule();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.openstack4j.model.network;

import com.fasterxml.jackson.annotation.JsonValue;


/**
* Metering trafic direction(INGRESS/EGRESS)
*
* @author Caio Bergamasco
*/
public enum MeteringDirection {
INGRESS("ingress"),
EGRESS("egress")
;
private final String direction;

private MeteringDirection(String direction) {
this.direction = direction;
}

/**
* Gets the direction in String form
*
* @return the direction as String
*/
@JsonValue
public String getDirection() {
return direction;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.openstack4j.model.network;

import org.openstack4j.common.Buildable;
import org.openstack4j.model.common.Resource;
import org.openstack4j.model.network.builder.MeteringLabelBuilder;

/**
* Metering Labels
*
* @author Caio Bergamasco
*/
public interface MeteringLabel extends Resource, Buildable<MeteringLabelBuilder> {

/**
* Description for the metering label
*
* @return description for the metering label
*/
String getDescription();

void setDescription(String description);


}
51 changes: 51 additions & 0 deletions core/src/main/java/org/openstack4j/model/network/MeteringRule.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package org.openstack4j.model.network;

import org.openstack4j.common.Buildable;
import org.openstack4j.model.common.IdEntity;
import org.openstack4j.model.network.builder.MeteringRuleBuilder;

/**
* Metering Rule
*
* @author Caio Bergamasco
*/
public interface MeteringRule extends IdEntity, Buildable<MeteringRuleBuilder> {

/**
* Description for the metering label rule
*
* @return description for the metering label rule
*/
MeteringDirection getDirection();

void setDirection(MeteringDirection direction);

/**
* Identifier for the metering label rule
*
* @return identifier for the metering label rule
*/
String getMeteringLabelId();

void setMeteringLabelId(String meteringLabelId);

/**
* True if the prefix in the rule should be ignored
*
* @return boolean if the prefix in the metering label rule is ignored
*/
Boolean getExcluded();

void setExcluded(Boolean excluded);

/**
* IP Prefix for the metering label rule
*
* @return ip prefix for the metering label rule
*/
String getRemoteIpPrefix();

void setRemoteIpPrefix(String remoteIpPrefix);


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.openstack4j.model.network.builder;

import org.openstack4j.common.Buildable.Builder;
import org.openstack4j.model.network.MeteringLabel;

/**
* A Builder which creates a Metering Label entity
*
* @author Caio Bergamasco
*/
public interface MeteringLabelBuilder extends Builder<MeteringLabelBuilder, MeteringLabel>{

/**
* See {@link MeteringLabel#getName()} for details
*/
MeteringLabelBuilder name(String name);

/**
* See {@link MeteringLabel#getDescription()} for details
*/
MeteringLabelBuilder description(String description);

/**
* See {@link MeteringLabel#getTenantId()} for details
*/
MeteringLabelBuilder tenantId(String tenantId);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.openstack4j.model.network.builder;

import org.openstack4j.common.Buildable.Builder;
import org.openstack4j.model.network.MeteringDirection;
import org.openstack4j.model.network.MeteringRule;

/**
* A Builder which creates a Metering Rule entity
*
* @author Caio Bergamasco
*/
public interface MeteringRuleBuilder extends Builder<MeteringRuleBuilder, MeteringRule>{

/**
* See {@link MeteringRule#getDirection()} for details
*/
MeteringRuleBuilder direction(MeteringDirection direction);

/**
* See {@link MeteringRule#getMeteringLabelId()} for details
*/
MeteringRuleBuilder meteringLabelId(String meteringLabelId);

/**
* See {@link MeteringRule#getRemoteIpPrefix()} for details
*/
MeteringRuleBuilder remoteIpPrefix(String remoteIpPrefix);

/**
* See {@link MeteringRule#getExcluded()} for details
*/
MeteringRuleBuilder excluded(Boolean excluded);

}
Empty file.
Loading