package com.bocloud.cmp.model;

import lombok.Data;

import java.util.Date;

@Data
public class NatGatewayDnatRuleModel {
	private String uuid;
	private String remark;
	private String portUuid; // 虚拟机或者裸机的Port ID,对应虚拟私有云场景,与private_ip参数二选一。
	private String privateIp; // 用户私有IP地址,对应专线、云连接场景,与port_id参数二选一。
	private Integer internalServicePort; // 虚拟机或者裸机对外提供服务的协议端口号。取值范围:0~65535
	private String natGatewayId; // 公网NAT网关实例的ID。
	private String floatingIpId; // 弹性公网IP的id。
	private String floatingIpAddress; // 弹性公网IP的IP地址。
	private Integer externalServicePort; // Floatingip对外提供服务的端口号。取值范围:0~65535。
	private String status;
	private Boolean adminStateUp; // 解冻/冻结状态。− “true”: 解冻 − “false”: 冻结
	private String internalServicePortRange; // 虚拟机或者裸机对外提供服务的协议端口号范围。取值范围:1~65535。约束:只能以’-’字符连接端口范围。
	private String externalServicePortRange; // Floatingip对外提供服务的端口号范围。取值范围:1~65535。约束:只能以’-’字符连接端口范围
	private String protocol; // 协议类型,目前支持TCP/tcp、UDP/udp、ANY/any。对应协议号6、17、0。
	private Date gmtCreate;
	private String regionId;
	private String forwardTableId;// DNAT表id，aliyun
	private String name; // DNAT规则名称
	private Boolean portBreak; // 是否开启端口突破,默认未开启，aliyun(当DNAT条目和SNAT条目使用同一个公网IP地址时，如果您想配置大于1024的端口号，您需要指定PortBreak为true。)
	private String clientToken;// 保证请求幂等性。从您的客户端生成一个参数值，确保不同请求间该参数值唯一。ClientToken只支持ASCII字符，且不能超过64个字符。

	public static enum Protocol {
		any, Any, TCP, UDP
	}
}