選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

216 行
6.9 KiB

  1. package config
  2. import (
  3. "gitlab.ecloud.com/ecloud/ecloudsdkcore/auth/provider"
  4. "gitlab.ecloud.com/ecloud/ecloudsdkcore/utils"
  5. )
  6. type Config struct {
  7. AccessKey *string `json:"accessKey"`
  8. SecretKey *string `json:"secretKey"`
  9. SecurityToken *string `json:"securityToken"`
  10. PoolId *string `json:"poolId"`
  11. RegionId *string `json:"regionId"`
  12. ReadTimeout *int32 `json:"readTimeout"`
  13. ConnectTimeout *int32 `json:"connectTimeout"`
  14. Protocol *string `json:"protocol"`
  15. AutoRetry *bool `json:"autoRetry"`
  16. IgnoreSSL *bool `json:"ignoreSSL"`
  17. CertFile *string `json:"certFile"`
  18. ClientCertFile *string `json:"clientCertFile"`
  19. ClientKeyFile *string `json:"clientKeyFile"`
  20. MaxRetryTimes *int32 `json:"maxRetryTimes"`
  21. RetryPeriod *int64 `json:"retryPeriod"`
  22. MaxDuringTime *int64 `json:"maxDuringTime"`
  23. HttpProxy *string `json:"httpProxy"`
  24. HttpsProxy *string `json:"httpsProxy"`
  25. ClientProxyUsername *string `json:"clientProxyUsername"`
  26. ClientProxyPassword *string `json:"clientProxyPassword"`
  27. ClientProxyHost *string `json:"clientProxyHost"`
  28. ClientProxyPort *int32 `json:"clientProxyPort"`
  29. ClientProxyProtocol *string `json:"clientProxyProtocol"`
  30. Source *string `json:"source"`
  31. IgnoreGateway *bool `json:"ignoreGateway"`
  32. CentralTransportEnabled *bool `json:"centralTransportEnabled"`
  33. GlobalQueryParams map[string]string `json:"globalQueryParams"`
  34. GlobalHeaderParams map[string]string `json:"globalHeaderParams"`
  35. Provider provider.ICredentialProvider `json:"provider"`
  36. }
  37. func NewConfig() *Config {
  38. return &Config{
  39. Protocol: utils.String("http"),
  40. IgnoreSSL: utils.Bool(true),
  41. IgnoreGateway: utils.Bool(false),
  42. CentralTransportEnabled: utils.Bool(true),
  43. GlobalHeaderParams: map[string]string{},
  44. GlobalQueryParams: map[string]string{},
  45. }
  46. }
  47. func (c *Config) String() string {
  48. return utils.Beautify(c)
  49. }
  50. func (c *Config) GoString() string {
  51. return c.String()
  52. }
  53. func (c *Config) ToJsonString() string {
  54. return utils.ToJsonString(c)
  55. }
  56. type ConfigBuilder struct {
  57. config *Config
  58. }
  59. func NewConfigBuilder() *ConfigBuilder {
  60. config := NewConfig()
  61. b := &ConfigBuilder{config: config}
  62. return b
  63. }
  64. func (c *ConfigBuilder) AccessKey(accessKey string) *ConfigBuilder {
  65. c.config.AccessKey = utils.String(accessKey)
  66. return c
  67. }
  68. func (c *ConfigBuilder) SecretKey(secretKey string) *ConfigBuilder {
  69. c.config.SecretKey = utils.String(secretKey)
  70. return c
  71. }
  72. func (c *ConfigBuilder) SecurityToken(securityToken string) *ConfigBuilder {
  73. c.config.SecurityToken = utils.String(securityToken)
  74. return c
  75. }
  76. func (c *ConfigBuilder) PoolId(poolId string) *ConfigBuilder {
  77. c.config.PoolId = utils.String(poolId)
  78. return c
  79. }
  80. func (c *ConfigBuilder) RegionId(regionId string) *ConfigBuilder {
  81. c.config.RegionId = utils.String(regionId)
  82. return c
  83. }
  84. func (c *ConfigBuilder) ReadTimeOut(readTimeOut int32) *ConfigBuilder {
  85. c.config.ReadTimeout = utils.Int32(readTimeOut)
  86. return c
  87. }
  88. func (c *ConfigBuilder) ConnectTimeout(connectTimeout int32) *ConfigBuilder {
  89. c.config.ConnectTimeout = utils.Int32(connectTimeout)
  90. return c
  91. }
  92. func (c *ConfigBuilder) Protocol(protocol string) *ConfigBuilder {
  93. c.config.Protocol = utils.String(protocol)
  94. return c
  95. }
  96. func (c *ConfigBuilder) AutoRetry(autoRetry bool) *ConfigBuilder {
  97. c.config.AutoRetry = utils.Bool(autoRetry)
  98. return c
  99. }
  100. func (c *ConfigBuilder) IgnoreSSL(ignoreSSL bool) *ConfigBuilder {
  101. c.config.IgnoreSSL = utils.Bool(ignoreSSL)
  102. return c
  103. }
  104. func (c *ConfigBuilder) CertFile(certFile string) *ConfigBuilder {
  105. c.config.CertFile = utils.String(certFile)
  106. return c
  107. }
  108. func (c *ConfigBuilder) ClientCertFile(clientCertFile string) *ConfigBuilder {
  109. c.config.ClientCertFile = utils.String(clientCertFile)
  110. return c
  111. }
  112. func (c *ConfigBuilder) ClientKeyFile(clientKeyFile string) *ConfigBuilder {
  113. c.config.ClientKeyFile = utils.String(clientKeyFile)
  114. return c
  115. }
  116. func (c *ConfigBuilder) MaxRetryTimes(maxRetryTimes int32) *ConfigBuilder {
  117. c.config.MaxRetryTimes = utils.Int32(maxRetryTimes)
  118. return c
  119. }
  120. func (c *ConfigBuilder) RetryPeriod(retryPeriod int64) *ConfigBuilder {
  121. c.config.RetryPeriod = utils.Int64(retryPeriod)
  122. return c
  123. }
  124. func (c *ConfigBuilder) MaxDuringTime(maxDuringTime int64) *ConfigBuilder {
  125. c.config.MaxDuringTime = utils.Int64(maxDuringTime)
  126. return c
  127. }
  128. func (c *ConfigBuilder) HttpProxy(httpProxy string) *ConfigBuilder {
  129. c.config.HttpProxy = utils.String(httpProxy)
  130. return c
  131. }
  132. func (c *ConfigBuilder) HttpsProxy(httpsProxy string) *ConfigBuilder {
  133. c.config.HttpsProxy = utils.String(httpsProxy)
  134. return c
  135. }
  136. func (c *ConfigBuilder) ClientProxyUsername(clientProxyUsername string) *ConfigBuilder {
  137. c.config.ClientProxyUsername = utils.String(clientProxyUsername)
  138. return c
  139. }
  140. func (c *ConfigBuilder) ClientProxyPassword(clientProxyPassword string) *ConfigBuilder {
  141. c.config.ClientProxyPassword = utils.String(clientProxyPassword)
  142. return c
  143. }
  144. func (c *ConfigBuilder) ClientProxyHost(clientProxyHost string) *ConfigBuilder {
  145. c.config.ClientProxyHost = utils.String(clientProxyHost)
  146. return c
  147. }
  148. func (c *ConfigBuilder) ClientProxyPort(clientProxyPort int32) *ConfigBuilder {
  149. c.config.ClientProxyPort = utils.Int32(clientProxyPort)
  150. return c
  151. }
  152. func (c *ConfigBuilder) ClientProxyProtocol(clientProxyProtocol string) *ConfigBuilder {
  153. c.config.ClientProxyProtocol = utils.String(clientProxyProtocol)
  154. return c
  155. }
  156. func (c *ConfigBuilder) IgnoreGateway(ignoreGateway bool) *ConfigBuilder {
  157. c.config.IgnoreGateway = utils.Bool(ignoreGateway)
  158. return c
  159. }
  160. func (c *ConfigBuilder) CentralTransportEnabled(centralTransportEnabled bool) *ConfigBuilder {
  161. c.config.CentralTransportEnabled = utils.Bool(centralTransportEnabled)
  162. return c
  163. }
  164. func (c *ConfigBuilder) GlobalQueryParams(globalQueryParams map[string]string) *ConfigBuilder {
  165. c.config.GlobalQueryParams = globalQueryParams
  166. return c
  167. }
  168. func (c *ConfigBuilder) GlobalHeaderParams(globalHeaderParams map[string]string) *ConfigBuilder {
  169. c.config.GlobalHeaderParams = globalHeaderParams
  170. return c
  171. }
  172. func (c *ConfigBuilder) Provider(provider provider.ICredentialProvider) *ConfigBuilder {
  173. c.config.Provider = provider
  174. return c
  175. }
  176. func (c *ConfigBuilder) Build() *Config {
  177. return c.config
  178. }