google-apis-dataplex_v1 0.50.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -333,6 +333,390 @@ module Google
333
333
  end
334
334
  end
335
335
 
336
+ # An aspect is a single piece of metadata describing an entry.
337
+ class GoogleCloudDataplexV1Aspect
338
+ include Google::Apis::Core::Hashable
339
+
340
+ # AspectSource contains source system related information for the aspect.
341
+ # Corresponds to the JSON property `aspectSource`
342
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectSource]
343
+ attr_accessor :aspect_source
344
+
345
+ # Output only. The resource name of the type used to create this Aspect.
346
+ # Corresponds to the JSON property `aspectType`
347
+ # @return [String]
348
+ attr_accessor :aspect_type
349
+
350
+ # Output only. The time when the Aspect was created.
351
+ # Corresponds to the JSON property `createTime`
352
+ # @return [String]
353
+ attr_accessor :create_time
354
+
355
+ # Required. The content of the aspect, according to its aspect type schema. This
356
+ # will replace content. The maximum size of the field is 120KB (encoded as UTF-8)
357
+ # .
358
+ # Corresponds to the JSON property `data`
359
+ # @return [Hash<String,Object>]
360
+ attr_accessor :data
361
+
362
+ # Output only. The path in the entry under which the aspect is attached.
363
+ # Corresponds to the JSON property `path`
364
+ # @return [String]
365
+ attr_accessor :path
366
+
367
+ # Output only. The time when the Aspect was last updated.
368
+ # Corresponds to the JSON property `updateTime`
369
+ # @return [String]
370
+ attr_accessor :update_time
371
+
372
+ def initialize(**args)
373
+ update!(**args)
374
+ end
375
+
376
+ # Update properties of this object
377
+ def update!(**args)
378
+ @aspect_source = args[:aspect_source] if args.key?(:aspect_source)
379
+ @aspect_type = args[:aspect_type] if args.key?(:aspect_type)
380
+ @create_time = args[:create_time] if args.key?(:create_time)
381
+ @data = args[:data] if args.key?(:data)
382
+ @path = args[:path] if args.key?(:path)
383
+ @update_time = args[:update_time] if args.key?(:update_time)
384
+ end
385
+ end
386
+
387
+ # AspectSource contains source system related information for the aspect.
388
+ class GoogleCloudDataplexV1AspectSource
389
+ include Google::Apis::Core::Hashable
390
+
391
+ # The create time of the aspect in the source system.
392
+ # Corresponds to the JSON property `createTime`
393
+ # @return [String]
394
+ attr_accessor :create_time
395
+
396
+ # The update time of the aspect in the source system.
397
+ # Corresponds to the JSON property `updateTime`
398
+ # @return [String]
399
+ attr_accessor :update_time
400
+
401
+ def initialize(**args)
402
+ update!(**args)
403
+ end
404
+
405
+ # Update properties of this object
406
+ def update!(**args)
407
+ @create_time = args[:create_time] if args.key?(:create_time)
408
+ @update_time = args[:update_time] if args.key?(:update_time)
409
+ end
410
+ end
411
+
412
+ # Aspect Type is a template for creating Aspects, and represents the JSON-schema
413
+ # for a given Entry, e.g., BigQuery Table Schema.
414
+ class GoogleCloudDataplexV1AspectType
415
+ include Google::Apis::Core::Hashable
416
+
417
+ # Autorization for an Aspect Type.
418
+ # Corresponds to the JSON property `authorization`
419
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeAuthorization]
420
+ attr_accessor :authorization
421
+
422
+ # Output only. The time when the AspectType was created.
423
+ # Corresponds to the JSON property `createTime`
424
+ # @return [String]
425
+ attr_accessor :create_time
426
+
427
+ # Optional. Description of the AspectType.
428
+ # Corresponds to the JSON property `description`
429
+ # @return [String]
430
+ attr_accessor :description
431
+
432
+ # Optional. User friendly display name.
433
+ # Corresponds to the JSON property `displayName`
434
+ # @return [String]
435
+ attr_accessor :display_name
436
+
437
+ # This checksum is computed by the server based on the value of other fields,
438
+ # and may be sent on update and delete requests to ensure the client has an up-
439
+ # to-date value before proceeding.
440
+ # Corresponds to the JSON property `etag`
441
+ # @return [String]
442
+ attr_accessor :etag
443
+
444
+ # Optional. User-defined labels for the AspectType.
445
+ # Corresponds to the JSON property `labels`
446
+ # @return [Hash<String,String>]
447
+ attr_accessor :labels
448
+
449
+ # MetadataTemplate definition for AspectType
450
+ # Corresponds to the JSON property `metadataTemplate`
451
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplate]
452
+ attr_accessor :metadata_template
453
+
454
+ # Output only. The relative resource name of the AspectType, of the form:
455
+ # projects/`project_number`/locations/`location_id`/aspectTypes/`aspect_type_id`.
456
+ # Corresponds to the JSON property `name`
457
+ # @return [String]
458
+ attr_accessor :name
459
+
460
+ # Output only. Denotes the transfer status of the Aspect Type. It is unspecified
461
+ # for Aspect Types created from Dataplex API.
462
+ # Corresponds to the JSON property `transferStatus`
463
+ # @return [String]
464
+ attr_accessor :transfer_status
465
+
466
+ # Output only. System generated globally unique ID for the AspectType. This ID
467
+ # will be different if the AspectType is deleted and re-created with the same
468
+ # name.
469
+ # Corresponds to the JSON property `uid`
470
+ # @return [String]
471
+ attr_accessor :uid
472
+
473
+ # Output only. The time when the AspectType was last updated.
474
+ # Corresponds to the JSON property `updateTime`
475
+ # @return [String]
476
+ attr_accessor :update_time
477
+
478
+ def initialize(**args)
479
+ update!(**args)
480
+ end
481
+
482
+ # Update properties of this object
483
+ def update!(**args)
484
+ @authorization = args[:authorization] if args.key?(:authorization)
485
+ @create_time = args[:create_time] if args.key?(:create_time)
486
+ @description = args[:description] if args.key?(:description)
487
+ @display_name = args[:display_name] if args.key?(:display_name)
488
+ @etag = args[:etag] if args.key?(:etag)
489
+ @labels = args[:labels] if args.key?(:labels)
490
+ @metadata_template = args[:metadata_template] if args.key?(:metadata_template)
491
+ @name = args[:name] if args.key?(:name)
492
+ @transfer_status = args[:transfer_status] if args.key?(:transfer_status)
493
+ @uid = args[:uid] if args.key?(:uid)
494
+ @update_time = args[:update_time] if args.key?(:update_time)
495
+ end
496
+ end
497
+
498
+ # Autorization for an Aspect Type.
499
+ class GoogleCloudDataplexV1AspectTypeAuthorization
500
+ include Google::Apis::Core::Hashable
501
+
502
+ # Immutable. The IAM permission grantable on the Entry Group to allow access to
503
+ # instantiate Aspects of Dataplex owned Aspect Types, only settable for Dataplex
504
+ # owned Types.
505
+ # Corresponds to the JSON property `alternateUsePermission`
506
+ # @return [String]
507
+ attr_accessor :alternate_use_permission
508
+
509
+ def initialize(**args)
510
+ update!(**args)
511
+ end
512
+
513
+ # Update properties of this object
514
+ def update!(**args)
515
+ @alternate_use_permission = args[:alternate_use_permission] if args.key?(:alternate_use_permission)
516
+ end
517
+ end
518
+
519
+ # MetadataTemplate definition for AspectType
520
+ class GoogleCloudDataplexV1AspectTypeMetadataTemplate
521
+ include Google::Apis::Core::Hashable
522
+
523
+ # Definition of the annotations of a field
524
+ # Corresponds to the JSON property `annotations`
525
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations]
526
+ attr_accessor :annotations
527
+
528
+ # MetadataTemplate definition for AspectType
529
+ # Corresponds to the JSON property `arrayItems`
530
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplate]
531
+ attr_accessor :array_items
532
+
533
+ # Definition of the constraints of a field
534
+ # Corresponds to the JSON property `constraints`
535
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints]
536
+ attr_accessor :constraints
537
+
538
+ # Optional. The list of values for an enum type. Needs to be defined if the type
539
+ # is enum.
540
+ # Corresponds to the JSON property `enumValues`
541
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue>]
542
+ attr_accessor :enum_values
543
+
544
+ # Optional. Index is used to encode Template messages. The value of index can
545
+ # range between 1 and 2,147,483,647. Index must be unique within all fields in a
546
+ # Template. (Nested Templates can reuse indexes). Once a Template is defined,
547
+ # the index cannot be changed, because it identifies the field in the actual
548
+ # storage format. Index is a mandatory field, but it is optional for top level
549
+ # fields, and map/array "values" definitions.
550
+ # Corresponds to the JSON property `index`
551
+ # @return [Fixnum]
552
+ attr_accessor :index
553
+
554
+ # MetadataTemplate definition for AspectType
555
+ # Corresponds to the JSON property `mapItems`
556
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplate]
557
+ attr_accessor :map_items
558
+
559
+ # Required. The name of the field.
560
+ # Corresponds to the JSON property `name`
561
+ # @return [String]
562
+ attr_accessor :name
563
+
564
+ # Optional. Field definition, needs to be specified if the type is record.
565
+ # Defines the nested fields.
566
+ # Corresponds to the JSON property `recordFields`
567
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectTypeMetadataTemplate>]
568
+ attr_accessor :record_fields
569
+
570
+ # Required. The datatype of this field. The following values are supported:
571
+ # Primitive types (string, integer, boolean, double, datetime); datetime must be
572
+ # of the format RFC3339 UTC "Zulu" (Examples: "2014-10-02T15:01:23Z" and "2014-
573
+ # 10-02T15:01:23.045123456Z"). Complex types (enum, array, map, record).
574
+ # Corresponds to the JSON property `type`
575
+ # @return [String]
576
+ attr_accessor :type
577
+
578
+ # Optional. Id can be used if this definition of the field needs to be reused
579
+ # later. Id needs to be unique across the entire template. Id can only be
580
+ # specified if the field type is record.
581
+ # Corresponds to the JSON property `typeId`
582
+ # @return [String]
583
+ attr_accessor :type_id
584
+
585
+ # Optional. A reference to another field definition (instead of an inline
586
+ # definition). The value must be equal to the value of an id field defined
587
+ # elsewhere in the MetadataTemplate. Only fields with type as record can refer
588
+ # to other fields.
589
+ # Corresponds to the JSON property `typeRef`
590
+ # @return [String]
591
+ attr_accessor :type_ref
592
+
593
+ def initialize(**args)
594
+ update!(**args)
595
+ end
596
+
597
+ # Update properties of this object
598
+ def update!(**args)
599
+ @annotations = args[:annotations] if args.key?(:annotations)
600
+ @array_items = args[:array_items] if args.key?(:array_items)
601
+ @constraints = args[:constraints] if args.key?(:constraints)
602
+ @enum_values = args[:enum_values] if args.key?(:enum_values)
603
+ @index = args[:index] if args.key?(:index)
604
+ @map_items = args[:map_items] if args.key?(:map_items)
605
+ @name = args[:name] if args.key?(:name)
606
+ @record_fields = args[:record_fields] if args.key?(:record_fields)
607
+ @type = args[:type] if args.key?(:type)
608
+ @type_id = args[:type_id] if args.key?(:type_id)
609
+ @type_ref = args[:type_ref] if args.key?(:type_ref)
610
+ end
611
+ end
612
+
613
+ # Definition of the annotations of a field
614
+ class GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations
615
+ include Google::Apis::Core::Hashable
616
+
617
+ # Optional. Marks a field as deprecated, a deprecation message can be included.
618
+ # Corresponds to the JSON property `deprecated`
619
+ # @return [String]
620
+ attr_accessor :deprecated
621
+
622
+ # Optional. Specify a description for a field
623
+ # Corresponds to the JSON property `description`
624
+ # @return [String]
625
+ attr_accessor :description
626
+
627
+ # Optional. Specify a displayname for a field.
628
+ # Corresponds to the JSON property `displayName`
629
+ # @return [String]
630
+ attr_accessor :display_name
631
+
632
+ # Optional. Specify a display order for a field. Display order can be used to
633
+ # reorder where a field is rendered
634
+ # Corresponds to the JSON property `displayOrder`
635
+ # @return [Fixnum]
636
+ attr_accessor :display_order
637
+
638
+ # Optional. String Type annotations can be used to specify special meaning to
639
+ # string fields. The following values are supported: richText: The field must be
640
+ # interpreted as a rich text field. url: A fully qualified url link. resource: A
641
+ # service qualified resource reference.
642
+ # Corresponds to the JSON property `stringType`
643
+ # @return [String]
644
+ attr_accessor :string_type
645
+
646
+ # Optional. Suggested hints for string fields. These can be used to suggest
647
+ # values to users, through an UI for example.
648
+ # Corresponds to the JSON property `stringValues`
649
+ # @return [Array<String>]
650
+ attr_accessor :string_values
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @deprecated = args[:deprecated] if args.key?(:deprecated)
659
+ @description = args[:description] if args.key?(:description)
660
+ @display_name = args[:display_name] if args.key?(:display_name)
661
+ @display_order = args[:display_order] if args.key?(:display_order)
662
+ @string_type = args[:string_type] if args.key?(:string_type)
663
+ @string_values = args[:string_values] if args.key?(:string_values)
664
+ end
665
+ end
666
+
667
+ # Definition of the constraints of a field
668
+ class GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints
669
+ include Google::Apis::Core::Hashable
670
+
671
+ # Optional. Marks this as an optional/required field.
672
+ # Corresponds to the JSON property `required`
673
+ # @return [Boolean]
674
+ attr_accessor :required
675
+ alias_method :required?, :required
676
+
677
+ def initialize(**args)
678
+ update!(**args)
679
+ end
680
+
681
+ # Update properties of this object
682
+ def update!(**args)
683
+ @required = args[:required] if args.key?(:required)
684
+ end
685
+ end
686
+
687
+ # Definition of Enumvalue (to be used by enum fields)
688
+ class GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue
689
+ include Google::Apis::Core::Hashable
690
+
691
+ # Optional. Optional deprecation message to be set if an enum value needs to be
692
+ # deprecated.
693
+ # Corresponds to the JSON property `deprecated`
694
+ # @return [String]
695
+ attr_accessor :deprecated
696
+
697
+ # Required. Index for the enum. Cannot be modified.
698
+ # Corresponds to the JSON property `index`
699
+ # @return [Fixnum]
700
+ attr_accessor :index
701
+
702
+ # Required. Name of the enumvalue. This is the actual value that the aspect will
703
+ # contain.
704
+ # Corresponds to the JSON property `name`
705
+ # @return [String]
706
+ attr_accessor :name
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @deprecated = args[:deprecated] if args.key?(:deprecated)
715
+ @index = args[:index] if args.key?(:index)
716
+ @name = args[:name] if args.key?(:name)
717
+ end
718
+ end
719
+
336
720
  # An asset represents a cloud resource that is being managed within a lake as a
