github.com/minio/console@v1.3.0/models/multi_bucket_replication.go (about) 1 // Code generated by go-swagger; DO NOT EDIT. 2 3 // This file is part of MinIO Console Server 4 // Copyright (c) 2023 MinIO, Inc. 5 // 6 // This program is free software: you can redistribute it and/or modify 7 // it under the terms of the GNU Affero General Public License as published by 8 // the Free Software Foundation, either version 3 of the License, or 9 // (at your option) any later version. 10 // 11 // This program is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU Affero General Public License for more details. 15 // 16 // You should have received a copy of the GNU Affero General Public License 17 // along with this program. If not, see <http://www.gnu.org/licenses/>. 18 // 19 20 package models 21 22 // This file was generated by the swagger tool. 23 // Editing this file might prove futile when you re-run the swagger generate command 24 25 import ( 26 "context" 27 "encoding/json" 28 "strconv" 29 30 "github.com/go-openapi/errors" 31 "github.com/go-openapi/strfmt" 32 "github.com/go-openapi/swag" 33 "github.com/go-openapi/validate" 34 ) 35 36 // MultiBucketReplication multi bucket replication 37 // 38 // swagger:model multiBucketReplication 39 type MultiBucketReplication struct { 40 41 // access key 42 // Required: true 43 // Min Length: 3 44 AccessKey *string `json:"accessKey"` 45 46 // bandwidth 47 Bandwidth int64 `json:"bandwidth,omitempty"` 48 49 // buckets relation 50 // Required: true 51 BucketsRelation []*MultiBucketsRelation `json:"bucketsRelation"` 52 53 // health check period 54 HealthCheckPeriod int32 `json:"healthCheckPeriod,omitempty"` 55 56 // prefix 57 Prefix string `json:"prefix,omitempty"` 58 59 // priority 60 Priority int32 `json:"priority,omitempty"` 61 62 // region 63 Region string `json:"region,omitempty"` 64 65 // replicate delete markers 66 ReplicateDeleteMarkers bool `json:"replicateDeleteMarkers,omitempty"` 67 68 // replicate deletes 69 ReplicateDeletes bool `json:"replicateDeletes,omitempty"` 70 71 // replicate metadata 72 ReplicateMetadata bool `json:"replicateMetadata,omitempty"` 73 74 // secret key 75 // Required: true 76 // Min Length: 8 77 SecretKey *string `json:"secretKey"` 78 79 // storage class 80 StorageClass string `json:"storageClass,omitempty"` 81 82 // sync mode 83 // Enum: [async sync] 84 SyncMode *string `json:"syncMode,omitempty"` 85 86 // tags 87 Tags string `json:"tags,omitempty"` 88 89 // target URL 90 // Required: true 91 TargetURL *string `json:"targetURL"` 92 } 93 94 // Validate validates this multi bucket replication 95 func (m *MultiBucketReplication) Validate(formats strfmt.Registry) error { 96 var res []error 97 98 if err := m.validateAccessKey(formats); err != nil { 99 res = append(res, err) 100 } 101 102 if err := m.validateBucketsRelation(formats); err != nil { 103 res = append(res, err) 104 } 105 106 if err := m.validateSecretKey(formats); err != nil { 107 res = append(res, err) 108 } 109 110 if err := m.validateSyncMode(formats); err != nil { 111 res = append(res, err) 112 } 113 114 if err := m.validateTargetURL(formats); err != nil { 115 res = append(res, err) 116 } 117 118 if len(res) > 0 { 119 return errors.CompositeValidationError(res...) 120 } 121 return nil 122 } 123 124 func (m *MultiBucketReplication) validateAccessKey(formats strfmt.Registry) error { 125 126 if err := validate.Required("accessKey", "body", m.AccessKey); err != nil { 127 return err 128 } 129 130 if err := validate.MinLength("accessKey", "body", *m.AccessKey, 3); err != nil { 131 return err 132 } 133 134 return nil 135 } 136 137 func (m *MultiBucketReplication) validateBucketsRelation(formats strfmt.Registry) error { 138 139 if err := validate.Required("bucketsRelation", "body", m.BucketsRelation); err != nil { 140 return err 141 } 142 143 for i := 0; i < len(m.BucketsRelation); i++ { 144 if swag.IsZero(m.BucketsRelation[i]) { // not required 145 continue 146 } 147 148 if m.BucketsRelation[i] != nil { 149 if err := m.BucketsRelation[i].Validate(formats); err != nil { 150 if ve, ok := err.(*errors.Validation); ok { 151 return ve.ValidateName("bucketsRelation" + "." + strconv.Itoa(i)) 152 } else if ce, ok := err.(*errors.CompositeError); ok { 153 return ce.ValidateName("bucketsRelation" + "." + strconv.Itoa(i)) 154 } 155 return err 156 } 157 } 158 159 } 160 161 return nil 162 } 163 164 func (m *MultiBucketReplication) validateSecretKey(formats strfmt.Registry) error { 165 166 if err := validate.Required("secretKey", "body", m.SecretKey); err != nil { 167 return err 168 } 169 170 if err := validate.MinLength("secretKey", "body", *m.SecretKey, 8); err != nil { 171 return err 172 } 173 174 return nil 175 } 176 177 var multiBucketReplicationTypeSyncModePropEnum []interface{} 178 179 func init() { 180 var res []string 181 if err := json.Unmarshal([]byte(`["async","sync"]`), &res); err != nil { 182 panic(err) 183 } 184 for _, v := range res { 185 multiBucketReplicationTypeSyncModePropEnum = append(multiBucketReplicationTypeSyncModePropEnum, v) 186 } 187 } 188 189 const ( 190 191 // MultiBucketReplicationSyncModeAsync captures enum value "async" 192 MultiBucketReplicationSyncModeAsync string = "async" 193 194 // MultiBucketReplicationSyncModeSync captures enum value "sync" 195 MultiBucketReplicationSyncModeSync string = "sync" 196 ) 197 198 // prop value enum 199 func (m *MultiBucketReplication) validateSyncModeEnum(path, location string, value string) error { 200 if err := validate.EnumCase(path, location, value, multiBucketReplicationTypeSyncModePropEnum, true); err != nil { 201 return err 202 } 203 return nil 204 } 205 206 func (m *MultiBucketReplication) validateSyncMode(formats strfmt.Registry) error { 207 if swag.IsZero(m.SyncMode) { // not required 208 return nil 209 } 210 211 // value enum 212 if err := m.validateSyncModeEnum("syncMode", "body", *m.SyncMode); err != nil { 213 return err 214 } 215 216 return nil 217 } 218 219 func (m *MultiBucketReplication) validateTargetURL(formats strfmt.Registry) error { 220 221 if err := validate.Required("targetURL", "body", m.TargetURL); err != nil { 222 return err 223 } 224 225 return nil 226 } 227 228 // ContextValidate validate this multi bucket replication based on the context it is used 229 func (m *MultiBucketReplication) ContextValidate(ctx context.Context, formats strfmt.Registry) error { 230 var res []error 231 232 if err := m.contextValidateBucketsRelation(ctx, formats); err != nil { 233 res = append(res, err) 234 } 235 236 if len(res) > 0 { 237 return errors.CompositeValidationError(res...) 238 } 239 return nil 240 } 241 242 func (m *MultiBucketReplication) contextValidateBucketsRelation(ctx context.Context, formats strfmt.Registry) error { 243 244 for i := 0; i < len(m.BucketsRelation); i++ { 245 246 if m.BucketsRelation[i] != nil { 247 248 if swag.IsZero(m.BucketsRelation[i]) { // not required 249 return nil 250 } 251 252 if err := m.BucketsRelation[i].ContextValidate(ctx, formats); err != nil { 253 if ve, ok := err.(*errors.Validation); ok { 254 return ve.ValidateName("bucketsRelation" + "." + strconv.Itoa(i)) 255 } else if ce, ok := err.(*errors.CompositeError); ok { 256 return ce.ValidateName("bucketsRelation" + "." + strconv.Itoa(i)) 257 } 258 return err 259 } 260 } 261 262 } 263 264 return nil 265 } 266 267 // MarshalBinary interface implementation 268 func (m *MultiBucketReplication) MarshalBinary() ([]byte, error) { 269 if m == nil { 270 return nil, nil 271 } 272 return swag.WriteJSON(m) 273 } 274 275 // UnmarshalBinary interface implementation 276 func (m *MultiBucketReplication) UnmarshalBinary(b []byte) error { 277 var res MultiBucketReplication 278 if err := swag.ReadJSON(b, &res); err != nil { 279 return err 280 } 281 *m = res 282 return nil 283 }