text: /*
   * Copyright (c) 2017-2019 THL A29 Limited, a Tencent company. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *    http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  #ifndef TENCENTCLOUD_CKAFKA_V20190819_MODEL_ROUTE_H_
  #define TENCENTCLOUD_CKAFKA_V20190819_MODEL_ROUTE_H_
  
  #include <string>
  #include <vector>
  #include <map>
  #include <tencentcloud/core/utils/rapidjson/document.h>
  #include <tencentcloud/core/utils/rapidjson/writer.h>
  #include <tencentcloud/core/utils/rapidjson/stringbuffer.h>
  #include <tencentcloud/core/AbstractModel.h>
  #include <tencentcloud/ckafka/v20190819/model/VipEntity.h>
  
  
  namespace TencentCloud
  {
      namespace Ckafka
      {
          namespace V20190819
          {
              namespace Model
              {
                  /**
                  * 路由实体对象
                  */
                  class Route : public AbstractModel
                  {
                  public:
                      Route();
                      ~Route() = default;
                      void ToJsonObject(rapidjson::Value &value, rapidjson::Document::AllocatorType& allocator) const;
                      CoreInternalOutcome Deserialize(const rapidjson::Value &value);
  
  
                      /**
                       * 获取实例接入方式
  0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
  1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
  2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
  3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
                       * @return AccessType 实例接入方式
  0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
  1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
  2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
  3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
                       */
                      int64_t GetAccessType() const;
  
                      /**
                       * 设置实例接入方式
  0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
  1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
  2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
  3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
                       * @param AccessType 实例接入方式
  0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
  1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
  2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
  3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
                       */
                      void SetAccessType(const int64_t& _accessType);
  
                      /**
                       * 判断参数 AccessType 是否已赋值
                       * @return AccessType 是否已赋值
                       */
                      bool AccessTypeHasBeenSet() const;
  
                      /**
                       * 获取路由ID
                       * @return RouteId 路由ID
                       */
                      int64_t GetRouteId() const;
  
                      /**
                       * 设置路由ID
                       * @param RouteId 路由ID
                       */
                      void SetRouteId(const int64_t& _routeId);
  
                      /**
                       * 判断参数 RouteId 是否已赋值
                       * @return RouteId 是否已赋值
                       */
                      bool RouteIdHasBeenSet() const;
  
                      /**
                       * 获取vip网络类型（1:外网TGW  2:基础网络 3:VPC网络 4:腾讯云支持环境(一般用于内部实例) 5:SSL外网访问方式访问 6:黑石环境vpc）
                       * @return VipType vip网络类型（1:外网TGW  2:基础网络 3:VPC网络 4:腾讯云支持环境(一般用于内部实例) 5:SSL外网访问方式访问 6:黑石环境vpc）
                       */
                      int64_t GetVipType() const;
  
                      /**
                       * 设置vip网络类型（1:外网TGW  2:基础网络 3:VPC网络 4:腾讯云支持环境(一般用于内部实例) 5:SSL外网访问方式访问 6:黑石环境vpc）
                       * @param VipType vip网络类型（1:外网TGW  2:基础网络 3:VPC网络 4:腾讯云支持环境(一般用于内部实例) 5:SSL外网访问方式访问 6:黑石环境vpc）
                       */
                      void SetVipType(const int64_t& _vipType);
  
                      /**
                       * 判断参数 VipType 是否已赋值
                       * @return VipType 是否已赋值
                       */
                      bool VipTypeHasBeenSet() const;
  
                      /**
                       * 获取虚拟IP列表
                       * @return VipList 虚拟IP列表
                       */
                      std::vector<VipEntity> GetVipList() const;
  
                      /**
                       * 设置虚拟IP列表
                       * @param VipList 虚拟IP列表
                       */
                      void SetVipList(const std::vector<VipEntity>& _vipList);
  
                      /**
                       * 判断参数 VipList 是否已赋值
                       * @return VipList 是否已赋值
                       */
                      bool VipListHasBeenSet() const;
  
                      /**
                       * 获取域名
  注意：此字段可能返回 null，表示取不到有效值。
                       * @return Domain 域名
  注意：此字段可能返回 null，表示取不到有效值。
                       */
                      std::string GetDomain() const;
  
                      /**
                       * 设置域名
  注意：此字段可能返回 null，表示取不到有效值。
                       * @param Domain 域名
  注意：此字段可能返回 null，表示取不到有效值。
                       */
                      void SetDomain(const std::string& _domain);
  
                      /**
                       * 判断参数 Domain 是否已赋值
                       * @return Domain 是否已赋值
                       */
                      bool DomainHasBeenSet() const;
  
                      /**
                       * 获取域名port
  注意：此字段可能返回 null，表示取不到有效值。
                       * @return DomainPort 域名port
  注意：此字段可能返回 null，表示取不到有效值。
                       */
                      int64_t GetDomainPort() const;
  
                      /**
                       * 设置域名port
  注意：此字段可能返回 null，表示取不到有效值。
                       * @param DomainPort 域名port
  注意：此字段可能返回 null，表示取不到有效值。
                       */
                      void SetDomainPort(const int64_t& _domainPort);
  
                      /**
                       * 判断参数 DomainPort 是否已赋值
                       * @return DomainPort 是否已赋值
                       */
                      bool DomainPortHasBeenSet() const;
  
                  private:
  
                      /**
                       * 实例接入方式
  0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
  1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
  2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
  3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
                       */
                      int64_t m_accessType;
                      bool m_accessTypeHasBeenSet;
  
                      /**
                       * 路由ID
                       */
                      int64_t m_routeId;
                      bool m_routeIdHasBeenSet;
  
                      /**
                       * vip网络类型（1:外网TGW  2:基础网络 3:VPC网络 4:腾讯云支持环境(一般用于内部实例) 5:SSL外网访问方式访问 6:黑石环境vpc）
                       */
                      int64_t m_vipType;
                      bool m_vipTypeHasBeenSet;
  
                      /**
                       * 虚拟IP列表
                       */
                      std::vector<VipEntity> m_vipList;
                      bool m_vipListHasBeenSet;
  
                      /**
                       * 域名
  注意：此字段可能返回 null，表示取不到有效值。
                       */
                      std::string m_domain;
                      bool m_domainHasBeenSet;
  
                      /**
                       * 域名port
  注意：此字段可能返回 null，表示取不到有效值。
                       */
                      int64_t m_domainPort;
                      bool m_domainPortHasBeenSet;
  
                  };
              }
          }
      }
  }
  
  #endif // !TENCENTCLOUD_CKAFKA_V20190819_MODEL_ROUTE_H_
  