337
721
  # member of a zone.
338
722
  class GoogleCloudDataplexV1Asset
@@ -3519,51 +3903,425 @@ module Google
3519
3903
  end
3520
3904
  end
3521
3905
 
3522
- # Environment represents a user-visible compute infrastructure for analytics
3523
- # within a lake.
3524
- class GoogleCloudDataplexV1Environment
3906
+ # An entry is a representation of a data asset which can be described by various
3907
+ # metadata.
3908
+ class GoogleCloudDataplexV1Entry
3525
3909
  include Google::Apis::Core::Hashable
3526
3910
 
3527
- # Output only. Environment creation time.
3911
+ # Optional. The Aspects attached to the Entry. The key is either the resource
3912
+ # name of the aspect type (if the aspect is attached directly to the entry) or "
3913
+ # aspectType@path" if the aspect is attached to an entry's path.
3914
+ # Corresponds to the JSON property `aspects`
3915
+ # @return [Hash<String,Google::Apis::DataplexV1::GoogleCloudDataplexV1Aspect>]
3916
+ attr_accessor :aspects
3917
+
3918
+ # Output only. The time when the Entry was created.
3528
3919
  # Corresponds to the JSON property `createTime`
3529
3920
  # @return [String]
3530
3921
  attr_accessor :create_time
