github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1/audited_resource_descriptor/audited_resource_descriptor.pb.name.go (about) 1 // Code generated by protoc-gen-goten-resource 2 // Resource: AuditedResourceDescriptor 3 // DO NOT EDIT!!! 4 5 package audited_resource_descriptor 6 7 import ( 8 "fmt" 9 "net/url" 10 "reflect" 11 "regexp" 12 "strings" 13 14 "google.golang.org/grpc/codes" 15 "google.golang.org/grpc/status" 16 "google.golang.org/protobuf/proto" 17 18 "github.com/cloudwan/goten-sdk/runtime/goten" 19 gotenresource "github.com/cloudwan/goten-sdk/runtime/resource" 20 ) 21 22 // proto imports 23 import ( 24 common "github.com/cloudwan/edgelq-sdk/audit/resources/v1/common" 25 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service" 26 meta "github.com/cloudwan/goten-sdk/types/meta" 27 ) 28 29 // ensure the imports are used 30 var ( 31 _ = codes.NotFound 32 _ = new(fmt.Stringer) 33 _ = new(proto.Message) 34 _ = status.Status{} 35 _ = url.URL{} 36 _ = strings.Builder{} 37 38 _ = new(goten.GotenMessage) 39 _ = new(gotenresource.ListQuery) 40 ) 41 42 // make sure we're using proto imports 43 var ( 44 _ = &common.Authentication{} 45 _ = &meta_service.Service{} 46 _ = &meta.Meta{} 47 ) 48 49 var auditedResourceDescriptor_RegexpId = regexp.MustCompile("^(?P<audited_resource_descriptor_id>[\\w./-]{1,128})$") 50 var regexPath_Service = regexp.MustCompile("^services/(?P<service_id>-|[a-z][a-z0-9\\-.]{0,28}[a-z0-9])/auditedResourceDescriptors/(?P<audited_resource_descriptor_id>-|[\\w./-]{1,128})$") 51 52 func (r *AuditedResourceDescriptor) MaybePopulateDefaults() error { 53 auditedResourceDescriptorInterface := interface{}(r) 54 if defaulter, ok := auditedResourceDescriptorInterface.(goten.Defaulter); ok { 55 return defaulter.PopulateDefaults() 56 } 57 return nil 58 } 59 60 type Name struct { 61 ParentName 62 AuditedResourceDescriptorId string `firestore:"auditedResourceDescriptorId"` 63 } 64 65 func ParseName(name string) (*Name, error) { 66 var matches []string 67 if matches = regexPath_Service.FindStringSubmatch(name); matches != nil { 68 return NewNameBuilder(). 69 SetServiceId(matches[1]). 70 SetId(matches[2]). 71 Name(), nil 72 } 73 74 return nil, status.Errorf(codes.InvalidArgument, "unable to parse '%s' as AuditedResourceDescriptor name", name) 75 } 76 77 func MustParseName(name string) *Name { 78 result, err := ParseName(name) 79 if err != nil { 80 panic(err) 81 } 82 return result 83 } 84 85 func ParseNameOrId(nameOrId string) (*Name, error) { 86 name, err := ParseName(nameOrId) 87 if err == nil { 88 return name, err 89 } 90 if auditedResourceDescriptor_RegexpId.MatchString(nameOrId) { 91 return &Name{AuditedResourceDescriptorId: nameOrId}, nil 92 } else { 93 return nil, fmt.Errorf("unable to parse '%s' as AuditedResourceDescriptor name or id", nameOrId) 94 } 95 } 96 97 func (name *Name) SetFromSegments(segments gotenresource.NameSegments) error { 98 if len(segments) == 0 { 99 return status.Errorf(codes.InvalidArgument, "No segments given for AuditedResourceDescriptor name") 100 } 101 if err := name.ParentName.SetFromSegments(segments[:len(segments)-1]); err != nil { 102 return err 103 } 104 if segments[len(segments)-1].CollectionLowerJson != "auditedResourceDescriptors" { 105 return status.Errorf(codes.InvalidArgument, "unable to use segments %s to form AuditedResourceDescriptor name", segments) 106 } 107 name.AuditedResourceDescriptorId = segments[len(segments)-1].Id 108 return nil 109 } 110 111 func (name *Name) GetServiceName() *meta_service.Name { 112 if name == nil { 113 return nil 114 } 115 return name.ParentName.GetServiceName() 116 } 117 118 func (name *Name) IsSpecified() bool { 119 if name == nil || name.Pattern == "" || name.AuditedResourceDescriptorId == "" { 120 return false 121 } 122 return name.ParentName.IsSpecified() 123 } 124 125 func (name *Name) IsFullyQualified() bool { 126 if name == nil { 127 return false 128 } 129 if name.ParentName.IsFullyQualified() == false { 130 return false 131 } 132 if name.AuditedResourceDescriptorId == "" || name.AuditedResourceDescriptorId == gotenresource.WildcardId { 133 return false 134 } 135 return true 136 } 137 138 func (name *Name) FullyQualifiedName() (string, error) { 139 if !name.IsFullyQualified() { 140 return "", status.Errorf(codes.InvalidArgument, "Name for AuditedResourceDescriptor is not fully qualified") 141 } 142 return fmt.Sprintf("//audit.edgelq.com/%s", name.String()), nil 143 } 144 145 func (name *Name) String() string { 146 if name == nil { 147 return "<nil>" 148 } 149 if valueStr, err := name.ProtoString(); err != nil { 150 panic(err) 151 } else { 152 return valueStr 153 } 154 } 155 156 func (name *Name) AsReference() *Reference { 157 return &Reference{Name: *name} 158 } 159 160 func (name *Name) AsRawReference() gotenresource.Reference { 161 return name.AsReference() 162 } 163 164 func (name *Name) GetResourceDescriptor() gotenresource.Descriptor { 165 return descriptor 166 } 167 168 func (name *Name) GetPattern() gotenresource.NamePattern { 169 if name == nil { 170 return "" 171 } 172 return name.Pattern 173 } 174 175 func (name *Name) GetIdParts() map[string]string { 176 if name != nil { 177 return map[string]string{ 178 "serviceId": name.ServiceId, 179 "auditedResourceDescriptorId": name.AuditedResourceDescriptorId, 180 } 181 } 182 return map[string]string{ 183 "serviceId": "", 184 "auditedResourceDescriptorId": "", 185 } 186 } 187 188 func (name *Name) GetSegments() gotenresource.NameSegments { 189 if name == nil || name.Pattern == "" { 190 return nil 191 } 192 segments := name.ParentName.GetSegments() 193 return append(segments, gotenresource.NameSegment{ 194 CollectionLowerJson: "auditedResourceDescriptors", 195 Id: name.AuditedResourceDescriptorId, 196 }) 197 } 198 199 func (name *Name) GetIParentName() gotenresource.Name { 200 if name == nil { 201 return (*ParentName)(nil) 202 } 203 return &name.ParentName 204 } 205 206 func (name *Name) GetIUnderlyingParentName() gotenresource.Name { 207 if parentName := name.GetServiceName(); parentName != nil { 208 return parentName 209 } 210 return nil 211 } 212 213 // implement methods required by protobuf-go library for string-struct conversion 214 215 func (name *Name) ProtoString() (string, error) { 216 if name == nil { 217 return "", nil 218 } 219 result := "" 220 parentPrefix, err := name.ParentName.ProtoString() 221 if err != nil { 222 return "", err 223 } 224 if parentPrefix != "" { 225 result += parentPrefix + "/" 226 } 227 result += "auditedResourceDescriptors/" + name.AuditedResourceDescriptorId 228 return result, nil 229 } 230 231 func (name *Name) ParseProtoString(data string) error { 232 parsed, err := ParseName(data) 233 if err != nil { 234 return err 235 } 236 *name = *parsed 237 return nil 238 } 239 240 // GotenEqual returns true if other is of same type and paths are equal (implements goten.Equaler interface) 241 func (name *Name) GotenEqual(other interface{}) bool { 242 if other == nil { 243 return name == nil 244 } 245 other1, ok := other.(*Name) 246 if !ok { 247 other2, ok := other.(Name) 248 if ok { 249 other1 = &other2 250 } else { 251 return false 252 } 253 } 254 if other1 == nil { 255 return name == nil 256 } else if name == nil { 257 return false 258 } 259 if name.ParentName.GotenEqual(other1.ParentName) == false { 260 return false 261 } 262 if name.AuditedResourceDescriptorId != other1.AuditedResourceDescriptorId { 263 return false 264 } 265 266 return true 267 } 268 269 // Matches is same as GotenEqual, but also will accept "other" if name is wildcard. 270 func (name *Name) Matches(other interface{}) bool { 271 if other == nil { 272 return name == nil 273 } 274 other1, ok := other.(*Name) 275 if !ok { 276 other2, ok := other.(Name) 277 if ok { 278 other1 = &other2 279 } else { 280 return false 281 } 282 } 283 if other1 == nil { 284 return name == nil 285 } else if name == nil { 286 return false 287 } 288 if name.ParentName.Matches(other1.ParentName) == false { 289 return false 290 } 291 if name.AuditedResourceDescriptorId != other1.AuditedResourceDescriptorId { 292 return name.AuditedResourceDescriptorId == gotenresource.WildcardId 293 } 294 295 return true 296 } 297 298 // implement CustomTypeCliValue method 299 func (name *Name) SetFromCliFlag(raw string) error { 300 parsedName, err := ParseName(raw) 301 if err != nil { 302 return err 303 } 304 *name = *parsedName 305 return nil 306 } 307 308 type Reference struct { 309 Name 310 auditedResourceDescriptor *AuditedResourceDescriptor 311 } 312 313 func MakeReference(name *Name, auditedResourceDescriptor *AuditedResourceDescriptor) (*Reference, error) { 314 return &Reference{ 315 Name: *name, 316 auditedResourceDescriptor: auditedResourceDescriptor, 317 }, nil 318 } 319 320 func ParseReference(name string) (*Reference, error) { 321 parsedName, err := ParseName(name) 322 if err != nil { 323 return nil, err 324 } 325 return MakeReference(parsedName, nil) 326 } 327 328 func MustParseReference(name string) *Reference { 329 result, err := ParseReference(name) 330 if err != nil { 331 panic(err) 332 } 333 return result 334 } 335 336 func (ref *Reference) Resolve(resolved *AuditedResourceDescriptor) { 337 ref.auditedResourceDescriptor = resolved 338 } 339 340 func (ref *Reference) ResolveRaw(res gotenresource.Resource) error { 341 if res == nil { 342 ref.Resolve(nil) 343 return nil 344 } 345 if typedRes, ok := res.(*AuditedResourceDescriptor); ok { 346 ref.Resolve(typedRes) 347 return nil 348 } 349 return status.Errorf(codes.Internal, "Invalid resource type for AuditedResourceDescriptor: %s", reflect.TypeOf(res).Elem().Name()) 350 } 351 352 func (ref *Reference) Resolved() bool { 353 return ref != nil && ref.auditedResourceDescriptor != nil 354 } 355 356 func (ref *Reference) ClearCached() { 357 ref.auditedResourceDescriptor = nil 358 } 359 360 func (ref *Reference) GetAuditedResourceDescriptor() *AuditedResourceDescriptor { 361 if ref == nil { 362 return nil 363 } 364 return ref.auditedResourceDescriptor 365 } 366 367 func (ref *Reference) GetRawResource() gotenresource.Resource { 368 if ref == nil { 369 return (*AuditedResourceDescriptor)(nil) 370 } 371 return ref.auditedResourceDescriptor 372 } 373 374 func (ref *Reference) IsFullyQualified() bool { 375 if ref == nil { 376 return false 377 } 378 return ref.Name.IsFullyQualified() 379 } 380 381 func (ref *Reference) IsSpecified() bool { 382 if ref == nil { 383 return false 384 } 385 return ref.Name.IsSpecified() 386 } 387 388 func (ref *Reference) FullyQualifiedName() (string, error) { 389 if !ref.IsFullyQualified() { 390 return "", status.Errorf(codes.InvalidArgument, "Name for AuditedResourceDescriptor is not fully qualified") 391 } 392 return fmt.Sprintf("//audit.edgelq.com/%s", ref.String()), nil 393 } 394 395 func (ref *Reference) GetResourceDescriptor() gotenresource.Descriptor { 396 return descriptor 397 } 398 399 func (ref *Reference) GetPattern() gotenresource.NamePattern { 400 if ref == nil { 401 return "" 402 } 403 return ref.Pattern 404 } 405 406 func (ref *Reference) GetIdParts() map[string]string { 407 if ref != nil { 408 return ref.Name.GetIdParts() 409 } 410 return map[string]string{ 411 "serviceId": "", 412 "auditedResourceDescriptorId": "", 413 } 414 } 415 416 func (ref *Reference) GetSegments() gotenresource.NameSegments { 417 if ref != nil { 418 return ref.Name.GetSegments() 419 } 420 return nil 421 } 422 423 func (ref *Reference) GetIParentName() gotenresource.Name { 424 if ref == nil { 425 return (*ParentName)(nil) 426 } 427 return ref.Name.GetIParentName() 428 } 429 430 func (ref *Reference) GetIUnderlyingParentName() gotenresource.Name { 431 if ref != nil { 432 return ref.Name.GetIUnderlyingParentName() 433 } 434 return nil 435 } 436 437 func (ref *Reference) String() string { 438 if ref == nil { 439 return "<nil>" 440 } 441 return ref.Name.String() 442 } 443 444 // implement methods required by protobuf-go library for string-struct conversion 445 446 func (ref *Reference) ProtoString() (string, error) { 447 if ref == nil { 448 return "", nil 449 } 450 return ref.Name.ProtoString() 451 } 452 453 func (ref *Reference) ParseProtoString(data string) error { 454 parsed, err := ParseReference(data) 455 if err != nil { 456 return err 457 } 458 *ref = *parsed 459 return nil 460 } 461 462 // GotenEqual returns true if other is of same type and paths are equal (implements goten.Equaler interface) 463 func (ref *Reference) GotenEqual(other interface{}) bool { 464 if other == nil { 465 return ref == nil 466 } 467 other1, ok := other.(*Reference) 468 if !ok { 469 other2, ok := other.(Reference) 470 if ok { 471 other1 = &other2 472 } else { 473 return false 474 } 475 } 476 if other1 == nil { 477 return ref == nil 478 } else if ref == nil { 479 return false 480 } 481 482 return ref.Name.GotenEqual(other1.Name) 483 } 484 485 // Matches is same as GotenEqual, but also will accept "other" if name is wildcard. 486 func (name *Reference) Matches(other interface{}) bool { 487 if other == nil { 488 return name == nil 489 } 490 other1, ok := other.(*Reference) 491 if !ok { 492 other2, ok := other.(Reference) 493 if ok { 494 other1 = &other2 495 } else { 496 return false 497 } 498 } 499 if other1 == nil { 500 return name == nil 501 } else if name == nil { 502 return false 503 } 504 return name.Name.Matches(&other1.Name) 505 } 506 507 // implement CustomTypeCliValue method 508 func (ref *Reference) SetFromCliFlag(raw string) error { 509 parsedRef, err := ParseReference(raw) 510 if err != nil { 511 return err 512 } 513 *ref = *parsedRef 514 return nil 515 }