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