3531
3922
 
3532
- # Optional. Description of the environment.
3533
- # Corresponds to the JSON property `description`
3534
- # @return [String]
3535
- attr_accessor :description
3923
+ # EntrySource contains source system related information for the entry.
3924
+ # Corresponds to the JSON property `entrySource`
3925
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EntrySource]
3926
+ attr_accessor :entry_source
3536
3927
 
3537
- # Optional. User friendly display name.
3538
- # Corresponds to the JSON property `displayName`
3928
+ # Required. Immutable. The resource name of the EntryType used to create this
3929
+ # Entry.
3930
+ # Corresponds to the JSON property `entryType`
3539
3931
  # @return [String]
3540
- attr_accessor :display_name
3541
-
3542
- # URI Endpoints to access sessions associated with the Environment.
3543
- # Corresponds to the JSON property `endpoints`
3544
- # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentEndpoints]
3545
- attr_accessor :endpoints
3932
+ attr_accessor :entry_type
3546
3933
 
3547
- # Configuration for the underlying infrastructure used to run workloads.
3548
- # Corresponds to the JSON property `infrastructureSpec`
3549
- # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentInfrastructureSpec]
3550
- attr_accessor :infrastructure_spec
3551
-
3552
- # Optional. User defined labels for the environment.
3553
- # Corresponds to the JSON property `labels`
3554
- # @return [Hash<String,String>]
3555
- attr_accessor :labels
3934
+ # Optional. A name for the entry that can reference it in an external system.
3935
+ # The maximum size of the field is 4000 characters.
3936
+ # Corresponds to the JSON property `fullyQualifiedName`
3937
+ # @return [String]
3938
+ attr_accessor :fully_qualified_name
3556
3939
 
