forked from huaweicloud/huaweicloud-sdk-go-v3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
model_source.go
151 lines (126 loc) · 3.28 KB
/
model_source.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package model
import (
"github.com/dysodeng/huaweicloud-sdk-go-v3/core/utils"
"errors"
"github.com/dysodeng/huaweicloud-sdk-go-v3/core/converter"
"strings"
)
// Source 源信息。
type Source struct {
Code *Repo `json:"code,omitempty"`
// 源类型。
Type SourceType `json:"type"`
// 源子类型。 - 源类型为code时,子类型表示不同的代码仓库,如DevCloud(CodeArts)、GitLab、GitHub、Gitee、Bitbucket。 - 源类型为softwarePackage时,子类型表示不同的软件包仓库,如BinObs、BinDevCloud(CodeArts软件发布库)。
SubType *SourceSubType `json:"sub_type,omitempty"`
// url地址。 - 源类型为image时,url地址为镜像地址。 - 源类型为code时,url地址为git地址。 - 源类型为softwarePackage时,url地址为软件包地址。
Url string `json:"url"`
}
func (o Source) String() string {
data, err := utils.Marshal(o)
if err != nil {
return "Source struct{}"
}
return strings.Join([]string{"Source", string(data)}, " ")
}
type SourceType struct {
value string
}
type SourceTypeEnum struct {
IMAGE SourceType
CODE SourceType
SOFTWARE_PACKAGE SourceType
}
func GetSourceTypeEnum() SourceTypeEnum {
return SourceTypeEnum{
IMAGE: SourceType{
value: "image",
},
CODE: SourceType{
value: "code",
},
SOFTWARE_PACKAGE: SourceType{
value: "softwarePackage",
},
}
}
func (c SourceType) Value() string {
return c.value
}
func (c SourceType) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *SourceType) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}
type SourceSubType struct {
value string
}
type SourceSubTypeEnum struct {
BIN_OBS SourceSubType
BIN_DEV_CLOUD SourceSubType
GIT_LAB SourceSubType
GIT_HUB SourceSubType
DEV_CLOUD SourceSubType
GITEE SourceSubType
BITBUCKET SourceSubType
}
func GetSourceSubTypeEnum() SourceSubTypeEnum {
return SourceSubTypeEnum{
BIN_OBS: SourceSubType{
value: "BinObs",
},
BIN_DEV_CLOUD: SourceSubType{
value: "BinDevCloud",
},
GIT_LAB: SourceSubType{
value: "GitLab",
},
GIT_HUB: SourceSubType{
value: "GitHub",
},
DEV_CLOUD: SourceSubType{
value: "DevCloud",
},
GITEE: SourceSubType{
value: "Gitee",
},
BITBUCKET: SourceSubType{
value: "Bitbucket",
},
}
}
func (c SourceSubType) Value() string {
return c.value
}
func (c SourceSubType) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *SourceSubType) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}