package org.zstack.header.network.l3; import org.springframework.http.HttpMethod; import org.zstack.header.identity.Action; import org.zstack.header.message.APICreateMessage; import org.zstack.header.message.APIEvent; import org.zstack.header.message.APIMessage; import org.zstack.header.message.APIParam; import org.zstack.header.network.l2.L2NetworkVO; import org.zstack.header.notification.ApiNotification; import org.zstack.header.rest.RestRequest; /** * @api create l3Network * @category l3Network * @cli * @httpMsg { * "org.zstack.header.network.l3.APICreateL3NetworkMsg": { * "name": "GuestNetwork", * "description": "Test", * "type": "L3BasicNetwork", * "l2NetworkUuid": "2f5e0755584d41dabb73c7dcbee2fe29", * "session": { * "uuid": "ec153083110d4b508bebb8750b62a393" * } * } * } * @msg { * "org.zstack.header.network.l3.APICreateL3NetworkMsg": { * "name": "GuestNetwork", * "description": "Test", * "type": "L3BasicNetwork", * "l2NetworkUuid": "2f5e0755584d41dabb73c7dcbee2fe29", * "session": { * "uuid": "ec153083110d4b508bebb8750b62a393" * }, * "timeout": 1800000, * "id": "d0248f2636af4d4cb93667f55e67b560", * "serviceId": "api.portal" * } * } * @result see :ref:`APICreateL3NetworkEvent` * @since 0.1.0 */ @Action(category = L3NetworkConstant.ACTION_CATEGORY) @RestRequest( path = "/l3-networks", method = HttpMethod.POST, responseClass = APICreateL3NetworkEvent.class, parameterName = "params" ) public class APICreateL3NetworkMsg extends APICreateMessage { /** * @desc max length of 255 characters */ @APIParam(maxLength = 255) private String name; /** * @desc max length of 2048 characters */ @APIParam(required = false, maxLength = 2048) private String description; /** * @desc l3Network type */ private String type = L3NetworkConstant.L3_BASIC_NETWORK_TYPE; /** * @desc uuid of l2Network the l3Network is being created on */ @APIParam(resourceType = L2NetworkVO.class) private String l2NetworkUuid; private boolean system; private String dnsDomain; public String getDnsDomain() { return dnsDomain; } public void setDnsDomain(String domain) { this.dnsDomain = domain; } public boolean isSystem() { return system; } public void setSystem(boolean system) { this.system = system; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getL2NetworkUuid() { return l2NetworkUuid; } public void setL2NetworkUuid(String l2NetworkUuid) { this.l2NetworkUuid = l2NetworkUuid; } public static APICreateL3NetworkMsg __example__() { APICreateL3NetworkMsg msg = new APICreateL3NetworkMsg(); msg.setName("Test-L3Network"); msg.setL2NetworkUuid(uuid()); return msg; } public ApiNotification __notification__() { APIMessage that = this; return new ApiNotification() { @Override public void after(APIEvent evt) { if (evt.isSuccess()) { ntfy("Created").resource(((APICreateL3NetworkEvent)evt).getInventory().getUuid(), L3NetworkVO.class.getSimpleName()) .messageAndEvent(that, evt).done(); } } }; } }