3557
- # Output only. The relative resource name of the environment, of the form:
3558
- # projects/`project_id`/locations/`location_id`/lakes/`lake_id`/environment/`
3559
- # environment_id`
3940
+ # Identifier. The relative resource name of the Entry, of the form: projects/`
3941
+ # project`/locations/`location`/entryGroups/`entry_group`/entries/`entry`.
3560
3942
  # Corresponds to the JSON property `name`
3561
3943
  # @return [String]
3562
3944
  attr_accessor :name
3563
3945
 
3564
- # Configuration for sessions created for this environment.
3565
- # Corresponds to the JSON property `sessionSpec`
3566
- # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentSessionSpec]
3946
+ # Optional. Immutable. The resource name of the parent entry.
3947
+ # Corresponds to the JSON property `parentEntry`
3948
+ # @return [String]
3949
+ attr_accessor :parent_entry
3950
+
3951
+ # Output only. The time when the Entry was last updated.
3952
+ # Corresponds to the JSON property `updateTime`
3953
+ # @return [String]
3954
+ attr_accessor :update_time
3955
+
3956
+ def initialize(**args)
3957
+ update!(**args)
3958
+ end
3959
+
3960
+ # Update properties of this object
3961
+ def update!(**args)
3962
+ @aspects = args[:aspects] if args.key?(:aspects)
3963
+ @create_time = args[:create_time] if args.key?(:create_time)
3964
+ @entry_source = args[:entry_source] if args.key?(:entry_source)
3965
+ @entry_type = args[:entry_type] if args.key?(:entry_type)
3966
+ @fully_qualified_name = args[:fully_qualified_name] if args.key?(:fully_qualified_name)
3967
+ @name = args[:name] if args.key?(:name)
3968
+ @parent_entry = args[:parent_entry] if args.key?(:parent_entry)
3969
+ @update_time = args[:update_time] if args.key?(:update_time)
3970
+ end
3971
+ end
3972
+
3973
+ # An Entry Group represents a logical grouping of one or more Entries.
3974
+ class GoogleCloudDataplexV1EntryGroup
3975
+ include Google::Apis::Core::Hashable
3976
+
3977
+ # Output only. The time when the EntryGroup was created.
3978
+ # Corresponds to the JSON property `createTime`
3979
+ # @return [String]
3980
+ attr_accessor :create_time
3981
+
3982
+ # Optional. Description of the EntryGroup.
3983
+ # Corresponds to the JSON property `description`
3984
+ # @return [String]
3985
+ attr_accessor :description
3986
+
3987
+ # Optional. User friendly display name.
3988
+ # Corresponds to the JSON property `displayName`
3989
+ # @return [String]
3990
+ attr_accessor :display_name
3991
+
3992
+ # This checksum is computed by the server based on the value of other fields,
3993
+ # and may be sent on update and delete requests to ensure the client has an up-
3994
+ # to-date value before proceeding.
3995
+ # Corresponds to the JSON property `etag`
3996
+ # @return [String]
3997
+ attr_accessor :etag
3998
+
3999
+ # Optional. User-defined labels for the EntryGroup.
4000
+ # Corresponds to the JSON property `labels`
4001
+ # @return [Hash<String,String>]
4002
+ attr_accessor :labels
4003
+
4004
+ # Output only. The relative resource name of the EntryGroup, of the form:
4005
+ # projects/`project_number`/locations/`location_id`/entryGroups/`entry_group_id`.
4006
+ # Corresponds to the JSON property `name`
4007
+ # @return [String]
4008
+ attr_accessor :name
4009
+
4010
+ # Output only. Denotes the transfer status of the Entry Group. It is unspecified
4011
+ # for Entry Group created from Dataplex API.
4012
+ # Corresponds to the JSON property `transferStatus`
4013
+ # @return [String]
4014
+ attr_accessor :transfer_status
4015
+
4016
+ # Output only. System generated globally unique ID for the EntryGroup. This ID
4017
+ # will be different if the EntryGroup is deleted and re-created with the same
4018
+ # name.
4019
+ # Corresponds to the JSON property `uid`
4020
+ # @return [String]
4021
+ attr_accessor :uid
4022
+
4023
+ # Output only. The time when the EntryGroup was last updated.
4024
+ # Corresponds to the JSON property `updateTime`
4025
+ # @return [String]
4026
+ attr_accessor :update_time
4027
+
4028
+ def initialize(**args)
4029
+ update!(**args)
4030
+ end
4031
+
4032
+ # Update properties of this object
4033
+ def update!(**args)
4034
+ @create_time = args[:create_time] if args.key?(:create_time)
4035
+ @description = args[:description] if args.key?(:description)
4036
+ @display_name = args[:display_name] if args.key?(:display_name)
4037
+ @etag = args[:etag] if args.key?(:etag)
4038
+ @labels = args[:labels] if args.key?(:labels)
4039
+ @name = args[:name] if args.key?(:name)
4040
+ @transfer_status = args[:transfer_status] if args.key?(:transfer_status)
4041
+ @uid = args[:uid] if args.key?(:uid)
4042
+ @update_time = args[:update_time] if args.key?(:update_time)
4043
+ end
4044
+ end
4045
+
4046
+ # EntrySource contains source system related information for the entry.
4047
+ class GoogleCloudDataplexV1EntrySource
4048
+ include Google::Apis::Core::Hashable
4049
+
4050
+ # Immutable. The ancestors of the Entry in the source system.
4051
+ # Corresponds to the JSON property `ancestors`
4052
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1EntrySourceAncestor>]
4053
+ attr_accessor :ancestors
4054
+
4055
+ # The create time of the resource in the source system.
4056
+ # Corresponds to the JSON property `createTime`
4057
+ # @return [String]
4058
+ attr_accessor :create_time
4059
+
4060
+ # Description of the Entry. The maximum size of the field is 2000 characters.
4061
+ # Corresponds to the JSON property `description`
4062
+ # @return [String]
4063
+ attr_accessor :description
4064
+
4065
+ # User friendly display name. The maximum size of the field is 500 characters.
4066
+ # Corresponds to the JSON property `displayName`
4067
+ # @return [String]
4068
+ attr_accessor :display_name
4069
+
4070
+ # User-defined labels. The maximum size of keys and values is 128 characters
4071
+ # each.
4072
+ # Corresponds to the JSON property `labels`
4073
+ # @return [Hash<String,String>]
4074
+ attr_accessor :labels
4075
+
4076
+ # The platform containing the source system. The maximum size of the field is 64
4077
+ # characters.
4078
+ # Corresponds to the JSON property `platform`
4079
+ # @return [String]
4080
+ attr_accessor :platform
4081
+
4082
+ # The name of the resource in the source system. The maximum size of the field
4083
+ # is 4000 characters.
4084
+ # Corresponds to the JSON property `resource`
4085
+ # @return [String]
4086
+ attr_accessor :resource
4087
+
4088
+ # The name of the source system. The maximum size of the field is 64 characters.
4089
+ # Corresponds to the JSON property `system`
4090
+ # @return [String]
4091
+ attr_accessor :system
4092
+
4093
+ # The update time of the resource in the source system.
4094
+ # Corresponds to the JSON property `updateTime`
4095
+ # @return [String]
4096
+ attr_accessor :update_time
4097
+
4098
+ def initialize(**args)
4099
+ update!(**args)
4100
+ end
4101
+
4102
+ # Update properties of this object
4103
+ def update!(**args)
4104
+ @ancestors = args[:ancestors] if args.key?(:ancestors)
4105
+ @create_time = args[:create_time] if args.key?(:create_time)
4106
+ @description = args[:description] if args.key?(:description)
4107
+ @display_name = args[:display_name] if args.key?(:display_name)
4108
+ @labels = args[:labels] if args.key?(:labels)
4109
+ @platform = args[:platform] if args.key?(:platform)
4110
+ @resource = args[:resource] if args.key?(:resource)
4111
+ @system = args[:system] if args.key?(:system)
4112
+ @update_time = args[:update_time] if args.key?(:update_time)
4113
+ end
4114
+ end
4115
+
4116
+ # Ancestor contains information about individual items in the hierarchy of an
4117
+ # Entry.
4118
+ class GoogleCloudDataplexV1EntrySourceAncestor
4119
+ include Google::Apis::Core::Hashable
4120
+
4121
+ # Optional. The name of the ancestor resource.
4122
+ # Corresponds to the JSON property `name`
4123
+ # @return [String]
4124
+ attr_accessor :name
4125
+
4126
+ # Optional. The type of the ancestor resource.
4127
+ # Corresponds to the JSON property `type`
4128
+ # @return [String]
4129
+ attr_accessor :type
4130
+
4131
+ def initialize(**args)
4132
+ update!(**args)
4133
+ end
4134
+
4135
+ # Update properties of this object
4136
+ def update!(**args)
4137
+ @name = args[:name] if args.key?(:name)
4138
+ @type = args[:type] if args.key?(:type)
4139
+ end
4140
+ end
4141
+
4142
+ # Entry Type is a template for creating Entries.
4143
+ class GoogleCloudDataplexV1EntryType
4144
+ include Google::Apis::Core::Hashable
4145
+
4146
+ # Authorization for an Entry Type.
4147
+ # Corresponds to the JSON property `authorization`
4148
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EntryTypeAuthorization]
4149
+ attr_accessor :authorization
4150
+
4151
+ # Output only. The time when the EntryType was created.
4152
+ # Corresponds to the JSON property `createTime`
4153
+ # @return [String]
4154
+ attr_accessor :create_time
4155
+
4156
+ # Optional. Description of the EntryType.
4157
+ # Corresponds to the JSON property `description`
4158
+ # @return [String]
4159
+ attr_accessor :description
4160
+
4161
+ # Optional. User friendly display name.
4162
+ # Corresponds to the JSON property `displayName`
4163
+ # @return [String]
4164
+ attr_accessor :display_name
4165
+
4166
+ # Optional. This checksum is computed by the server based on the value of other
4167
+ # fields, and may be sent on update and delete requests to ensure the client has
4168
+ # an up-to-date value before proceeding.
4169
+ # Corresponds to the JSON property `etag`
4170
+ # @return [String]
4171
+ attr_accessor :etag
4172
+
4173
+ # Optional. User-defined labels for the EntryType.
4174
+ # Corresponds to the JSON property `labels`
4175
+ # @return [Hash<String,String>]
4176
+ attr_accessor :labels
4177
+
4178
+ # Output only. The relative resource name of the EntryType, of the form:
4179
+ # projects/`project_number`/locations/`location_id`/entryTypes/`entry_type_id`.
4180
+ # Corresponds to the JSON property `name`
4181
+ # @return [String]
4182
+ attr_accessor :name
4183
+
4184
+ # Optional. The platform that Entries of this type belongs to.
4185
+ # Corresponds to the JSON property `platform`
4186
+ # @return [String]
4187
+ attr_accessor :platform
4188
+
4189
+ # AspectInfo for the entry type.
4190
+ # Corresponds to the JSON property `requiredAspects`
4191
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1EntryTypeAspectInfo>]
4192
+ attr_accessor :required_aspects
4193
+
4194
+ # Optional. The system that Entries of this type belongs to. Examples include
4195
+ # CloudSQL, MariaDB etc
4196
+ # Corresponds to the JSON property `system`
4197
+ # @return [String]
4198
+ attr_accessor :system
4199
+
4200
+ # Optional. Indicates the class this Entry Type belongs to, for example, TABLE,
4201
+ # DATABASE, MODEL.
4202
+ # Corresponds to the JSON property `typeAliases`
4203
+ # @return [Array<String>]
4204
+ attr_accessor :type_aliases
4205
+
4206
+ # Output only. System generated globally unique ID for the EntryType. This ID
4207
+ # will be different if the EntryType is deleted and re-created with the same
4208
+ # name.
4209
+ # Corresponds to the JSON property `uid`
4210
+ # @return [String]
4211
+ attr_accessor :uid
4212
+
4213
+ # Output only. The time when the EntryType was last updated.
4214
+ # Corresponds to the JSON property `updateTime`
4215
+ # @return [String]
4216
+ attr_accessor :update_time
4217
+
4218
+ def initialize(**args)
4219
+ update!(**args)
4220
+ end
4221
+
4222
+ # Update properties of this object
4223
+ def update!(**args)
4224
+ @authorization = args[:authorization] if args.key?(:authorization)
4225
+ @create_time = args[:create_time] if args.key?(:create_time)
4226
+ @description = args[:description] if args.key?(:description)
4227
+ @display_name = args[:display_name] if args.key?(:display_name)
4228
+ @etag = args[:etag] if args.key?(:etag)
4229
+ @labels = args[:labels] if args.key?(:labels)
4230
+ @name = args[:name] if args.key?(:name)
4231
+ @platform = args[:platform] if args.key?(:platform)
4232
+ @required_aspects = args[:required_aspects] if args.key?(:required_aspects)
4233
+ @system = args[:system] if args.key?(:system)
4234
+ @type_aliases = args[:type_aliases] if args.key?(:type_aliases)
4235
+ @uid = args[:uid] if args.key?(:uid)
4236
+ @update_time = args[:update_time] if args.key?(:update_time)
4237
+ end
4238
+ end
4239
+
4240
+ #
4241
+ class GoogleCloudDataplexV1EntryTypeAspectInfo
4242
+ include Google::Apis::Core::Hashable
4243
+
4244
+ # Required aspect type for the entry type.
4245
+ # Corresponds to the JSON property `type`
4246
+ # @return [String]
4247
+ attr_accessor :type
4248
+
4249
+ def initialize(**args)
4250
+ update!(**args)
4251
+ end
4252
+
4253
+ # Update properties of this object
4254
+ def update!(**args)
4255
+ @type = args[:type] if args.key?(:type)
4256
+ end
4257
+ end
4258
+
4259
+ # Authorization for an Entry Type.
4260
+ class GoogleCloudDataplexV1EntryTypeAuthorization
4261
+ include Google::Apis::Core::Hashable
4262
+
4263
+ # Immutable. The IAM permission grantable on the Entry Group to allow access to
4264
+ # instantiate Entries of Dataplex owned Entry Types, only settable for Dataplex
4265
+ # owned Types.
4266
+ # Corresponds to the JSON property `alternateUsePermission`
4267
+ # @return [String]
4268
+ attr_accessor :alternate_use_permission
4269
+
4270
+ def initialize(**args)
4271
+ update!(**args)
4272
+ end
4273
+
4274
+ # Update properties of this object
4275
+ def update!(**args)
4276
+ @alternate_use_permission = args[:alternate_use_permission] if args.key?(:alternate_use_permission)
4277
+ end
4278
+ end
4279
+
4280
+ # Environment represents a user-visible compute infrastructure for analytics
4281
+ # within a lake.
4282
+ class GoogleCloudDataplexV1Environment
4283
+ include Google::Apis::Core::Hashable
4284
+
4285
+ # Output only. Environment creation time.
4286
+ # Corresponds to the JSON property `createTime`
4287
+ # @return [String]
4288
+ attr_accessor :create_time
4289
+
4290
+ # Optional. Description of the environment.
4291
+ # Corresponds to the JSON property `description`
4292
+ # @return [String]
4293
+ attr_accessor :description
4294
+
4295
+ # Optional. User friendly display name.
4296
+ # Corresponds to the JSON property `displayName`
4297
+ # @return [String]
4298
+ attr_accessor :display_name
4299
+
4300
+ # URI Endpoints to access sessions associated with the Environment.
4301
+ # Corresponds to the JSON property `endpoints`
4302
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentEndpoints]
4303
+ attr_accessor :endpoints
4304
+
4305
+ # Configuration for the underlying infrastructure used to run workloads.
4306
+ # Corresponds to the JSON property `infrastructureSpec`
4307
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentInfrastructureSpec]
4308
+ attr_accessor :infrastructure_spec
4309
+
4310
+ # Optional. User defined labels for the environment.
4311
+ # Corresponds to the JSON property `labels`
4312
+ # @return [Hash<String,String>]
4313
+ attr_accessor :labels
4314
+
4315
+ # Output only. The relative resource name of the environment, of the form:
4316
+ # projects/`project_id`/locations/`location_id`/lakes/`lake_id`/environment/`
4317
+ # environment_id`
4318
+ # Corresponds to the JSON property `name`
4319
+ # @return [String]
4320
+ attr_accessor :name
4321
+
4322
+ # Configuration for sessions created for this environment.
4323
+ # Corresponds to the JSON property `sessionSpec`
4324
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentSessionSpec]
3567
4325
  attr_accessor :session_spec
