Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

132 lignes
4.4 KiB

  1. package config
  2. import (
  3. "gitlab.ecloud.com/ecloud/ecloudsdkcore/auth/provider"
  4. "gitlab.ecloud.com/ecloud/ecloudsdkcore/utils"
  5. )
  6. type RuntimeConfig struct {
  7. ReadTimeout *int32 `json:"readTimeout"`
  8. ConnectTimeout *int32 `json:"connectTimeout"`
  9. AutoRetry *bool `json:"autoRetry"`
  10. IgnoreSSL *bool `json:"ignoreSSL"`
  11. CertFile *string `json:"certFile"`
  12. ClientCertFile *string `json:"clientCertFile"`
  13. ClientKeyFile *string `json:"clientKeyFile"`
  14. MaxRetryTimes *int32 `json:"maxRetryTimes"`
  15. RetryPeriod *int64 `json:"retryPeriod"`
  16. MaxDuringTime *int64 `json:"maxDuringTime"`
  17. HttpProxy *string `json:"httpProxy"`
  18. HttpsProxy *string `json:"httpsProxy"`
  19. IgnoreGateway *bool `json:"ignoreGateway"`
  20. CentralTransportEnabled *bool `json:"centralTransportEnabled"`
  21. RuntimeHeaderParams map[string]string `json:"runtimeHeaderParams"`
  22. Provider provider.ICredentialProvider `json:"provider"`
  23. }
  24. func (r *RuntimeConfig) String() string {
  25. return utils.Beautify(r)
  26. }
  27. func (r *RuntimeConfig) GoString() string {
  28. return r.String()
  29. }
  30. func (r *RuntimeConfig) ToJsonString() string {
  31. return utils.ToJsonString(r)
  32. }
  33. type RuntimeConfigBuilder struct {
  34. runtimeConfig *RuntimeConfig
  35. }
  36. func NewRuntimeConfigBuilder() *RuntimeConfigBuilder {
  37. runtimeConfig := &RuntimeConfig{}
  38. r := &RuntimeConfigBuilder{runtimeConfig: runtimeConfig}
  39. return r
  40. }
  41. func (r *RuntimeConfigBuilder) ReadTimeOut(readTimeOut int32) *RuntimeConfigBuilder {
  42. r.runtimeConfig.ReadTimeout = utils.Int32(readTimeOut)
  43. return r
  44. }
  45. func (r *RuntimeConfigBuilder) ConnectTimeout(connectTimeout int32) *RuntimeConfigBuilder {
  46. r.runtimeConfig.ConnectTimeout = utils.Int32(connectTimeout)
  47. return r
  48. }
  49. func (r *RuntimeConfigBuilder) AutoRetry(autoRetry bool) *RuntimeConfigBuilder {
  50. r.runtimeConfig.AutoRetry = utils.Bool(autoRetry)
  51. return r
  52. }
  53. func (r *RuntimeConfigBuilder) IgnoreSSL(ignoreSSL bool) *RuntimeConfigBuilder {
  54. r.runtimeConfig.IgnoreSSL = utils.Bool(ignoreSSL)
  55. return r
  56. }
  57. func (r *RuntimeConfigBuilder) CertFile(certFile string) *RuntimeConfigBuilder {
  58. r.runtimeConfig.CertFile = utils.String(certFile)
  59. return r
  60. }
  61. func (r *RuntimeConfigBuilder) ClientCertFile(clientCertFile string) *RuntimeConfigBuilder {
  62. r.runtimeConfig.ClientCertFile = utils.String(clientCertFile)
  63. return r
  64. }
  65. func (r *RuntimeConfigBuilder) ClientKeyFile(clientKeyFile string) *RuntimeConfigBuilder {
  66. r.runtimeConfig.ClientKeyFile = utils.String(clientKeyFile)
  67. return r
  68. }
  69. func (r *RuntimeConfigBuilder) MaxRetryTimes(maxRetryTimes int32) *RuntimeConfigBuilder {
  70. r.runtimeConfig.MaxRetryTimes = utils.Int32(maxRetryTimes)
  71. return r
  72. }
  73. func (r *RuntimeConfigBuilder) RetryPeriod(retryPeriod int64) *RuntimeConfigBuilder {
  74. r.runtimeConfig.RetryPeriod = utils.Int64(retryPeriod)
  75. return r
  76. }
  77. func (r *RuntimeConfigBuilder) MaxDuringTime(maxDuringTime int64) *RuntimeConfigBuilder {
  78. r.runtimeConfig.MaxDuringTime = utils.Int64(maxDuringTime)
  79. return r
  80. }
  81. func (r *RuntimeConfigBuilder) HttpProxy(httpProxy string) *RuntimeConfigBuilder {
  82. r.runtimeConfig.HttpProxy = utils.String(httpProxy)
  83. return r
  84. }
  85. func (r *RuntimeConfigBuilder) HttpsProxy(httpsProxy string) *RuntimeConfigBuilder {
  86. r.runtimeConfig.HttpsProxy = utils.String(httpsProxy)
  87. return r
  88. }
  89. func (r *RuntimeConfigBuilder) IgnoreGateway(ignoreGateway bool) *RuntimeConfigBuilder {
  90. r.runtimeConfig.IgnoreGateway = utils.Bool(ignoreGateway)
  91. return r
  92. }
  93. func (r *RuntimeConfigBuilder) CentralTransportEnabled(centralTransportEnabled bool) *RuntimeConfigBuilder {
  94. r.runtimeConfig.CentralTransportEnabled = utils.Bool(centralTransportEnabled)
  95. return r
  96. }
  97. func (r *RuntimeConfigBuilder) RuntimeHeaderParams(runtimeHeaderParams map[string]string) *RuntimeConfigBuilder {
  98. r.runtimeConfig.RuntimeHeaderParams = runtimeHeaderParams
  99. return r
  100. }
  101. func (r *RuntimeConfigBuilder) Provider(provider provider.ICredentialProvider) *RuntimeConfigBuilder {
  102. r.runtimeConfig.Provider = provider
  103. return r
  104. }
  105. func (r *RuntimeConfigBuilder) Build() *RuntimeConfig {
  106. return r.runtimeConfig
  107. }