3568
4326
 
3569
4327
  # Status of sessions created for this environment.
@@ -3786,6 +4544,38 @@ module Google
3786
4544
  end
3787
4545
  end
3788
4546
 
4547
+ # Generate recommended DataQualityRules request.
4548
+ class GoogleCloudDataplexV1GenerateDataQualityRulesRequest
4549
+ include Google::Apis::Core::Hashable
4550
+
4551
+ def initialize(**args)
4552
+ update!(**args)
4553
+ end
4554
+
4555
+ # Update properties of this object
4556
+ def update!(**args)
4557
+ end
4558
+ end
4559
+
4560
+ # Generate recommended DataQualityRules response.
4561
+ class GoogleCloudDataplexV1GenerateDataQualityRulesResponse
4562
+ include Google::Apis::Core::Hashable
4563
+
4564
+ # Generated recommended `@link DataQualityRule`s.
4565
+ # Corresponds to the JSON property `rule`
4566
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRule>]
4567
+ attr_accessor :rule
4568
+
4569
+ def initialize(**args)
4570
+ update!(**args)
4571
+ end
4572
+
4573
+ # Update properties of this object
4574
+ def update!(**args)
4575
+ @rule = args[:rule] if args.key?(:rule)
4576
+ end
4577
+ end
4578
+
3789
4579
  # Payload associated with Governance related log events.
3790
4580
  class GoogleCloudDataplexV1GovernanceEvent
3791
4581
  include Google::Apis::Core::Hashable
@@ -4185,6 +4975,38 @@ module Google
4185
4975
  end
4186
4976
  end
4187
4977
 
4978
+ # List AspectTypes response
4979
+ class GoogleCloudDataplexV1ListAspectTypesResponse
4980
+ include Google::Apis::Core::Hashable
4981
+
4982
+ # ListAspectTypes under the given parent location.
4983
+ # Corresponds to the JSON property `aspectTypes`
4984
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1AspectType>]
4985
+ attr_accessor :aspect_types
4986
+
4987
+ # Token to retrieve the next page of results, or empty if there are no more
4988
+ # results in the list.
4989
+ # Corresponds to the JSON property `nextPageToken`
4990
+ # @return [String]
4991
+ attr_accessor :next_page_token
4992
+
4993
+ # Locations that could not be reached.
4994
+ # Corresponds to the JSON property `unreachableLocations`
4995
+ # @return [Array<String>]
4996
+ attr_accessor :unreachable_locations
4997
+
4998
+ def initialize(**args)
4999
+ update!(**args)
5000
+ end
5001
+
5002
+ # Update properties of this object
5003
+ def update!(**args)
5004
+ @aspect_types = args[:aspect_types] if args.key?(:aspect_types)
5005
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
5006
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
5007
+ end
5008
+ end
5009
+
4188
5010
  # List assets response.
4189
5011
  class GoogleCloudDataplexV1ListAssetsResponse
4190
5012
  include Google::Apis::Core::Hashable
@@ -4417,6 +5239,95 @@ module Google
4417
5239
  end
4418
5240
  end
4419
5241
 
5242
+ #
5243
+ class GoogleCloudDataplexV1ListEntriesResponse
5244
+ include Google::Apis::Core::Hashable
5245
+
5246
+ # The list of entries.
5247
+ # Corresponds to the JSON property `entries`
5248
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Entry>]
5249
+ attr_accessor :entries
5250
+
5251
+ # Pagination token.
5252
+ # Corresponds to the JSON property `nextPageToken`
5253
+ # @return [String]
5254
+ attr_accessor :next_page_token
5255
+
5256
+ def initialize(**args)
5257
+ update!(**args)
5258
+ end
5259
+
5260
+ # Update properties of this object
5261
+ def update!(**args)
5262
+ @entries = args[:entries] if args.key?(:entries)
5263
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
5264
+ end
5265
+ end
5266
+
5267
+ # List ListEntryGroups response.
5268
+ class GoogleCloudDataplexV1ListEntryGroupsResponse
5269
+ include Google::Apis::Core::Hashable
5270
+
5271
+ # ListEntryGroups under the given parent location.
5272
+ # Corresponds to the JSON property `entryGroups`
5273
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1EntryGroup>]
5274
+ attr_accessor :entry_groups
5275
+
5276
+ # Token to retrieve the next page of results, or empty if there are no more
5277
+ # results in the list.
5278
+ # Corresponds to the JSON property `nextPageToken`
5279
+ # @return [String]
5280
+ attr_accessor :next_page_token
5281
+
5282
+ # Locations that could not be reached.
5283
+ # Corresponds to the JSON property `unreachableLocations`
5284
+ # @return [Array<String>]
5285
+ attr_accessor :unreachable_locations
5286
+
5287
+ def initialize(**args)
5288
+ update!(**args)
5289
+ end
5290
+
5291
+ # Update properties of this object
5292
+ def update!(**args)
5293
+ @entry_groups = args[:entry_groups] if args.key?(:entry_groups)
5294
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
5295
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
5296
+ end
5297
+ end
5298
+
5299
+ # List EntryTypes response
5300
+ class GoogleCloudDataplexV1ListEntryTypesResponse
5301
+ include Google::Apis::Core::Hashable
5302
+
5303
+ # ListEntryTypes under the given parent location.
5304
+ # Corresponds to the JSON property `entryTypes`
5305
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1EntryType>]
5306
+ attr_accessor :entry_types
5307
+
5308
+ # Token to retrieve the next page of results, or empty if there are no more
5309
+ # results in the list.
5310
+ # Corresponds to the JSON property `nextPageToken`
5311
+ # @return [String]
5312
+ attr_accessor :next_page_token
5313
+
5314
+ # Locations that could not be reached.
5315
+ # Corresponds to the JSON property `unreachableLocations`
5316
+ # @return [Array<String>]
5317
+ attr_accessor :unreachable_locations
5318
+
5319
+ def initialize(**args)
5320
+ update!(**args)
5321
+ end
5322
+
5323
+ # Update properties of this object
5324
+ def update!(**args)
5325
+ @entry_types = args[:entry_types] if args.key?(:entry_types)
5326
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
5327
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
5328
+ end
5329
+ end
5330
+
4420
5331
  # List environments response.
4421
5332
  class GoogleCloudDataplexV1ListEnvironmentsResponse
4422
5333
  include Google::Apis::Core::Hashable
@@ -5009,6 +5920,139 @@ module Google
5009
5920
  end
5010
5921
  end
5011
5922
 
5923
+ #
5924
+ class GoogleCloudDataplexV1SearchEntriesResponse
5925
+ include Google::Apis::Core::Hashable
5926
+
5927
+ # Pagination token.
5928
+ # Corresponds to the JSON property `nextPageToken`
5929
+ # @return [String]
5930
+ attr_accessor :next_page_token
5931
+
5932
+ # The results matching the search query.
5933
+ # Corresponds to the JSON property `results`
5934
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1SearchEntriesResult>]
5935
+ attr_accessor :results
5936
+
5937
+ # The estimated total number of matching entries. Not guaranteed to be accurate.
5938
+ # Corresponds to the JSON property `totalSize`
5939
+ # @return [Fixnum]
5940
+ attr_accessor :total_size
5941
+
5942
+ # Unreachable locations. Search results don't include data from those locations.
5943
+ # Corresponds to the JSON property `unreachable`
5944
+ # @return [Array<String>]
5945
+ attr_accessor :unreachable
5946
+
5947
+ def initialize(**args)
5948
+ update!(**args)
5949
+ end
5950
+
5951
+ # Update properties of this object
5952
+ def update!(**args)
5953
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
5954
+ @results = args[:results] if args.key?(:results)
5955
+ @total_size = args[:total_size] if args.key?(:total_size)
5956
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
5957
+ end
5958
+ end
5959
+
5960
+ # A single result of a SearchEntries request.
5961
+ class GoogleCloudDataplexV1SearchEntriesResult
5962
+ include Google::Apis::Core::Hashable
5963
+
5964
+ # An entry is a representation of a data asset which can be described by various
5965
+ # metadata.
5966
+ # Corresponds to the JSON property `dataplexEntry`
5967
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1Entry]
5968
+ attr_accessor :dataplex_entry
5969
+
5970
+ # Entry description.
5971
+ # Corresponds to the JSON property `description`
5972
+ # @return [String]
5973
+ attr_accessor :description
5974
+
5975
+ # Display name.
5976
+ # Corresponds to the JSON property `displayName`
5977
+ # @return [String]
5978
+ attr_accessor :display_name
5979
+
5980
+ # Resource name of the entry.
5981
+ # Corresponds to the JSON property `entry`
5982
+ # @return [String]
5983
+ attr_accessor :entry
5984
+
5985
+ # The entry type.
5986
+ # Corresponds to the JSON property `entryType`
5987
+ # @return [String]
5988
+ attr_accessor :entry_type
5989
+
5990
+ # Fully qualified name.
5991
+ # Corresponds to the JSON property `fullyQualifiedName`
5992
+ # @return [String]
5993
+ attr_accessor :fully_qualified_name
5994
+
5995
+ # Linked resource name.
5996
+ # Corresponds to the JSON property `linkedResource`
5997
+ # @return [String]
5998
+ attr_accessor :linked_resource
5999
+
6000
+ # The last modification timestamp.
6001
+ # Corresponds to the JSON property `modifyTime`
6002
+ # @return [String]
6003
+ attr_accessor :modify_time
6004
+
6005
+ # Relative resource name.
6006
+ # Corresponds to the JSON property `relativeResource`
6007
+ # @return [String]
6008
+ attr_accessor :relative_resource
6009
+
6010
+ # Snippets for the entry, contains HTML-style highlighting for matched tokens,
6011
+ # will be used in UI.
6012
+ # Corresponds to the JSON property `snippets`
6013
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1SearchEntriesResultSnippets]
6014
+ attr_accessor :snippets
6015
+
6016
+ def initialize(**args)
6017
+ update!(**args)
6018
+ end
6019
+
6020
+ # Update properties of this object
6021
+ def update!(**args)
6022
+ @dataplex_entry = args[:dataplex_entry] if args.key?(:dataplex_entry)
6023
+ @description = args[:description] if args.key?(:description)
6024
+ @display_name = args[:display_name] if args.key?(:display_name)
6025
+ @entry = args[:entry] if args.key?(:entry)
6026
+ @entry_type = args[:entry_type] if args.key?(:entry_type)
6027
+ @fully_qualified_name = args[:fully_qualified_name] if args.key?(:fully_qualified_name)
6028
+ @linked_resource = args[:linked_resource] if args.key?(:linked_resource)
6029
+ @modify_time = args[:modify_time] if args.key?(:modify_time)
6030
+ @relative_resource = args[:relative_resource] if args.key?(:relative_resource)
6031
+ @snippets = args[:snippets] if args.key?(:snippets)
6032
+ end
6033
+ end
6034
+
6035
+ # Snippets for the entry, contains HTML-style highlighting for matched tokens,
6036
+ # will be used in UI.
6037
+ class GoogleCloudDataplexV1SearchEntriesResultSnippets
6038
+ include Google::Apis::Core::Hashable
6039
+
6040
+ # An entry is a representation of a data asset which can be described by various
6041
+ # metadata.
6042
+ # Corresponds to the JSON property `dataplexEntry`
6043
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1Entry]
6044
+ attr_accessor :dataplex_entry
6045
+
6046
+ def initialize(**args)
6047
+ update!(**args)
6048
+ end
6049
+
6050
+ # Update properties of this object
6051
+ def update!(**args)
6052
+ @dataplex_entry = args[:dataplex_entry] if args.key?(:dataplex_entry)
6053
+ end
6054
+ end
6055
+
5012
6056
  # Represents an active analyze session running for a user.
5013
6057
  class GoogleCloudDataplexV1Session
5014
6058
  include Google::Apis::Core::Hashable