ovirt-engine-sdk 4.4.0 → 4.6.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.
@@ -278,6 +278,9 @@ module OvirtSDK4
278
278
  class ExternalProviderCertificatesService < Service
279
279
  end
280
280
 
281
+ class ExternalTemplateImportsService < Service
282
+ end
283
+
281
284
  class ExternalVmImportsService < Service
282
285
  end
283
286
 
@@ -320,6 +323,9 @@ module OvirtSDK4
320
323
  class GroupsService < Service
321
324
  end
322
325
 
326
+ class HostCpuUnitsService < Service
327
+ end
328
+
323
329
  class HostDeviceService < Service
324
330
  end
325
331
 
@@ -698,6 +704,12 @@ module OvirtSDK4
698
704
  class TemplateGraphicsConsolesService < Service
699
705
  end
700
706
 
707
+ class TemplateMediatedDeviceService < Service
708
+ end
709
+
710
+ class TemplateMediatedDevicesService < Service
711
+ end
712
+
701
713
  class TemplateNicService < Service
702
714
  end
703
715
 
@@ -722,6 +734,12 @@ module OvirtSDK4
722
734
  class UserService < Service
723
735
  end
724
736
 
737
+ class UserOptionService < Service
738
+ end
739
+
740
+ class UserOptionsService < Service
741
+ end
742
+
725
743
  class UsersService < Service
726
744
  end
727
745
 
@@ -758,6 +776,18 @@ module OvirtSDK4
758
776
  class VmCdromsService < Service
759
777
  end
760
778
 
779
+ class VmCheckpointService < Service
780
+ end
781
+
782
+ class VmCheckpointDiskService < Service
783
+ end
784
+
785
+ class VmCheckpointDisksService < Service
786
+ end
787
+
788
+ class VmCheckpointsService < Service
789
+ end
790
+
761
791
  class VmDiskService < MeasurableService
762
792
  end
763
793
 
@@ -776,6 +806,12 @@ module OvirtSDK4
776
806
  class VmHostDevicesService < Service
777
807
  end
778
808
 
809
+ class VmMediatedDeviceService < Service
810
+ end
811
+
812
+ class VmMediatedDevicesService < Service
813
+ end
814
+
779
815
  class VmNicService < MeasurableService
780
816
  end
781
817
 
@@ -1312,14 +1348,14 @@ module OvirtSDK4
1312
1348
  end
1313
1349
 
1314
1350
  #
1315
- # Access the service that manages the host assignment to this affinity group.
1351
+ # Access the service that manages the host assignment to this affinity group by host id or name.
1316
1352
  #
1317
- # @param id [String] The identifier of the `host`.
1353
+ # @param id_or_name [String] The identifier of the `host`.
1318
1354
  #
1319
1355
  # @return [AffinityGroupHostService] A reference to the `host` service.
1320
1356
  #
1321
- def host_service(id)
1322
- AffinityGroupHostService.new(self, id)
1357
+ def host_service(id_or_name)
1358
+ AffinityGroupHostService.new(self, id_or_name)
1323
1359
  end
1324
1360
 
1325
1361
  #
@@ -3908,9 +3944,9 @@ module OvirtSDK4
3908
3944
  # Adds or registers a disk.
3909
3945
  #
3910
3946
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
3911
- # compatibility. It will be removed in the future. To add a new disk use the <<services/disks/methods/add, add>>
3947
+ # compatibility. It will be removed in the future. To add a new disk use the xref:services-disks-methods-add[add]
3912
3948
  # operation of the service that manages the disks of the system. To register an unregistered disk use the
3913
- # <<services/attached_storage_domain_disk/methods/register, register>> operation of the service that manages
3949
+ # xref:services-attached_storage_domain_disk-methods-register[register] operation of the service that manages
3914
3950
  # that disk.
3915
3951
  #
3916
3952
  # @param disk [Disk] The disk to add or register.
@@ -4853,14 +4889,16 @@ module OvirtSDK4
4853
4889
 
4854
4890
  UPGRADE = [
4855
4891
  [:async, TrueClass].freeze,
4892
+ [:correlation_id, String].freeze,
4893
+ [:upgrade_percent_complete, Integer].freeze,
4856
4894
  ].freeze
4857
4895
 
4858
4896
  private_constant :UPGRADE
4859
4897
 
4860
4898
  #
4861
- # Start or finish upgrade process for the cluster based on the action value. This action marks the cluster for
4862
- # upgrade or clears the upgrade running flag on the cluster based on the action value which takes values of
4863
- # start or stop.
4899
+ # Start, update or finish upgrade process for the cluster based on the action value. This action marks the
4900
+ # cluster for upgrade, updates the progress, or clears the upgrade running flag on the cluster based on the
4901
+ # action value which takes values of `start`, `stop` or `update_progress`.
4864
4902
  #
4865
4903
  # [source]
4866
4904
  # ----
@@ -4878,12 +4916,32 @@ module OvirtSDK4
4878
4916
  # </action>
4879
4917
  # ----
4880
4918
  #
4919
+ # After starting the upgrade, use a request body like this to update the progress to 15%:
4920
+ #
4921
+ # [source,xml]
4922
+ # ----
4923
+ # <action>
4924
+ # <upgrade_action>
4925
+ # update_progress
4926
+ # </upgrade_action>
4927
+ # <upgrade_percent_complete>
4928
+ # 15
4929
+ # </upgrade_percent_complete>
4930
+ # </action>
4931
+ # ----
4932
+ #
4881
4933
  # @param opts [Hash] Additional options.
4882
4934
  #
4883
4935
  # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
4884
4936
  #
4937
+ # @option opts [String] :correlation_id Explicitly set the upgrade correlation identifier. Use to correlate events
4938
+ # detailing the cluster upgrade to the upgrade itself. If not specificed, the
4939
+ # correlation id from `Correlation-Id` http header will be used.
4940
+ #
4885
4941
  # @option opts [ClusterUpgradeAction] :upgrade_action The action to be performed.
4886
4942
  #
4943
+ # @option opts [Integer] :upgrade_percent_complete Update the upgrade's progress as a percent complete of the total process.
4944
+ #
4887
4945
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
4888
4946
  #
4889
4947
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -5066,7 +5124,7 @@ module OvirtSDK4
5066
5124
  # GET /ovirt-engine/api/clusters/123/enabledfeatures/456
5067
5125
  # ----
5068
5126
  #
5069
- # That will return a <<types/cluster_feature, ClusterFeature>> object containing the name:
5127
+ # That will return a xref:types-cluster_feature[ClusterFeature] object containing the name:
5070
5128
  #
5071
5129
  # [source,xml]
5072
5130
  # ----
@@ -5331,7 +5389,7 @@ module OvirtSDK4
5331
5389
  # GET /ovirt-engine/api/clusterlevels/4.1/clusterfeatures/456
5332
5390
  # ----
5333
5391
  #
5334
- # That will return a <<types/cluster_feature, ClusterFeature>> object containing the name:
5392
+ # That will return a xref:types-cluster_feature[ClusterFeature] object containing the name:
5335
5393
  #
5336
5394
  # [source,xml]
5337
5395
  # ----
@@ -5473,7 +5531,7 @@ module OvirtSDK4
5473
5531
  # GET /ovirt-engine/api/clusterlevels/3.6
5474
5532
  # ----
5475
5533
  #
5476
- # That will return a <<types/cluster_level, ClusterLevel>> object containing the supported CPU types, and other
5534
+ # That will return a xref:types-cluster_level[ClusterLevel] object containing the supported CPU types, and other
5477
5535
  # information which describes the cluster level:
5478
5536
  #
5479
5537
  # [source,xml]
@@ -6240,6 +6298,48 @@ module OvirtSDK4
6240
6298
 
6241
6299
  class DataCenterService < Service
6242
6300
 
6301
+ CLEAN_FINISHED_TASKS = [
6302
+ [:async, TrueClass].freeze,
6303
+ ].freeze
6304
+
6305
+ private_constant :CLEAN_FINISHED_TASKS
6306
+
6307
+ #
6308
+ # Currently, the storage pool manager (SPM) fails to
6309
+ # switch to another host if the SPM has uncleared tasks.
6310
+ # Clearing all finished tasks enables the SPM switching.
6311
+ #
6312
+ # For example, to clean all the finished tasks on a data center with ID `123` send a request like this:
6313
+ #
6314
+ # [source]
6315
+ # ----
6316
+ # POST /ovirt-engine/api/datacenters/123/cleanfinishedtasks
6317
+ # ----
6318
+ #
6319
+ # With a request body like this:
6320
+ #
6321
+ # [source,xml]
6322
+ # ----
6323
+ # <action/>
6324
+ # ----
6325
+ #
6326
+ # @param opts [Hash] Additional options.
6327
+ #
6328
+ # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
6329
+ #
6330
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
6331
+ #
6332
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
6333
+ #
6334
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
6335
+ # given then the timeout set globally for the connection will be used.
6336
+ #
6337
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
6338
+ #
6339
+ def clean_finished_tasks(opts = {})
6340
+ internal_action(:cleanfinishedtasks, nil, CLEAN_FINISHED_TASKS, opts)
6341
+ end
6342
+
6243
6343
  GET = [
6244
6344
  [:filter, TrueClass].freeze,
6245
6345
  [:follow, String].freeze,
@@ -6352,6 +6452,53 @@ module OvirtSDK4
6352
6452
  internal_remove(REMOVE, opts)
6353
6453
  end
6354
6454
 
6455
+ SET_MASTER = [
6456
+ [:async, TrueClass].freeze,
6457
+ [:storage_domain, StorageDomain].freeze,
6458
+ ].freeze
6459
+
6460
+ private_constant :SET_MASTER
6461
+
6462
+ #
6463
+ # Used for manually setting a storage domain in the data center as a master.
6464
+ # For example, for setting a storage domain with ID '456' as a master on a data center with ID '123',
6465
+ # send a request like this:
6466
+ #
6467
+ # [source]
6468
+ # ----
6469
+ # POST /ovirt-engine/api/datacenters/123/setmaster
6470
+ # ----
6471
+ #
6472
+ # With a request body like this:
6473
+ #
6474
+ # [source,xml]
6475
+ # ----
6476
+ # <action>
6477
+ # <storage_domain id="456"/>
6478
+ # </action>
6479
+ # ----
6480
+ #
6481
+ # The new master storage domain can be also specified by its name.
6482
+ #
6483
+ # @param opts [Hash] Additional options.
6484
+ #
6485
+ # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
6486
+ #
6487
+ # @option opts [StorageDomain] :storage_domain The new master storage domain for the data center.
6488
+ #
6489
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
6490
+ #
6491
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
6492
+ #
6493
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
6494
+ # given then the timeout set globally for the connection will be used.
6495
+ #
6496
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
6497
+ #
6498
+ def set_master(opts = {})
6499
+ internal_action(:setmaster, nil, SET_MASTER, opts)
6500
+ end
6501
+
6355
6502
  UPDATE = [
6356
6503
  [:async, TrueClass].freeze,
6357
6504
  ].freeze
@@ -7119,7 +7266,7 @@ module OvirtSDK4
7119
7266
  # POST /ovirt-engine/api/vms/345/diskattachments
7120
7267
  # ----
7121
7268
  #
7122
- # IMPORTANT: The server accepts requests that don't contain the `active` attribute, but the effect is
7269
+ # IMPORTANT: The server accepts requests that do not contain the `active` attribute, but the effect is
7123
7270
  # undefined. In some cases the disk will be automatically activated and in other cases it won't. To
7124
7271
  # avoid issues it is strongly recommended to always include the `active` attribute with the desired
7125
7272
  # value.
@@ -7545,6 +7692,8 @@ module OvirtSDK4
7545
7692
 
7546
7693
  LIST = [
7547
7694
  [:follow, String].freeze,
7695
+ [:include_active, TrueClass].freeze,
7696
+ [:include_template, TrueClass].freeze,
7548
7697
  [:max, Integer].freeze,
7549
7698
  ].freeze
7550
7699
 
@@ -7560,6 +7709,10 @@ module OvirtSDK4
7560
7709
  # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
7561
7710
  # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
7562
7711
  #
7712
+ # @option opts [Boolean] :include_active If true return also active snapshots. If not specified active snapshots are not returned.
7713
+ #
7714
+ # @option opts [Boolean] :include_template If true return also template snapshots. If not specified template snapshots are not returned.
7715
+ #
7563
7716
  # @option opts [Integer] :max Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
7564
7717
  #
7565
7718
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
@@ -7618,20 +7771,20 @@ module OvirtSDK4
7618
7771
  #
7619
7772
  # Adds a new floating disk.
7620
7773
  #
7621
- # There are three types of disks that can be added - disk image, direct LUN and
7622
- # https://wiki.openstack.org/wiki/Cinder[Cinder] disk.
7774
+ # There are three types of disks that can be added - disk image, direct LUN and Managed Block disk.
7775
+ # link:https://wiki.openstack.org/wiki/Cinder[Cinder] integration has been replaced by Managed Block Storage.
7623
7776
  #
7624
7777
  # *Adding a new image disk:*
7625
7778
  #
7626
- # When creating a new floating image <<types/disk,Disk>>, the API requires the `storage_domain`, `provisioned_size`
7779
+ # When creating a new floating image xref:types-disk[Disk], the API requires the `storage_domain`, `provisioned_size`
7627
7780
  # and `format` attributes.
7628
7781
  #
7629
- # Note that block storage domains (i.e., storage domains with the <<types/storage_type, storage type>> of iSCSI or
7630
- # FCP) don't support the combination of the raw `format` with `sparse=true`, so `sparse=false` must be stated
7782
+ # Note that block storage domains (i.e. storage domains with the xref:types-storage_type[storage type] of iSCSI or
7783
+ # FCP) do not support the combination of the raw `format` with `sparse=true`, so `sparse=false` must be stated
7631
7784
  # explicitly.
7632
7785
  #
7633
7786
  # To create a new floating image disk with specified `provisioned_size`, `format` and `name` on a storage domain
7634
- # with an id `123`, send a request as follows:
7787
+ # with an id `123` and enabled for incremental backup, send a request as follows:
7635
7788
  #
7636
7789
  # [source]
7637
7790
  # ----
@@ -7649,6 +7802,7 @@ module OvirtSDK4
7649
7802
  # <name>mydisk</name>
7650
7803
  # <provisioned_size>1048576</provisioned_size>
7651
7804
  # <format>cow</format>
7805
+ # <backup>incremental</backup>
7652
7806
  # </disk>
7653
7807
  # ----
7654
7808
  #
@@ -7696,32 +7850,8 @@ module OvirtSDK4
7696
7850
  #
7697
7851
  # *Adding a new Cinder disk:*
7698
7852
  #
7699
- # To create a new floating Cinder disk, send a request as follows:
7700
- #
7701
- # [source]
7702
- # ----
7703
- # POST /ovirt-engine/api/disks
7704
- # ----
7705
- #
7706
- # With a request body as follows:
7707
- #
7708
- # [source,xml]
7709
- # ----
7710
- # <disk>
7711
- # <openstack_volume_type>
7712
- # <name>myceph</name>
7713
- # </openstack_volume_type>
7714
- # <storage_domains>
7715
- # <storage_domain>
7716
- # <name>cinderDomain</name>
7717
- # </storage_domain>
7718
- # </storage_domains>
7719
- # <provisioned_size>1073741824</provisioned_size>
7720
- # <interface>virtio</interface>
7721
- # <format>raw</format>
7722
- # </disk>
7723
- # ----
7724
- #
7853
+ # Cinder integration has been replaced by Managed Block Storage.
7854
+ # //TODO: Add an example for adding an MBS disk
7725
7855
  #
7726
7856
  # *Adding a floating disks in order to upload disk snapshots:*
7727
7857
  #
@@ -10138,6 +10268,73 @@ module OvirtSDK4
10138
10268
 
10139
10269
  end
10140
10270
 
10271
+ class ExternalTemplateImportsService < Service
10272
+
10273
+ ADD = [
10274
+ ].freeze
10275
+
10276
+ private_constant :ADD
10277
+
10278
+ #
10279
+ # This operation is used to import a template from external hypervisor.
10280
+ #
10281
+ # For example import of a template OVA can be facilitated using the following request:
10282
+ #
10283
+ # [source]
10284
+ # ----
10285
+ # POST /externaltemplateimports
10286
+ # ----
10287
+ #
10288
+ # With request body of type xref:types-external_template_import[ExternalTemplateImport], for example:
10289
+ #
10290
+ # [source,xml]
10291
+ # ----
10292
+ # <external_template_import>
10293
+ # <template>
10294
+ # <name>my_template</name>
10295
+ # </template>
10296
+ # <cluster id="2b18aca2-4469-11eb-9449-482ae35a5f83" />
10297
+ # <storage_domain id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
10298
+ # <url>ova:///mnt/ova/ova_template.ova</url>
10299
+ # <host id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
10300
+ # </external_template_import>
10301
+ # ----
10302
+ #
10303
+ # @param import [ExternalTemplateImport] The `import` to add.
10304
+ #
10305
+ # @param opts [Hash] Additional options.
10306
+ #
10307
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
10308
+ #
10309
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
10310
+ #
10311
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
10312
+ # given then the timeout set globally for the connection will be used.
10313
+ #
10314
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
10315
+ #
10316
+ # @return [ExternalTemplateImport]
10317
+ #
10318
+ def add(import, opts = {})
10319
+ internal_add(import, ExternalTemplateImport, ADD, opts)
10320
+ end
10321
+
10322
+ #
10323
+ # Locates the service corresponding to the given path.
10324
+ #
10325
+ # @param path [String] The path of the service.
10326
+ #
10327
+ # @return [Service] A reference to the service.
10328
+ #
10329
+ def service(path)
10330
+ if path.nil? || path == ''
10331
+ return self
10332
+ end
10333
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
10334
+ end
10335
+
10336
+ end
10337
+
10141
10338
  class ExternalVmImportsService < Service
10142
10339
 
10143
10340
  ADD = [
@@ -10155,7 +10352,7 @@ module OvirtSDK4
10155
10352
  # POST /externalvmimports
10156
10353
  # ----
10157
10354
  #
10158
- # With request body of type <<types/external_vm_import,ExternalVmImport>>, for example:
10355
+ # With request body of type xref:types-external_vm_import[ExternalVmImport], for example:
10159
10356
  #
10160
10357
  # [source,xml]
10161
10358
  # ----
@@ -11034,8 +11231,8 @@ module OvirtSDK4
11034
11231
  #
11035
11232
  # Removing bricks is a two-step process, where the data on bricks to be removed, is first migrated to remaining
11036
11233
  # bricks. Once migration is completed the removal of bricks is confirmed via the API
11037
- # <<services/gluster_bricks/methods/remove, remove>>. If at any point, the action needs to be cancelled
11038
- # <<services/gluster_bricks/methods/stop_migrate, stopmigrate>> has to be called.
11234
+ # xref:services-gluster_bricks-methods-remove[remove]. If at any point, the action needs to be cancelled
11235
+ # xref:services-gluster_bricks-methods-stop_migrate[stopmigrate] has to be called.
11039
11236
  #
11040
11237
  # For instance, to delete a brick from a gluster volume with id `123`, send a request:
11041
11238
  #
@@ -11058,7 +11255,7 @@ module OvirtSDK4
11058
11255
  # ----
11059
11256
  #
11060
11257
  # The migration process can be tracked from the job id returned from the API using
11061
- # <<services/job/methods/get, job>> and steps in job using <<services/step/methods/get, step>>
11258
+ # xref:services-job-methods-get[job] and steps in job using xref:services-step-methods-get[step]
11062
11259
  #
11063
11260
  # @param opts [Hash] Additional options.
11064
11261
  #
@@ -11091,7 +11288,7 @@ module OvirtSDK4
11091
11288
  # Removes bricks from gluster volume.
11092
11289
  #
11093
11290
  # The recommended way to remove bricks without data loss is to first migrate the data using
11094
- # <<services/gluster_bricks/methods/stop_migrate, stopmigrate>> and then removing them. If migrate was not called on
11291
+ # xref:services-gluster_bricks-methods-stop_migrate[stopmigrate] and then removing them. If migrate was not called on
11095
11292
  # bricks prior to remove, the bricks are removed without data migration which may lead to data loss.
11096
11293
  #
11097
11294
  # For example, to delete the bricks from gluster volume `123`, send a request like this:
@@ -11167,7 +11364,7 @@ module OvirtSDK4
11167
11364
  # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
11168
11365
  #
11169
11366
  # @option opts [Array<GlusterBrick>] :bricks List of bricks for which data migration needs to be stopped. This list should match the arguments passed to
11170
- # <<services/gluster_bricks/methods/migrate, migrate>>.
11367
+ # xref:services-gluster_bricks-methods-migrate[migrate].
11171
11368
  #
11172
11369
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
11173
11370
  #
@@ -11886,6 +12083,55 @@ module OvirtSDK4
11886
12083
 
11887
12084
  end
11888
12085
 
12086
+ class HostCpuUnitsService < Service
12087
+
12088
+ LIST = [
12089
+ [:follow, String].freeze,
12090
+ ].freeze
12091
+
12092
+ private_constant :LIST
12093
+
12094
+ #
12095
+ # Returns the List of all host's CPUs with detailed information
12096
+ # about the topology (socket, core) and with information
12097
+ # about the current CPU pinning.
12098
+ #
12099
+ # @param opts [Hash] Additional options.
12100
+ #
12101
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
12102
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
12103
+ #
12104
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
12105
+ #
12106
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
12107
+ #
12108
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
12109
+ # given then the timeout set globally for the connection will be used.
12110
+ #
12111
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
12112
+ #
12113
+ # @return [Array<HostCpuUnit>]
12114
+ #
12115
+ def list(opts = {})
12116
+ internal_get(LIST, opts)
12117
+ end
12118
+
12119
+ #
12120
+ # Locates the service corresponding to the given path.
12121
+ #
12122
+ # @param path [String] The path of the service.
12123
+ #
12124
+ # @return [Service] A reference to the service.
12125
+ #
12126
+ def service(path)
12127
+ if path.nil? || path == ''
12128
+ return self
12129
+ end
12130
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
12131
+ end
12132
+
12133
+ end
12134
+
11889
12135
  class HostDeviceService < Service
11890
12136
 
11891
12137
  GET = [
@@ -12421,6 +12667,7 @@ module OvirtSDK4
12421
12667
  ADD = [
12422
12668
  [:activate, TrueClass].freeze,
12423
12669
  [:deploy_hosted_engine, TrueClass].freeze,
12670
+ [:reboot, TrueClass].freeze,
12424
12671
  [:undeploy_hosted_engine, TrueClass].freeze,
12425
12672
  ].freeze
12426
12673
 
@@ -12504,6 +12751,8 @@ module OvirtSDK4
12504
12751
  # as `true`, i.e., deploy the hosted engine components. Omitting this parameter equals `false`, and
12505
12752
  # the host performs no operation in the hosted engine area.
12506
12753
  #
12754
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
12755
+ #
12507
12756
  # @option opts [Boolean] :undeploy_hosted_engine When set to `true`, this host un-deploys the hosted engine components and does not
12508
12757
  # function as part of the High Availability cluster. A missing value is treated as `true`, i.e., un-deploy.
12509
12758
  # Omitting this parameter equals `false` and the host performs no operation in the hosted engine area.
@@ -12636,6 +12885,7 @@ module OvirtSDK4
12636
12885
  ADD_USING_ROOT_PASSWORD = [
12637
12886
  [:activate, TrueClass].freeze,
12638
12887
  [:deploy_hosted_engine, TrueClass].freeze,
12888
+ [:reboot, TrueClass].freeze,
12639
12889
  [:undeploy_hosted_engine, TrueClass].freeze,
12640
12890
  ].freeze
12641
12891
 
@@ -12657,6 +12907,8 @@ module OvirtSDK4
12657
12907
  # as `true`, i.e., deploy the hosted engine components. Omitting this parameter equals `false`, and
12658
12908
  # the host performs no operation in the hosted engine area.
12659
12909
  #
12910
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
12911
+ #
12660
12912
  # @option opts [Boolean] :undeploy_hosted_engine When set to `true`, this host un-deploys the hosted engine components and does not
12661
12913
  # function as part of the High Availability cluster. A missing value is treated as `true`, i.e., un-deploy.
12662
12914
  # Omitting this parameter equals `false` and the host performs no operation in the hosted engine area.
@@ -12679,13 +12931,14 @@ module OvirtSDK4
12679
12931
  ADD_USING_SSH = [
12680
12932
  [:activate, TrueClass].freeze,
12681
12933
  [:deploy_hosted_engine, TrueClass].freeze,
12934
+ [:reboot, TrueClass].freeze,
12682
12935
  [:undeploy_hosted_engine, TrueClass].freeze,
12683
12936
  ].freeze
12684
12937
 
12685
12938
  private_constant :ADD_USING_SSH
12686
12939
 
12687
12940
  #
12688
- # Add a new host to the system providing the ssh password or fingerprint.
12941
+ # Add a new host to the system providing the ssh password, fingerprint or public key.
12689
12942
  #
12690
12943
  # @param host [Host] The host definition with which the new host is created is passed as a parameter, and the newly created host
12691
12944
  # is returned.
@@ -12700,6 +12953,8 @@ module OvirtSDK4
12700
12953
  # as `true`, i.e., deploy the hosted engine components. Omitting this parameter equals `false`, and
12701
12954
  # the host performs no operation in the hosted engine area.
12702
12955
  #
12956
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
12957
+ #
12703
12958
  # @option opts [Boolean] :undeploy_hosted_engine When set to `true`, this host un-deploys the hosted engine components and does not
12704
12959
  # function as part of the High Availability cluster. A missing value is treated as `true`, i.e., un-deploy.
12705
12960
  # Omitting this parameter equals `false` and the host performs no operation in the hosted engine area.
@@ -15366,6 +15621,15 @@ module OvirtSDK4
15366
15621
  internal_update(pool, MacPool, UPDATE, opts)
15367
15622
  end
15368
15623
 
15624
+ #
15625
+ # Returns a reference to the service that manages the permissions that are associated with the MacPool.
15626
+ #
15627
+ # @return [AssignedPermissionsService] A reference to `permissions` service.
15628
+ #
15629
+ def permissions_service
15630
+ @permissions_service ||= AssignedPermissionsService.new(self, 'permissions')
15631
+ end
15632
+
15369
15633
  #
15370
15634
  # Locates the service corresponding to the given path.
15371
15635
  #
@@ -15377,6 +15641,12 @@ module OvirtSDK4
15377
15641
  if path.nil? || path == ''
15378
15642
  return self
15379
15643
  end
15644
+ if path == 'permissions'
15645
+ return permissions_service
15646
+ end
15647
+ if path.start_with?('permissions/')
15648
+ return permissions_service.service(path[12..-1])
15649
+ end
15380
15650
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
15381
15651
  end
15382
15652
 
@@ -15665,9 +15935,9 @@ module OvirtSDK4
15665
15935
  # ----
15666
15936
  #
15667
15937
  # NOTE: To remove an external logical network, the network has to be removed directly from its provider by
15668
- # https://developer.openstack.org/api-ref/network[OpenStack Networking API].
15938
+ # link:https://developer.openstack.org/api-ref/network[OpenStack Networking API].
15669
15939
  # The entity representing the external network inside {product-name} is removed automatically,
15670
- # if <<types/open_stack_network_provider/attributes/auto_sync,`auto_sync`>> is enabled for the provider,
15940
+ # if xref:types-open_stack_network_provider-attributes-auto_sync[`auto_sync`] is enabled for the provider,
15671
15941
  # otherwise the entity has to be removed using this method.
15672
15942
  #
15673
15943
  # @param opts [Hash] Additional options.
@@ -17243,7 +17513,7 @@ module OvirtSDK4
17243
17513
  # using the `id` or `name` attributes. The rest of
17244
17514
  # the attributes will be ignored.
17245
17515
  #
17246
- # NOTE: If <<types/open_stack_network_provider/attributes/auto_sync,`auto_sync`>> is
17516
+ # NOTE: If xref:types-open_stack_network_provider-attributes-auto_sync[`auto_sync`] is
17247
17517
  # enabled for the provider, the network might be imported automatically. To
17248
17518
  # prevent this, automatic import can be disabled by setting the `auto_sync` to false,
17249
17519
  # and enabling it again after importing the network.
@@ -18771,7 +19041,7 @@ module OvirtSDK4
18771
19041
  private_constant :ADD
18772
19042
 
18773
19043
  #
18774
- # Adds a permit to the role. The permit name can be retrieved from the <<services/cluster_levels>> service.
19044
+ # Adds a permit to the role. The permit name can be retrieved from the xref:services-cluster_levels[cluster_levels] service.
18775
19045
  #
18776
19046
  # For example to assign a permit `create_vm` to the role with id `123` send a request like this:
18777
19047
  #
@@ -19931,7 +20201,7 @@ module OvirtSDK4
19931
20201
  #
19932
20202
  # Updates a role. You are allowed to update `name`, `description` and `administrative` attributes after role is
19933
20203
  # created. Within this endpoint you can't add or remove roles permits you need to use
19934
- # <<services/permits, service>> that manages permits of role.
20204
+ # xref:services-permits[service] that manages permits of role.
19935
20205
  #
19936
20206
  # For example to update role's `name`, `description` and `administrative` attributes send a request like this:
19937
20207
  #
@@ -20623,6 +20893,7 @@ module OvirtSDK4
20623
20893
  # ----
20624
20894
  # <action/>
20625
20895
  # ----
20896
+ # NOTE: Confirm that the commit operation is finished and the virtual machine is down before running the virtual machine.
20626
20897
  #
20627
20898
  # @param opts [Hash] Additional options.
20628
20899
  #
@@ -21124,8 +21395,8 @@ module OvirtSDK4
21124
21395
  #
21125
21396
  # [IMPORTANT]
21126
21397
  # ====
21127
- # When a snapshot is created the default value for the <<types/snapshot/attributes/persist_memorystate,
21128
- # persist_memorystate>> attribute is `true`. That means that the content of the memory of the virtual
21398
+ # When a snapshot is created, the default value for the
21399
+ # xref:types-snapshot-attributes-persist_memorystate[persist_memorystate] attribute is `true`. That means that the content of the memory of the virtual
21129
21400
  # machine will be included in the snapshot, and it also means that the virtual machine will be paused
21130
21401
  # for a longer time. That can negatively affect applications that are very sensitive to timing (NTP
21131
21402
  # servers, for example). In those cases make sure that you set the attribute to `false`:
@@ -21298,7 +21569,10 @@ module OvirtSDK4
21298
21569
  private_constant :UPDATE
21299
21570
 
21300
21571
  #
21301
- # Updates the `key`.
21572
+ # Replaces the key with a new resource.
21573
+ #
21574
+ # IMPORTANT: Since version 4.4.8 of the engine this operation is deprecated, and preserved only for backwards
21575
+ # compatibility. It will be removed in the future. Instead please use DELETE followed by xref:services-ssh_public_keys-methods-add[add operation].
21302
21576
  #
21303
21577
  # @param key [SshPublicKey] The `key` to update.
21304
21578
  # @param opts [Hash] Additional options.
@@ -22134,7 +22408,7 @@ module OvirtSDK4
22134
22408
  # ----
22135
22409
  #
22136
22410
  # Note that this operation is only applicable to block storage domains (i.e., storage domains with the
22137
- # <<types/storage_type, storage type> of iSCSI or FCP).
22411
+ # xref:types-storage_type[storage type] of iSCSI or FCP).
22138
22412
  #
22139
22413
  # @param opts [Hash] Additional options.
22140
22414
  #
@@ -22284,7 +22558,7 @@ module OvirtSDK4
22284
22558
  #
22285
22559
  # Updates a storage domain.
22286
22560
  #
22287
- # Not all of the <<types/storage_domain,StorageDomain>>'s attributes are updatable after creation. Those that can be
22561
+ # Not all of the xref:types-storage_domain[StorageDomain]'s attributes are updatable after creation. Those that can be
22288
22562
  # updated are: `name`, `description`, `comment`, `warning_low_space_indicator`, `critical_space_action_blocker` and
22289
22563
  # `wipe_after_delete.` (Note that changing the `wipe_after_delete` attribute will not change the wipe after delete
22290
22564
  # property of disks that already exist).
@@ -22658,7 +22932,7 @@ module OvirtSDK4
22658
22932
  # Copies a disk to the specified storage domain.
22659
22933
  #
22660
22934
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22661
- # compatibility. It will be removed in the future. To copy a disk use the <<services/disk/methods/copy, copy>>
22935
+ # compatibility. It will be removed in the future. To copy a disk use the xref:services-disk-methods-copy[copy]
22662
22936
  # operation of the service that manages that disk.
22663
22937
  #
22664
22938
  # @param opts [Hash] Additional options.
@@ -22690,7 +22964,7 @@ module OvirtSDK4
22690
22964
  # Exports a disk to an export storage domain.
22691
22965
  #
22692
22966
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22693
- # compatibility. It will be removed in the future. To export a disk use the <<services/disk/methods/export, export>>
22967
+ # compatibility. It will be removed in the future. To export a disk use the xref:services-disk-methods-export[export]
22694
22968
  # operation of the service that manages that disk.
22695
22969
  #
22696
22970
  # @param opts [Hash] Additional options.
@@ -22751,7 +23025,7 @@ module OvirtSDK4
22751
23025
  # Moves a disk to another storage domain.
22752
23026
  #
22753
23027
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22754
- # compatibility. It will be removed in the future. To move a disk use the <<services/disk/methods/move, move>>
23028
+ # compatibility. It will be removed in the future. To move a disk use the xref:services-disk-methods-move[move]
22755
23029
  # operation of the service that manages that disk.
22756
23030
  #
22757
23031
  # @param opts [Hash] Additional options.
@@ -22814,7 +23088,7 @@ module OvirtSDK4
22814
23088
  # Removes a disk.
22815
23089
  #
22816
23090
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22817
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
23091
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
22818
23092
  # operation of the service that manages that disk.
22819
23093
  #
22820
23094
  # @param opts [Hash] Additional options.
@@ -22841,7 +23115,7 @@ module OvirtSDK4
22841
23115
  # Sparsify the disk.
22842
23116
  #
22843
23117
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22844
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
23118
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
22845
23119
  # operation of the service that manages that disk.
22846
23120
  #
22847
23121
  # @param opts [Hash] Additional options.
@@ -22869,7 +23143,7 @@ module OvirtSDK4
22869
23143
  #
22870
23144
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22871
23145
  # compatibility. It will be removed in the future. To update a disk use the
22872
- # <<services/disk/methods/update, update>> operation of the service that manages that disk.
23146
+ # xref:services-disk-methods-update[update] operation of the service that manages that disk.
22873
23147
  #
22874
23148
  # @param disk [Disk] The update to apply to the disk.
22875
23149
  # @param opts [Hash] Additional options.
@@ -22947,9 +23221,9 @@ module OvirtSDK4
22947
23221
  # Adds or registers a disk.
22948
23222
  #
22949
23223
  # IMPORTANT: Since version 4.2 of the {engine-name} this operation is deprecated, and preserved only for backwards
22950
- # compatibility. It will be removed in the future. To add a new disk use the <<services/disks/methods/add, add>>
23224
+ # compatibility. It will be removed in the future. To add a new disk use the xref:services-disks-methods-add[add]
22951
23225
  # operation of the service that manages the disks of the system. To register an unregistered disk use the
22952
- # <<services/attached_storage_domain_disk/methods/register, register>> operation of the service that manages
23226
+ # xref:services-attached_storage_domain_disk-methods-register[register] operation of the service that manages
22953
23227
  # that disk.
22954
23228
  #
22955
23229
  # @param disk [Disk] The disk to add or register.
@@ -23402,7 +23676,7 @@ module OvirtSDK4
23402
23676
  #
23403
23677
  # WARNING: Please note that this attribute has been deprecated since version 4.2.1 of the engine, and preserved only for backward
23404
23678
  # compatibility. It will be removed in the future. To specify `vnic_profile_mappings` use the `vnic_profile_mappings`
23405
- # attribute inside the <<types/registration_configuration, RegistrationConfiguration>> type.
23679
+ # attribute inside the xref:types-registration_configuration[RegistrationConfiguration] type.
23406
23680
  #
23407
23681
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
23408
23682
  #
@@ -23752,7 +24026,7 @@ module OvirtSDK4
23752
24026
  #
23753
24027
  # WARNING: Please note that this attribute has been deprecated since version 4.2.1 of the engine, and preserved only for backward
23754
24028
  # compatibility. It will be removed in the future. To specify `vnic_profile_mappings` use the `vnic_profile_mappings`
23755
- # attribute inside the <<types/registration_configuration, RegistrationConfiguration>> type.
24029
+ # attribute inside the xref:types-registration_configuration[RegistrationConfiguration] type.
23756
24030
  #
23757
24031
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
23758
24032
  #
@@ -24047,7 +24321,7 @@ module OvirtSDK4
24047
24321
  #
24048
24322
  # Adds a new storage domain.
24049
24323
  #
24050
- # Creation of a new <<types/storage_domain,StorageDomain>> requires the `name`, `type`, `host`, and `storage`
24324
+ # Creation of a new xref:types-storage_domain[StorageDomain] requires the `name`, `type`, `host`, and `storage`
24051
24325
  # attributes. Identify the `host` attribute with the `id` or `name` attributes. In {product-name} 3.6 and
24052
24326
  # later you can enable the wipe after delete option by default on the storage domain. To configure this, specify
24053
24327
  # `wipe_after_delete` in the POST request. This option can be edited after the domain is created, but doing so will
@@ -25395,6 +25669,15 @@ module OvirtSDK4
25395
25669
  @external_host_providers_service ||= ExternalHostProvidersService.new(self, 'externalhostproviders')
25396
25670
  end
25397
25671
 
25672
+ #
25673
+ # Reference to service facilitating import of external templates.
25674
+ #
25675
+ # @return [ExternalTemplateImportsService] A reference to `external_template_imports` service.
25676
+ #
25677
+ def external_template_imports_service
25678
+ @external_template_imports_service ||= ExternalTemplateImportsService.new(self, 'externaltemplateimports')
25679
+ end
25680
+
25398
25681
  #
25399
25682
  # Reference to service facilitating import of external virtual machines.
25400
25683
  #
@@ -25725,6 +26008,12 @@ module OvirtSDK4
25725
26008
  if path.start_with?('externalhostproviders/')
25726
26009
  return external_host_providers_service.service(path[22..-1])
25727
26010
  end
26011
+ if path == 'externaltemplateimports'
26012
+ return external_template_imports_service
26013
+ end
26014
+ if path.start_with?('externaltemplateimports/')
26015
+ return external_template_imports_service.service(path[24..-1])
26016
+ end
25728
26017
  if path == 'externalvmimports'
25729
26018
  return external_vm_imports_service
25730
26019
  end
@@ -25909,37 +26198,46 @@ module OvirtSDK4
25909
26198
  #
25910
26199
  # Get the values of specific configuration option.
25911
26200
  #
25912
- # For example to retrieve the values of configuration option `MigrationPoliciesSupported` send a request like this:
26201
+ # For example to retrieve the values of configuration option `MigrationPolicies` send a request like this:
25913
26202
  #
25914
26203
  # [source]
25915
26204
  # ----
25916
- # GET /ovirt-engine/api/options/MigrationPoliciesSupported
26205
+ # GET /ovirt-engine/api/options/MigrationPolicies
25917
26206
  # ----
25918
26207
  #
25919
26208
  # The response to that request will be the following:
25920
26209
  #
25921
26210
  # [source,xml]
25922
26211
  # ----
25923
- # <system_option href="/ovirt-engine/api/options/MigrationPoliciesSupported" id="MigrationPoliciesSupported">
25924
- # <name>MigrationPoliciesSupported</name>
25925
- # <values>
25926
- # <system_option_value>
25927
- # <value>true</value>
25928
- # <version>4.0</version>
25929
- # </system_option_value>
25930
- # <system_option_value>
25931
- # <value>true</value>
25932
- # <version>4.1</version>
25933
- # </system_option_value>
25934
- # <system_option_value>
25935
- # <value>true</value>
25936
- # <version>4.2</version>
25937
- # </system_option_value>
25938
- # <system_option_value>
25939
- # <value>false</value>
25940
- # <version>3.6</version>
25941
- # </system_option_value>
25942
- # </values>
26212
+ # <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
26213
+ # <system_option href="/ovirt-engine/api/options/MigrationPolicies" id="MigrationPolicies">
26214
+ # <name>MigrationPolicies</name>
26215
+ # <values>
26216
+ # <system_option_value>
26217
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26218
+ # <version>4.2</version>
26219
+ # </system_option_value>
26220
+ # <system_option_value>
26221
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26222
+ # <version>4.3</version>
26223
+ # </system_option_value>
26224
+ # <system_option_value>
26225
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26226
+ # <version>4.4</version>
26227
+ # </system_option_value>
26228
+ # <system_option_value>
26229
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26230
+ # <version>4.5</version>
26231
+ # </system_option_value>
26232
+ # <system_option_value>
26233
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26234
+ # <version>4.6</version>
26235
+ # </system_option_value>
26236
+ # <system_option_value>
26237
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26238
+ # <version>4.7</version>
26239
+ # </system_option_value>
26240
+ # </values>
25943
26241
  # </system_option>
25944
26242
  # ----
25945
26243
  #
@@ -25962,26 +26260,26 @@ module OvirtSDK4
25962
26260
  # should be returned.
25963
26261
  # If this parameter isn't used then all the versions will be returned.
25964
26262
  #
25965
- # For example, to get the value of the `MigrationPoliciesSupported` option but only for version `4.2` send
26263
+ # For example, to get the value of the `MigrationPolicies` option but only for version `4.2` send
25966
26264
  # a request like this:
25967
26265
  #
25968
26266
  # [source]
25969
26267
  # ----
25970
- # GET /ovirt-engine/api/options/MigrationPoliciesSupported?version=4.2
26268
+ # GET /ovirt-engine/api/options/MigrationPolicies?version=4.2
25971
26269
  # ----
25972
26270
  #
25973
26271
  # The response to that request will be like this:
25974
26272
  #
25975
26273
  # [source,xml]
25976
26274
  # ----
25977
- # <system_option href="/ovirt-engine/api/options/MigrationPoliciesSupported" id="MigrationPoliciesSupported">
25978
- # <name>MigrationPoliciesSupported</name>
25979
- # <values>
25980
- # <system_option_value>
25981
- # <value>true</value>
25982
- # <version>4.2</version>
25983
- # </system_option_value>
25984
- # </values>
26275
+ # <system_option href="/ovirt-engine/api/options/MigrationPolicies" id="MigrationPolicies">
26276
+ # <name>MigrationPolicies</name>
26277
+ # <values>
26278
+ # <system_option_value>
26279
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26280
+ # <version>4.2</version>
26281
+ # </system_option_value>
26282
+ # </values>
25985
26283
  # </system_option>
25986
26284
  # ----
25987
26285
  #
@@ -26797,6 +27095,27 @@ module OvirtSDK4
26797
27095
  # </action>
26798
27096
  # ----
26799
27097
  #
27098
+ # Since version 4.2 of the engine it is also possible to export a template as a virtual appliance (OVA).
27099
+ # For example, to export template `123` as an OVA file named `myvm.ova` that is placed in the directory `/home/ovirt/` on host `myhost`:
27100
+ #
27101
+ # [source]
27102
+ # ----
27103
+ # POST /ovirt-engine/api/templates/123/export
27104
+ # ----
27105
+ #
27106
+ # With a request body like this:
27107
+ #
27108
+ # [source,xml]
27109
+ # ----
27110
+ # <action>
27111
+ # <host>
27112
+ # <name>myhost</name>
27113
+ # </host>
27114
+ # <directory>/home/ovirt</directory>
27115
+ # <filename>myvm.ova</filename>
27116
+ # </action>
27117
+ # ----
27118
+ #
26800
27119
  # @param opts [Hash] Additional options.
26801
27120
  #
26802
27121
  # @option opts [Boolean] :exclusive Indicates if the existing templates with the same name should be overwritten.
@@ -27045,6 +27364,15 @@ module OvirtSDK4
27045
27364
  @graphics_consoles_service ||= TemplateGraphicsConsolesService.new(self, 'graphicsconsoles')
27046
27365
  end
27047
27366
 
27367
+ #
27368
+ # Reference to the service that manages mediated devices associated with the template.
27369
+ #
27370
+ # @return [TemplateMediatedDevicesService] A reference to `mediated_devices` service.
27371
+ #
27372
+ def mediated_devices_service
27373
+ @mediated_devices_service ||= TemplateMediatedDevicesService.new(self, 'mediateddevices')
27374
+ end
27375
+
27048
27376
  #
27049
27377
  # Returns a reference to the service that manages the NICs that are associated with the template.
27050
27378
  #
@@ -27110,6 +27438,12 @@ module OvirtSDK4
27110
27438
  if path.start_with?('graphicsconsoles/')
27111
27439
  return graphics_consoles_service.service(path[17..-1])
27112
27440
  end
27441
+ if path == 'mediateddevices'
27442
+ return mediated_devices_service
27443
+ end
27444
+ if path.start_with?('mediateddevices/')
27445
+ return mediated_devices_service.service(path[16..-1])
27446
+ end
27113
27447
  if path == 'nics'
27114
27448
  return nics_service
27115
27449
  end
@@ -27776,6 +28110,238 @@ module OvirtSDK4
27776
28110
 
27777
28111
  end
27778
28112
 
28113
+ class TemplateMediatedDeviceService < Service
28114
+
28115
+ GET = [
28116
+ [:follow, String].freeze,
28117
+ ].freeze
28118
+
28119
+ private_constant :GET
28120
+
28121
+ #
28122
+ # Gets mediated device configuration of the template.
28123
+ #
28124
+ # @param opts [Hash] Additional options.
28125
+ #
28126
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
28127
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
28128
+ #
28129
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28130
+ #
28131
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28132
+ #
28133
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28134
+ # given then the timeout set globally for the connection will be used.
28135
+ #
28136
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28137
+ #
28138
+ # @return [VmMediatedDevice]
28139
+ #
28140
+ def get(opts = {})
28141
+ internal_get(GET, opts)
28142
+ end
28143
+
28144
+ REMOVE = [
28145
+ [:async, TrueClass].freeze,
28146
+ ].freeze
28147
+
28148
+ private_constant :REMOVE
28149
+
28150
+ #
28151
+ # Remove the mediated device from the template.
28152
+ #
28153
+ # @param opts [Hash] Additional options.
28154
+ #
28155
+ # @option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
28156
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28157
+ #
28158
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28159
+ #
28160
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28161
+ # given then the timeout set globally for the connection will be used.
28162
+ #
28163
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28164
+ #
28165
+ def remove(opts = {})
28166
+ internal_remove(REMOVE, opts)
28167
+ end
28168
+
28169
+ UPDATE = [
28170
+ [:async, TrueClass].freeze,
28171
+ ].freeze
28172
+
28173
+ private_constant :UPDATE
28174
+
28175
+ #
28176
+ # Updates the information about the mediated device.
28177
+ #
28178
+ # You can update the information using `specParams` element.
28179
+ #
28180
+ # For example, to update a mediated device, send a request like this:
28181
+ #
28182
+ # [source]
28183
+ # ----
28184
+ # PUT /ovirt-engine/api/templates/123/mediateddevices/00000000-0000-0000-0000-000000000000
28185
+ # <vm_mediated_device>
28186
+ # <spec_params>
28187
+ # <property>
28188
+ # <name>mdevType</name>
28189
+ # <value>nvidia-11</value>
28190
+ # </property>
28191
+ # </spec_params>
28192
+ # </vm_mediated_device>
28193
+ # ----
28194
+ #
28195
+ # with response body:
28196
+ #
28197
+ # [source,xml]
28198
+ # ----
28199
+ # <vm_mediated_device href="/ovirt-engine/api/templates/123/mediateddevices/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
28200
+ # <template href="/ovirt-engine/api/templates/123" id="123"/>
28201
+ # <spec_params>
28202
+ # <property>
28203
+ # <name>mdevType</name>
28204
+ # <value>nvidia-11</value>
28205
+ # </property>
28206
+ # </spec_params>
28207
+ # </vm_mediated_device>
28208
+ # ----
28209
+ #
28210
+ # @param devices [VmMediatedDevice] The information about the mediated device.
28211
+ #
28212
+ # The request data must contain `specParams` properties.
28213
+ # The response data contains complete information about the
28214
+ # updated mediated device.
28215
+ # @param opts [Hash] Additional options.
28216
+ #
28217
+ # @option opts [Boolean] :async Indicates if the update should be performed asynchronously.
28218
+ #
28219
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28220
+ #
28221
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28222
+ #
28223
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28224
+ # given then the timeout set globally for the connection will be used.
28225
+ #
28226
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28227
+ #
28228
+ # @return [VmMediatedDevice]
28229
+ #
28230
+ def update(devices, opts = {})
28231
+ internal_update(devices, VmMediatedDevice, UPDATE, opts)
28232
+ end
28233
+
28234
+ #
28235
+ # Locates the service corresponding to the given path.
28236
+ #
28237
+ # @param path [String] The path of the service.
28238
+ #
28239
+ # @return [Service] A reference to the service.
28240
+ #
28241
+ def service(path)
28242
+ if path.nil? || path == ''
28243
+ return self
28244
+ end
28245
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
28246
+ end
28247
+
28248
+ end
28249
+
28250
+ class TemplateMediatedDevicesService < Service
28251
+
28252
+ ADD = [
28253
+ ].freeze
28254
+
28255
+ private_constant :ADD
28256
+
28257
+ #
28258
+ # Add new mediated device to the template.
28259
+ #
28260
+ # @param device [VmMediatedDevice] The `device` to add.
28261
+ #
28262
+ # @param opts [Hash] Additional options.
28263
+ #
28264
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28265
+ #
28266
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28267
+ #
28268
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28269
+ # given then the timeout set globally for the connection will be used.
28270
+ #
28271
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28272
+ #
28273
+ # @return [VmMediatedDevice]
28274
+ #
28275
+ def add(device, opts = {})
28276
+ internal_add(device, VmMediatedDevice, ADD, opts)
28277
+ end
28278
+
28279
+ LIST = [
28280
+ [:follow, String].freeze,
28281
+ [:max, Integer].freeze,
28282
+ ].freeze
28283
+
28284
+ private_constant :LIST
28285
+
28286
+ #
28287
+ # Lists all the configured mediated devices of the template.
28288
+ #
28289
+ # The order of the returned list of mediated devices isn't guaranteed.
28290
+ #
28291
+ # @param opts [Hash] Additional options.
28292
+ #
28293
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
28294
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
28295
+ #
28296
+ # @option opts [Integer] :max Sets the maximum number of mediated devices to return.
28297
+ # If not specified all the mediated devices are returned.
28298
+ #
28299
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28300
+ #
28301
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28302
+ #
28303
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28304
+ # given then the timeout set globally for the connection will be used.
28305
+ #
28306
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28307
+ #
28308
+ # @return [Array<VmMediatedDevice>]
28309
+ #
28310
+ def list(opts = {})
28311
+ internal_get(LIST, opts)
28312
+ end
28313
+
28314
+ #
28315
+ # Returns a reference to the service that manages a mediated device of a template.
28316
+ #
28317
+ # @param id [String] The identifier of the `device`.
28318
+ #
28319
+ # @return [TemplateMediatedDeviceService] A reference to the `device` service.
28320
+ #
28321
+ def device_service(id)
28322
+ TemplateMediatedDeviceService.new(self, id)
28323
+ end
28324
+
28325
+ #
28326
+ # Locates the service corresponding to the given path.
28327
+ #
28328
+ # @param path [String] The path of the service.
28329
+ #
28330
+ # @return [Service] A reference to the service.
28331
+ #
28332
+ def service(path)
28333
+ if path.nil? || path == ''
28334
+ return self
28335
+ end
28336
+ index = path.index('/')
28337
+ if index.nil?
28338
+ return device_service(path)
28339
+ end
28340
+ return device_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
28341
+ end
28342
+
28343
+ end
28344
+
27779
28345
  class TemplateNicService < Service
27780
28346
 
27781
28347
  GET = [
@@ -28215,7 +28781,7 @@ module OvirtSDK4
28215
28781
  # original virtual machine. To do so use the `vm.disk_attachments` attribute, specifying the identifier of the disk
28216
28782
  # of the original virtual machine and the characteristics that you want to change. For example, if the original
28217
28783
  # virtual machine has a disk with the identifier `456`, and, for that disk, you want to change the name to `mydisk`
28218
- # the format to <<types/disk_format, _Copy On Write_>> and make it <<types/disk, sparse>>, send a request body like
28784
+ # the format to xref:types-disk_format[_Copy On Write_] and make it xref:types-disk[sparse], send a request body like
28219
28785
  # this:
28220
28786
  #
28221
28787
  # [source,xml]
@@ -28885,12 +29451,16 @@ module OvirtSDK4
28885
29451
  # <user_options>
28886
29452
  # <property>
28887
29453
  # <name>test</name>
28888
- # <value>test1</value>
29454
+ # <value>["any","JSON"]</value>
28889
29455
  # </property>
28890
29456
  # </user_options>
28891
29457
  # </user>
28892
29458
  # ----
28893
29459
  #
29460
+ # IMPORTANT: Since version 4.4.5 of the engine this operation is deprecated, and preserved only for backwards
29461
+ # compatibility. It will be removed in the future. Please use the xref:services-user_option[options]
29462
+ # endpoint instead.
29463
+ #
28894
29464
  # @param user [User] The `user` to update.
28895
29465
  # @param opts [Hash] Additional options.
28896
29466
  #
@@ -28927,6 +29497,15 @@ module OvirtSDK4
28927
29497
  @groups_service ||= DomainUserGroupsService.new(self, 'groups')
28928
29498
  end
28929
29499
 
29500
+ #
29501
+ # Locates the `options` service.
29502
+ #
29503
+ # @return [UserOptionsService] A reference to `options` service.
29504
+ #
29505
+ def options_service
29506
+ @options_service ||= UserOptionsService.new(self, 'options')
29507
+ end
29508
+
28930
29509
  #
28931
29510
  # Locates the `permissions` service.
28932
29511
  #
@@ -28986,6 +29565,12 @@ module OvirtSDK4
28986
29565
  if path.start_with?('groups/')
28987
29566
  return groups_service.service(path[7..-1])
28988
29567
  end
29568
+ if path == 'options'
29569
+ return options_service
29570
+ end
29571
+ if path.start_with?('options/')
29572
+ return options_service.service(path[8..-1])
29573
+ end
28989
29574
  if path == 'permissions'
28990
29575
  return permissions_service
28991
29576
  end
@@ -29015,6 +29600,219 @@ module OvirtSDK4
29015
29600
 
29016
29601
  end
29017
29602
 
29603
+ class UserOptionService < Service
29604
+
29605
+ GET = [
29606
+ ].freeze
29607
+
29608
+ private_constant :GET
29609
+
29610
+ #
29611
+ # Returns a user profile property of type JSON.
29612
+ #
29613
+ # Example request(for user with identifier `123` and option with identifier `456`):
29614
+ #
29615
+ # [source]
29616
+ # ----
29617
+ # GET /ovirt-engine/api/users/123/options/456
29618
+ # ----
29619
+ #
29620
+ # The result will be the following XML document:
29621
+ #
29622
+ # [source,xml]
29623
+ # ----
29624
+ # <user_option href="/ovirt-engine/api/users/123/options/456" id="456">
29625
+ # <name>SomeName</name>
29626
+ # <content>["any", "JSON"]</content>
29627
+ # <user href="/ovirt-engine/api/users/123" id="123"/>
29628
+ # </user_option>
29629
+ # ----
29630
+ #
29631
+ # @param opts [Hash] Additional options.
29632
+ #
29633
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29634
+ #
29635
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29636
+ #
29637
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29638
+ # given then the timeout set globally for the connection will be used.
29639
+ #
29640
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29641
+ #
29642
+ # @return [UserOption]
29643
+ #
29644
+ def get(opts = {})
29645
+ internal_get(GET, opts)
29646
+ end
29647
+
29648
+ REMOVE = [
29649
+ ].freeze
29650
+
29651
+ private_constant :REMOVE
29652
+
29653
+ #
29654
+ # Deletes an existing property of type JSON.
29655
+ #
29656
+ # Example request(for user with identifier `123` and option with identifier `456`):
29657
+ #
29658
+ # [source]
29659
+ # ----
29660
+ # DELETE /ovirt-engine/api/users/123/options/456
29661
+ # ----
29662
+ #
29663
+ # @param opts [Hash] Additional options.
29664
+ #
29665
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29666
+ #
29667
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29668
+ #
29669
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29670
+ # given then the timeout set globally for the connection will be used.
29671
+ #
29672
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29673
+ #
29674
+ def remove(opts = {})
29675
+ internal_remove(REMOVE, opts)
29676
+ end
29677
+
29678
+ #
29679
+ # Locates the service corresponding to the given path.
29680
+ #
29681
+ # @param path [String] The path of the service.
29682
+ #
29683
+ # @return [Service] A reference to the service.
29684
+ #
29685
+ def service(path)
29686
+ if path.nil? || path == ''
29687
+ return self
29688
+ end
29689
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
29690
+ end
29691
+
29692
+ end
29693
+
29694
+ class UserOptionsService < Service
29695
+
29696
+ ADD = [
29697
+ ].freeze
29698
+
29699
+ private_constant :ADD
29700
+
29701
+ #
29702
+ # Adds a new user profile property of type JSON.
29703
+ #
29704
+ # Example request(for user with identifier `123`):
29705
+ #
29706
+ # [source]
29707
+ # ----
29708
+ # POST /ovirt-engine/api/users/123/options
29709
+ # ----
29710
+ #
29711
+ # Payload:
29712
+ #
29713
+ # [source,xml]
29714
+ # ----
29715
+ # <user_option>
29716
+ # <name>SomeName</name>
29717
+ # <content>["any", "JSON"]</content>
29718
+ # </user_option>
29719
+ # ----
29720
+ #
29721
+ # @param option [UserOption] The `option` to add.
29722
+ #
29723
+ # @param opts [Hash] Additional options.
29724
+ #
29725
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29726
+ #
29727
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29728
+ #
29729
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29730
+ # given then the timeout set globally for the connection will be used.
29731
+ #
29732
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29733
+ #
29734
+ # @return [UserOption]
29735
+ #
29736
+ def add(option, opts = {})
29737
+ internal_add(option, UserOption, ADD, opts)
29738
+ end
29739
+
29740
+ LIST = [
29741
+ ].freeze
29742
+
29743
+ private_constant :LIST
29744
+
29745
+ #
29746
+ # Returns a list of user profile properties of type JSON.
29747
+ #
29748
+ # Example request(for user with identifier `123`):
29749
+ #
29750
+ # [source]
29751
+ # ----
29752
+ # GET /ovirt-engine/api/users/123/options
29753
+ # ----
29754
+ #
29755
+ # The result will be the following XML document:
29756
+ #
29757
+ # [source,xml]
29758
+ # ----
29759
+ # <user_options>
29760
+ # <user_option href="/ovirt-engine/api/users/123/options/456" id="456">
29761
+ # <name>SomeName</name>
29762
+ # <content>["any", "JSON"]</content>
29763
+ # <user href="/ovirt-engine/api/users/123" id="123"/>
29764
+ # </user_option>
29765
+ # </user_options>
29766
+ # ----
29767
+ #
29768
+ # @param opts [Hash] Additional options.
29769
+ #
29770
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29771
+ #
29772
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29773
+ #
29774
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29775
+ # given then the timeout set globally for the connection will be used.
29776
+ #
29777
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29778
+ #
29779
+ # @return [Array<UserOption>]
29780
+ #
29781
+ def list(opts = {})
29782
+ internal_get(LIST, opts)
29783
+ end
29784
+
29785
+ #
29786
+ # Locates the `option` service.
29787
+ #
29788
+ # @param id [String] The identifier of the `option`.
29789
+ #
29790
+ # @return [UserOptionService] A reference to the `option` service.
29791
+ #
29792
+ def option_service(id)
29793
+ UserOptionService.new(self, id)
29794
+ end
29795
+
29796
+ #
29797
+ # Locates the service corresponding to the given path.
29798
+ #
29799
+ # @param path [String] The path of the service.
29800
+ #
29801
+ # @return [Service] A reference to the service.
29802
+ #
29803
+ def service(path)
29804
+ if path.nil? || path == ''
29805
+ return self
29806
+ end
29807
+ index = path.index('/')
29808
+ if index.nil?
29809
+ return option_service(path)
29810
+ end
29811
+ return option_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
29812
+ end
29813
+
29814
+ end
29815
+
29018
29816
  class UsersService < Service
29019
29817
 
29020
29818
  ADD = [
@@ -29046,7 +29844,7 @@ module OvirtSDK4
29046
29844
  # ----
29047
29845
  #
29048
29846
  # In case you are working with Active Directory you have to pass user principal name (UPN) as `username`, followed
29049
- # by authorization provider name. Due to https://bugzilla.redhat.com/1147900[bug 1147900] you need to provide
29847
+ # by authorization provider name. Due to link:https://bugzilla.redhat.com/1147900[bug 1147900] you need to provide
29050
29848
  # also `principal` parameter set to UPN of the user.
29051
29849
  #
29052
29850
  # For example, to add the user with UPN `myuser@mysubdomain.mydomain.com` from the `myextension-authz`
@@ -29351,6 +30149,55 @@ module OvirtSDK4
29351
30149
 
29352
30150
  class VmService < MeasurableService
29353
30151
 
30152
+ AUTO_PIN_CPU_AND_NUMA_NODES = [
30153
+ [:async, TrueClass].freeze,
30154
+ [:optimize_cpu_settings, TrueClass].freeze,
30155
+ ].freeze
30156
+
30157
+ private_constant :AUTO_PIN_CPU_AND_NUMA_NODES
30158
+
30159
+ #
30160
+ # Apply an automatic CPU and NUMA configuration on the VM.
30161
+ #
30162
+ # IMPORTANT: Since version 4.5 of the engine this operation is deprecated, and preserved only for backwards
30163
+ # compatibility. It will be removed in the future. Instead please use PUT followed by xref:services-vm-methods-update[update operation].
30164
+ #
30165
+ # An example for a request:
30166
+ # [source]
30167
+ # ----
30168
+ # POST /ovirt-engine/api/vms/123/autopincpuandnumanodes
30169
+ # ----
30170
+ #
30171
+ # With a request body like this:
30172
+ #
30173
+ # [source,xml]
30174
+ # ----
30175
+ # <action>
30176
+ # <optimize_cpu_settings>true</optimize_cpu_settings>
30177
+ # </action>
30178
+ # ----
30179
+ #
30180
+ # @param opts [Hash] Additional options.
30181
+ #
30182
+ # @option opts [Boolean] :async Indicates if the detach action should be performed asynchronously.
30183
+ #
30184
+ # @option opts [Boolean] :optimize_cpu_settings Specifies how the auto CPU and NUMA configuration is applied.
30185
+ # If set to true, will adjust the CPU topology to fit the VM pinned host hardware.
30186
+ # Otherwise, it will use the VM CPU topology.
30187
+ #
30188
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
30189
+ #
30190
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
30191
+ #
30192
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
30193
+ # given then the timeout set globally for the connection will be used.
30194
+ #
30195
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
30196
+ #
30197
+ def auto_pin_cpu_and_numa_nodes(opts = {})
30198
+ internal_action(:autopincpuandnumanodes, nil, AUTO_PIN_CPU_AND_NUMA_NODES, opts)
30199
+ end
30200
+
29354
30201
  CANCEL_MIGRATION = [
29355
30202
  [:async, TrueClass].freeze,
29356
30203
  ].freeze
@@ -29435,7 +30282,7 @@ module OvirtSDK4
29435
30282
  #
29436
30283
  # Permanently restores the virtual machine to the state of the previewed snapshot.
29437
30284
  #
29438
- # See the <<services/vm/methods/preview_snapshot, preview_snapshot>> operation for details.
30285
+ # See the xref:services-vm-methods-preview_snapshot[preview_snapshot] operation for details.
29439
30286
  #
29440
30287
  # @param opts [Hash] Additional options.
29441
30288
  #
@@ -29547,6 +30394,8 @@ module OvirtSDK4
29547
30394
  # </action>
29548
30395
  # ----
29549
30396
  #
30397
+ # NOTE: Confirm that the export operation has completed before attempting any actions on the export domain.
30398
+ #
29550
30399
  # @param opts [Hash] Additional options.
29551
30400
  #
29552
30401
  # @option opts [Boolean] :async Indicates if the export should be performed asynchronously.
@@ -29619,6 +30468,7 @@ module OvirtSDK4
29619
30468
  [:filter, TrueClass].freeze,
29620
30469
  [:follow, String].freeze,
29621
30470
  [:next_run, TrueClass].freeze,
30471
+ [:ovf_as_ova, TrueClass].freeze,
29622
30472
  ].freeze
29623
30473
 
29624
30474
  private_constant :GET
@@ -29671,6 +30521,16 @@ module OvirtSDK4
29671
30521
  # GET /vms/{vm:id};next_run=true
29672
30522
  # ----
29673
30523
  #
30524
+ # @option opts [Boolean] :ovf_as_ova Indicates if the results should expose the OVF as it appears in OVA files of that VM. The OVF document
30525
+ # describing the virtual machine. This parameter will work only when all_content=True is set.
30526
+ # The OVF will be presented in `initialization.configuration.data`.
30527
+ #
30528
+ # For example:
30529
+ # [source]
30530
+ # ----
30531
+ # GET /vms/{vm:id}?all_content=true&ovf_as_ova=true
30532
+ # ----
30533
+ #
29674
30534
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
29675
30535
  #
29676
30536
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -29857,8 +30717,8 @@ module OvirtSDK4
29857
30717
  #
29858
30718
  # The snapshot is indicated with the `snapshot.id` parameter. It is restored temporarily, so that the content can
29859
30719
  # be inspected. Once that inspection is finished, the state of the virtual machine can be made permanent, using the
29860
- # <<services/vm/methods/commit_snapshot, commit_snapshot>> method, or discarded using the
29861
- # <<services/vm/methods/undo_snapshot, undo_snapshot>> method.
30720
+ # xref:services-vm-methods-commit_snapshot[commit_snapshot] method, or discarded using the
30721
+ # xref:services-vm-methods-undo_snapshot[undo_snapshot] method.
29862
30722
  #
29863
30723
  # @param opts [Hash] Additional options.
29864
30724
  #
@@ -29919,6 +30779,7 @@ module OvirtSDK4
29919
30779
 
29920
30780
  REBOOT = [
29921
30781
  [:async, TrueClass].freeze,
30782
+ [:force, TrueClass].freeze,
29922
30783
  ].freeze
29923
30784
 
29924
30785
  private_constant :REBOOT
@@ -29941,10 +30802,29 @@ module OvirtSDK4
29941
30802
  # <action/>
29942
30803
  # ----
29943
30804
  #
30805
+ # To reboot the VM even if a backup is running for it,
30806
+ # the action should include the 'force' element.
30807
+ #
30808
+ # For example, to force reboot virtual machine `123`:
30809
+ #
30810
+ # ----
30811
+ # POST /ovirt-engine/api/vms/123/reboot
30812
+ # ----
30813
+ #
30814
+ # [source,xml]
30815
+ # ----
30816
+ # <action>
30817
+ # <force>true</force>
30818
+ # </action>
30819
+ # ----
30820
+ #
29944
30821
  # @param opts [Hash] Additional options.
29945
30822
  #
29946
30823
  # @option opts [Boolean] :async Indicates if the reboot should be performed asynchronously.
29947
30824
  #
30825
+ # @option opts [Boolean] :force Indicates if the VM should be forcibly rebooted even
30826
+ # if a backup is running for it.
30827
+ #
29948
30828
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
29949
30829
  #
29950
30830
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -30023,8 +30903,90 @@ module OvirtSDK4
30023
30903
  internal_action(:reordermacaddresses, nil, REORDER_MAC_ADDRESSES, opts)
30024
30904
  end
30025
30905
 
30906
+ RESET = [
30907
+ [:async, TrueClass].freeze,
30908
+ ].freeze
30909
+
30910
+ private_constant :RESET
30911
+
30912
+ #
30913
+ # Sends a reset request to a virtual machine.
30914
+ #
30915
+ # For example:
30916
+ #
30917
+ # [source]
30918
+ # ----
30919
+ # POST /ovirt-engine/api/vms/123/reset
30920
+ # ----
30921
+ #
30922
+ # The reset action does not take any action specific parameters; therefore, the request body should contain an
30923
+ # empty `action`:
30924
+ #
30925
+ # [source,xml]
30926
+ # ----
30927
+ # <action/>
30928
+ # ----
30929
+ #
30930
+ # @param opts [Hash] Additional options.
30931
+ #
30932
+ # @option opts [Boolean] :async Indicates if the reset should be performed asynchronously.
30933
+ #
30934
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
30935
+ #
30936
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
30937
+ #
30938
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
30939
+ # given then the timeout set globally for the connection will be used.
30940
+ #
30941
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
30942
+ #
30943
+ def reset(opts = {})
30944
+ internal_action(:reset, nil, RESET, opts)
30945
+ end
30946
+
30947
+ SCREENSHOT = [
30948
+ ].freeze
30949
+
30950
+ private_constant :SCREENSHOT
30951
+
30952
+ #
30953
+ # Captures screenshot of the current state of the VM.
30954
+ #
30955
+ # For example:
30956
+ #
30957
+ # [source]
30958
+ # ----
30959
+ # POST /ovirt-engine/api/vms/123/screenshot
30960
+ # ----
30961
+ #
30962
+ # The screenshot action does not take any action specific parameters; therefore, the request body should contain an
30963
+ # empty `action`:
30964
+ #
30965
+ # [source,xml]
30966
+ # ----
30967
+ # <action/>
30968
+ #
30969
+ #
30970
+ # ----
30971
+ #
30972
+ # @param opts [Hash] Additional options.
30973
+ #
30974
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
30975
+ #
30976
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
30977
+ #
30978
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
30979
+ # given then the timeout set globally for the connection will be used.
30980
+ #
30981
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
30982
+ #
30983
+ def screenshot(opts = {})
30984
+ internal_action(:screenshot, nil, SCREENSHOT, opts)
30985
+ end
30986
+
30026
30987
  SHUTDOWN = [
30027
30988
  [:async, TrueClass].freeze,
30989
+ [:force, TrueClass].freeze,
30028
30990
  [:reason, String].freeze,
30029
30991
  ].freeze
30030
30992
 
@@ -30048,10 +31010,29 @@ module OvirtSDK4
30048
31010
  # <action/>
30049
31011
  # ----
30050
31012
  #
31013
+ # To shutdown the VM even if a backup is running for it,
31014
+ # the action should include the 'force' element.
31015
+ #
31016
+ # For example, to force shutdown virtual machine `123`:
31017
+ #
31018
+ # ----
31019
+ # POST /ovirt-engine/api/vms/123/shutdown
31020
+ # ----
31021
+ #
31022
+ # [source,xml]
31023
+ # ----
31024
+ # <action>
31025
+ # <force>true</force>
31026
+ # </action>
31027
+ # ----
31028
+ #
30051
31029
  # @param opts [Hash] Additional options.
30052
31030
  #
30053
31031
  # @option opts [Boolean] :async Indicates if the shutdown should be performed asynchronously.
30054
31032
  #
31033
+ # @option opts [Boolean] :force Indicates if the VM should be forcibly shutdown even
31034
+ # if a backup is running for it.
31035
+ #
30055
31036
  # @option opts [String] :reason The reason the virtual machine was stopped.
30056
31037
  # Optionally set by user when shutting down the virtual machine.
30057
31038
  #
@@ -30114,10 +31095,10 @@ module OvirtSDK4
30114
31095
  # @option opts [Boolean] :pause If set to `true`, start the virtual machine in paused mode. The default is `false`.
30115
31096
  #
30116
31097
  # @option opts [Boolean] :use_cloud_init If set to `true`, the initialization type is set to _cloud-init_. The default value is `false`.
30117
- # See https://cloudinit.readthedocs.io/en/latest[this] for details.
31098
+ # See link:https://cloudinit.readthedocs.io/en/latest[cloud-init documentation] for details.
30118
31099
  #
30119
31100
  # @option opts [Boolean] :use_ignition If set to `true`, the initialization type is set to _Ignition_. The default value is `false`.
30120
- # See https://coreos.com/ignition/docs/latest/[this] for details.
31101
+ # See link:https://coreos.com/ignition/docs/latest/[Ignition documentation] for details.
30121
31102
  #
30122
31103
  # @option opts [Boolean] :use_initialization If set to `true`, the initialization type is set by the VM's OS.
30123
31104
  # Windows will set to _Sysprep_, Linux to _cloud-init_ and RedHat CoreOS to _Ignition_.
@@ -30126,7 +31107,7 @@ module OvirtSDK4
30126
31107
  # The default value is `false`.
30127
31108
  #
30128
31109
  # @option opts [Boolean] :use_sysprep If set to `true`, the initialization type is set to _Sysprep_. The default value is `false`.
30129
- # See https://en.wikipedia.org/wiki/Sysprep[this] for details.
31110
+ # See link:https://en.wikipedia.org/wiki/Sysprep[Sysprep] for details.
30130
31111
  #
30131
31112
  # @option opts [Vm] :vm The definition of the virtual machine for this specific run.
30132
31113
  #
@@ -30168,6 +31149,7 @@ module OvirtSDK4
30168
31149
 
30169
31150
  STOP = [
30170
31151
  [:async, TrueClass].freeze,
31152
+ [:force, TrueClass].freeze,
30171
31153
  [:reason, String].freeze,
30172
31154
  ].freeze
30173
31155
 
@@ -30191,10 +31173,29 @@ module OvirtSDK4
30191
31173
  # <action/>
30192
31174
  # ----
30193
31175
  #
31176
+ # To stop the VM even if a backup is running for it,
31177
+ # the action should include the 'force' element.
31178
+ #
31179
+ # For example, to force stop virtual machine `123`:
31180
+ #
31181
+ # ----
31182
+ # POST /ovirt-engine/api/vms/123/stop
31183
+ # ----
31184
+ #
31185
+ # [source,xml]
31186
+ # ----
31187
+ # <action>
31188
+ # <force>true</force>
31189
+ # </action>
31190
+ # ----
31191
+ #
30194
31192
  # @param opts [Hash] Additional options.
30195
31193
  #
30196
31194
  # @option opts [Boolean] :async Indicates if the stop action should be performed asynchronously.
30197
31195
  #
31196
+ # @option opts [Boolean] :force Indicates if the VM should be forcibly stop even
31197
+ # if a backup is running for it.
31198
+ #
30198
31199
  # @option opts [String] :reason The reason the virtual machine was stopped.
30199
31200
  # Optionally set by user when shutting down the virtual machine.
30200
31201
  #
@@ -30335,8 +31336,8 @@ module OvirtSDK4
30335
31336
  # the SPICE protocol.
30336
31337
  #
30337
31338
  # In order to obtain an authentication token for a specific protocol, for
30338
- # example for VNC, use the `ticket` method of the <<services/vm_graphics_console,
30339
- # service>>, which manages the graphics consoles of the virtual machine, by sending
31339
+ # example for VNC, use the `ticket` method of the
31340
+ # xref:services-vm_graphics_console[service], which manages the graphics consoles of the virtual machine, by sending
30340
31341
  # a request:
30341
31342
  #
30342
31343
  # [source]
@@ -30459,7 +31460,7 @@ module OvirtSDK4
30459
31460
  #
30460
31461
  # Restores the virtual machine to the state it had before previewing the snapshot.
30461
31462
  #
30462
- # See the <<services/vm/methods/preview_snapshot, preview_snapshot>> operation for details.
31463
+ # See the xref:services-vm-methods-preview_snapshot[preview_snapshot] operation for details.
30463
31464
  #
30464
31465
  # @param opts [Hash] Additional options.
30465
31466
  #
@@ -30548,6 +31549,15 @@ module OvirtSDK4
30548
31549
  @cdroms_service ||= VmCdromsService.new(self, 'cdroms')
30549
31550
  end
30550
31551
 
31552
+ #
31553
+ # List of checkpoints of this virtual machine.
31554
+ #
31555
+ # @return [VmCheckpointsService] A reference to `checkpoints` service.
31556
+ #
31557
+ def checkpoints_service
31558
+ @checkpoints_service ||= VmCheckpointsService.new(self, 'checkpoints')
31559
+ end
31560
+
30551
31561
  #
30552
31562
  # List of disks attached to this virtual machine.
30553
31563
  #
@@ -30585,6 +31595,15 @@ module OvirtSDK4
30585
31595
  @katello_errata_service ||= KatelloErrataService.new(self, 'katelloerrata')
30586
31596
  end
30587
31597
 
31598
+ #
31599
+ # Reference to the service that manages mediated devices associated with the VM.
31600
+ #
31601
+ # @return [VmMediatedDevicesService] A reference to `mediated_devices` service.
31602
+ #
31603
+ def mediated_devices_service
31604
+ @mediated_devices_service ||= VmMediatedDevicesService.new(self, 'mediateddevices')
31605
+ end
31606
+
30588
31607
  #
30589
31608
  # Locates the `nics` service.
30590
31609
  #
@@ -30701,6 +31720,12 @@ module OvirtSDK4
30701
31720
  if path.start_with?('cdroms/')
30702
31721
  return cdroms_service.service(path[7..-1])
30703
31722
  end
31723
+ if path == 'checkpoints'
31724
+ return checkpoints_service
31725
+ end
31726
+ if path.start_with?('checkpoints/')
31727
+ return checkpoints_service.service(path[12..-1])
31728
+ end
30704
31729
  if path == 'diskattachments'
30705
31730
  return disk_attachments_service
30706
31731
  end
@@ -30725,6 +31750,12 @@ module OvirtSDK4
30725
31750
  if path.start_with?('katelloerrata/')
30726
31751
  return katello_errata_service.service(path[14..-1])
30727
31752
  end
31753
+ if path == 'mediateddevices'
31754
+ return mediated_devices_service
31755
+ end
31756
+ if path.start_with?('mediateddevices/')
31757
+ return mediated_devices_service.service(path[16..-1])
31758
+ end
30728
31759
  if path == 'nics'
30729
31760
  return nics_service
30730
31761
  end
@@ -30915,6 +31946,20 @@ module OvirtSDK4
30915
31946
  # Finalize the virtual machine backup entity.
30916
31947
  #
30917
31948
  # End backup, unlock resources, and perform cleanups.
31949
+ # To finalize a virtual machine with an id '123' and a backup with an id '456'
31950
+ # send a request as follows:
31951
+ #
31952
+ # [source]
31953
+ # ----
31954
+ # POST /ovirt-engine/api/vms/123/backups/456/finalize
31955
+ # ----
31956
+ #
31957
+ # With a request body as follows:
31958
+ #
31959
+ # [source,xml]
31960
+ # ----
31961
+ # <action />
31962
+ # ----
30918
31963
  #
30919
31964
  # @param opts [Hash] Additional options.
30920
31965
  #
@@ -31106,6 +32151,8 @@ module OvirtSDK4
31106
32151
  class VmBackupsService < Service
31107
32152
 
31108
32153
  ADD = [
32154
+ [:require_consistency, TrueClass].freeze,
32155
+ [:use_active, TrueClass].freeze,
31109
32156
  ].freeze
31110
32157
 
31111
32158
  private_constant :ADD
@@ -31125,7 +32172,6 @@ module OvirtSDK4
31125
32172
  #
31126
32173
  # [source,xml]
31127
32174
  # ----
31128
- # POST /ovirt-engine/api/vms/123/backups
31129
32175
  # <backup>
31130
32176
  # <from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
31131
32177
  # <disks>
@@ -31152,10 +32198,55 @@ module OvirtSDK4
31152
32198
  # </backup>
31153
32199
  # ----
31154
32200
  #
32201
+ # To provide the ID of the created backup, send a request like this:
32202
+ #
32203
+ # [source]
32204
+ # ----
32205
+ # POST /ovirt-engine/api/vms/123/backups
32206
+ # ----
32207
+ #
32208
+ # With a request body like this:
32209
+ #
32210
+ # [source,xml]
32211
+ # ----
32212
+ # <backup id="backup-uuid">
32213
+ # <from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
32214
+ # <disks>
32215
+ # <disk id="disk-uuid" />
32216
+ # ...
32217
+ # </disks>
32218
+ # </backup>
32219
+ # ----
32220
+ #
31155
32221
  # @param backup [Backup] The information about the virtual machine backup entity.
31156
32222
  #
31157
32223
  # @param opts [Hash] Additional options.
31158
32224
  #
32225
+ # @option opts [Boolean] :require_consistency Indicates if the backup will fail if VM failed to freeze or not.
32226
+ #
32227
+ # If requireConsistency=True VM backup will fail in case of a
32228
+ # failure to freeze the VM.
32229
+ #
32230
+ # The REST API call should look like this:
32231
+ #
32232
+ # ....
32233
+ # POST /ovirt-engine/api/vms/123/backups?require_consistency=true
32234
+ # ....
32235
+ #
32236
+ # The default value of the requireConsistency flag is `false`.
32237
+ #
32238
+ # @option opts [Boolean] :use_active Indicate whether to use the active volume for performing the backup.
32239
+ #
32240
+ # If useActive=False a snapshot will be created for the backup operation.
32241
+ #
32242
+ # The REST API call should look like this:
32243
+ #
32244
+ # ....
32245
+ # POST /ovirt-engine/api/vms/123/backups?use_active=false
32246
+ # ....
32247
+ #
32248
+ # The default value of the useActive flag is `false`.
32249
+ #
31159
32250
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
31160
32251
  #
31161
32252
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -31330,7 +32421,7 @@ module OvirtSDK4
31330
32421
  # ----
31331
32422
  #
31332
32423
  # By default the above operations change permanently the disk that will be visible to the virtual machine
31333
- # after the next boot, but they don't have any effect on the currently running virtual machine. If you want
32424
+ # after the next boot, but they do not have any effect on the currently running virtual machine. If you want
31334
32425
  # to change the disk that is visible to the current running virtual machine, add the `current=true` parameter.
31335
32426
  # For example, to eject the current disk send a request like this:
31336
32427
  #
@@ -31483,20 +32574,21 @@ module OvirtSDK4
31483
32574
 
31484
32575
  end
31485
32576
 
31486
- class VmDiskService < MeasurableService
32577
+ class VmCheckpointService < Service
31487
32578
 
31488
- ACTIVATE = [
31489
- [:async, TrueClass].freeze,
32579
+ GET = [
32580
+ [:follow, String].freeze,
31490
32581
  ].freeze
31491
32582
 
31492
- private_constant :ACTIVATE
32583
+ private_constant :GET
31493
32584
 
31494
32585
  #
31495
- # Executes the `activate` method.
32586
+ # Returns information about the virtual machine checkpoint.
31496
32587
  #
31497
32588
  # @param opts [Hash] Additional options.
31498
32589
  #
31499
- # @option opts [Boolean] :async Indicates if the activation should be performed asynchronously.
32590
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32591
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
31500
32592
  #
31501
32593
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
31502
32594
  #
@@ -31507,23 +32599,26 @@ module OvirtSDK4
31507
32599
  #
31508
32600
  # @option opts [Boolean] :wait (true) If `true` wait for the response.
31509
32601
  #
31510
- def activate(opts = {})
31511
- internal_action(:activate, nil, ACTIVATE, opts)
32602
+ # @return [Checkpoint]
32603
+ #
32604
+ def get(opts = {})
32605
+ internal_get(GET, opts)
31512
32606
  end
31513
32607
 
31514
- DEACTIVATE = [
32608
+ REMOVE = [
31515
32609
  [:async, TrueClass].freeze,
31516
32610
  ].freeze
31517
32611
 
31518
- private_constant :DEACTIVATE
32612
+ private_constant :REMOVE
31519
32613
 
31520
32614
  #
31521
- # Executes the `deactivate` method.
32615
+ # Remove the virtual machine checkpoint entity.
31522
32616
  #
31523
- # @param opts [Hash] Additional options.
32617
+ # Remove the checkpoint from libvirt and the database.
31524
32618
  #
31525
- # @option opts [Boolean] :async Indicates if the deactivation should be performed asynchronously.
32619
+ # @param opts [Hash] Additional options.
31526
32620
  #
32621
+ # @option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
31527
32622
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
31528
32623
  #
31529
32624
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -31533,39 +32628,43 @@ module OvirtSDK4
31533
32628
  #
31534
32629
  # @option opts [Boolean] :wait (true) If `true` wait for the response.
31535
32630
  #
31536
- def deactivate(opts = {})
31537
- internal_action(:deactivate, nil, DEACTIVATE, opts)
32631
+ def remove(opts = {})
32632
+ internal_remove(REMOVE, opts)
31538
32633
  end
31539
32634
 
31540
- EXPORT = [
31541
- [:async, TrueClass].freeze,
31542
- [:filter, TrueClass].freeze,
31543
- ].freeze
31544
-
31545
- private_constant :EXPORT
31546
-
31547
32635
  #
31548
- # Executes the `export` method.
32636
+ # A reference to the service that lists the disks in checkpoint.
31549
32637
  #
31550
- # @param opts [Hash] Additional options.
32638
+ # @return [VmCheckpointDisksService] A reference to `disks` service.
31551
32639
  #
31552
- # @option opts [Boolean] :async Indicates if the export should be performed asynchronously.
31553
- #
31554
- # @option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
31555
- #
31556
- # @option opts [Hash] :headers ({}) Additional HTTP headers.
32640
+ def disks_service
32641
+ @disks_service ||= VmCheckpointDisksService.new(self, 'disks')
32642
+ end
32643
+
31557
32644
  #
31558
- # @option opts [Hash] :query ({}) Additional URL query parameters.
32645
+ # Locates the service corresponding to the given path.
31559
32646
  #
31560
- # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
31561
- # given then the timeout set globally for the connection will be used.
32647
+ # @param path [String] The path of the service.
31562
32648
  #
31563
- # @option opts [Boolean] :wait (true) If `true` wait for the response.
32649
+ # @return [Service] A reference to the service.
31564
32650
  #
31565
- def export(opts = {})
31566
- internal_action(:export, nil, EXPORT, opts)
32651
+ def service(path)
32652
+ if path.nil? || path == ''
32653
+ return self
32654
+ end
32655
+ if path == 'disks'
32656
+ return disks_service
32657
+ end
32658
+ if path.start_with?('disks/')
32659
+ return disks_service.service(path[6..-1])
32660
+ end
32661
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
31567
32662
  end
31568
32663
 
32664
+ end
32665
+
32666
+ class VmCheckpointDiskService < Service
32667
+
31569
32668
  GET = [
31570
32669
  [:follow, String].freeze,
31571
32670
  ].freeze
@@ -31573,7 +32672,273 @@ module OvirtSDK4
31573
32672
  private_constant :GET
31574
32673
 
31575
32674
  #
31576
- # Returns the representation of the object managed by this service.
32675
+ # Retrieves the description of the disk.
32676
+ #
32677
+ # @param opts [Hash] Additional options.
32678
+ #
32679
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32680
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
32681
+ #
32682
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32683
+ #
32684
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32685
+ #
32686
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32687
+ # given then the timeout set globally for the connection will be used.
32688
+ #
32689
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32690
+ #
32691
+ # @return [Disk]
32692
+ #
32693
+ def get(opts = {})
32694
+ internal_get(GET, opts)
32695
+ end
32696
+
32697
+ #
32698
+ # Locates the service corresponding to the given path.
32699
+ #
32700
+ # @param path [String] The path of the service.
32701
+ #
32702
+ # @return [Service] A reference to the service.
32703
+ #
32704
+ def service(path)
32705
+ if path.nil? || path == ''
32706
+ return self
32707
+ end
32708
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
32709
+ end
32710
+
32711
+ end
32712
+
32713
+ class VmCheckpointDisksService < Service
32714
+
32715
+ LIST = [
32716
+ [:follow, String].freeze,
32717
+ [:max, Integer].freeze,
32718
+ ].freeze
32719
+
32720
+ private_constant :LIST
32721
+
32722
+ #
32723
+ # Returns the list of disks in checkpoint.
32724
+ #
32725
+ # @param opts [Hash] Additional options.
32726
+ #
32727
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32728
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
32729
+ #
32730
+ # @option opts [Integer] :max Sets the maximum number of disks to return. If not specified, all the disks are returned.
32731
+ #
32732
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32733
+ #
32734
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32735
+ #
32736
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32737
+ # given then the timeout set globally for the connection will be used.
32738
+ #
32739
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32740
+ #
32741
+ # @return [Array<Disk>]
32742
+ #
32743
+ def list(opts = {})
32744
+ internal_get(LIST, opts)
32745
+ end
32746
+
32747
+ #
32748
+ # A reference to the service that manages a specific disk.
32749
+ #
32750
+ # @param id [String] The identifier of the `disk`.
32751
+ #
32752
+ # @return [VmCheckpointDiskService] A reference to the `disk` service.
32753
+ #
32754
+ def disk_service(id)
32755
+ VmCheckpointDiskService.new(self, id)
32756
+ end
32757
+
32758
+ #
32759
+ # Locates the service corresponding to the given path.
32760
+ #
32761
+ # @param path [String] The path of the service.
32762
+ #
32763
+ # @return [Service] A reference to the service.
32764
+ #
32765
+ def service(path)
32766
+ if path.nil? || path == ''
32767
+ return self
32768
+ end
32769
+ index = path.index('/')
32770
+ if index.nil?
32771
+ return disk_service(path)
32772
+ end
32773
+ return disk_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
32774
+ end
32775
+
32776
+ end
32777
+
32778
+ class VmCheckpointsService < Service
32779
+
32780
+ LIST = [
32781
+ [:follow, String].freeze,
32782
+ [:max, Integer].freeze,
32783
+ ].freeze
32784
+
32785
+ private_constant :LIST
32786
+
32787
+ #
32788
+ # The list of virtual machine checkpoints.
32789
+ #
32790
+ # To get a list of checkpoints for a virtual machine with an id '123', send a request as follows:
32791
+ #
32792
+ # [source]
32793
+ # ----
32794
+ # GET /ovirt-engine/api/vms/123/checkpoints
32795
+ # ----
32796
+ #
32797
+ # @param opts [Hash] Additional options.
32798
+ #
32799
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32800
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
32801
+ #
32802
+ # @option opts [Integer] :max Sets the maximum number of virtual machine checkpoints to return.
32803
+ # If not specified, all the virtual machine checkpoints are returned.
32804
+ #
32805
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32806
+ #
32807
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32808
+ #
32809
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32810
+ # given then the timeout set globally for the connection will be used.
32811
+ #
32812
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32813
+ #
32814
+ # @return [Array<Checkpoint>]
32815
+ #
32816
+ def list(opts = {})
32817
+ internal_get(LIST, opts)
32818
+ end
32819
+
32820
+ #
32821
+ # Returns a reference to the service that manages a specific VM checkpoint.
32822
+ #
32823
+ # @param id [String] The identifier of the `checkpoint`.
32824
+ #
32825
+ # @return [VmCheckpointService] A reference to the `checkpoint` service.
32826
+ #
32827
+ def checkpoint_service(id)
32828
+ VmCheckpointService.new(self, id)
32829
+ end
32830
+
32831
+ #
32832
+ # Locates the service corresponding to the given path.
32833
+ #
32834
+ # @param path [String] The path of the service.
32835
+ #
32836
+ # @return [Service] A reference to the service.
32837
+ #
32838
+ def service(path)
32839
+ if path.nil? || path == ''
32840
+ return self
32841
+ end
32842
+ index = path.index('/')
32843
+ if index.nil?
32844
+ return checkpoint_service(path)
32845
+ end
32846
+ return checkpoint_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
32847
+ end
32848
+
32849
+ end
32850
+
32851
+ class VmDiskService < MeasurableService
32852
+
32853
+ ACTIVATE = [
32854
+ [:async, TrueClass].freeze,
32855
+ ].freeze
32856
+
32857
+ private_constant :ACTIVATE
32858
+
32859
+ #
32860
+ # Executes the `activate` method.
32861
+ #
32862
+ # @param opts [Hash] Additional options.
32863
+ #
32864
+ # @option opts [Boolean] :async Indicates if the activation should be performed asynchronously.
32865
+ #
32866
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32867
+ #
32868
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32869
+ #
32870
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32871
+ # given then the timeout set globally for the connection will be used.
32872
+ #
32873
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32874
+ #
32875
+ def activate(opts = {})
32876
+ internal_action(:activate, nil, ACTIVATE, opts)
32877
+ end
32878
+
32879
+ DEACTIVATE = [
32880
+ [:async, TrueClass].freeze,
32881
+ ].freeze
32882
+
32883
+ private_constant :DEACTIVATE
32884
+
32885
+ #
32886
+ # Executes the `deactivate` method.
32887
+ #
32888
+ # @param opts [Hash] Additional options.
32889
+ #
32890
+ # @option opts [Boolean] :async Indicates if the deactivation should be performed asynchronously.
32891
+ #
32892
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32893
+ #
32894
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32895
+ #
32896
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32897
+ # given then the timeout set globally for the connection will be used.
32898
+ #
32899
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32900
+ #
32901
+ def deactivate(opts = {})
32902
+ internal_action(:deactivate, nil, DEACTIVATE, opts)
32903
+ end
32904
+
32905
+ EXPORT = [
32906
+ [:async, TrueClass].freeze,
32907
+ [:filter, TrueClass].freeze,
32908
+ ].freeze
32909
+
32910
+ private_constant :EXPORT
32911
+
32912
+ #
32913
+ # Executes the `export` method.
32914
+ #
32915
+ # @param opts [Hash] Additional options.
32916
+ #
32917
+ # @option opts [Boolean] :async Indicates if the export should be performed asynchronously.
32918
+ #
32919
+ # @option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
32920
+ #
32921
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32922
+ #
32923
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32924
+ #
32925
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32926
+ # given then the timeout set globally for the connection will be used.
32927
+ #
32928
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32929
+ #
32930
+ def export(opts = {})
32931
+ internal_action(:export, nil, EXPORT, opts)
32932
+ end
32933
+
32934
+ GET = [
32935
+ [:follow, String].freeze,
32936
+ ].freeze
32937
+
32938
+ private_constant :GET
32939
+
32940
+ #
32941
+ # Returns the representation of the object managed by this service.
31577
32942
  #
31578
32943
  # @param opts [Hash] Additional options.
31579
32944
  #
@@ -31664,8 +33029,7 @@ module OvirtSDK4
31664
33029
  # Detach the disk from the virtual machine.
31665
33030
  #
31666
33031
  # NOTE: In version 3 of the API this used to also remove the disk completely from the system, but starting with
31667
- # version 4 it doesn't. If you need to remove it completely use the <<services/disk/methods/remove,remove
31668
- # method of the top level disk service>>.
33032
+ # version 4 it doesn't. If you need to remove it completely use the xref:services-disk-methods-remove[remove method of the top level disk service].
31669
33033
  #
31670
33034
  # @param opts [Hash] Additional options.
31671
33035
  #
@@ -32373,7 +33737,7 @@ module OvirtSDK4
32373
33737
  # POST /ovirt-engine/api/vms/123/hostdevices
32374
33738
  # ----
32375
33739
  #
32376
- # With request body of type <<types/host_device,HostDevice>>, for example
33740
+ # With request body of type xref:types-host_device[HostDevice], for example
32377
33741
  #
32378
33742
  # [source,xml]
32379
33743
  # ----
@@ -32385,7 +33749,7 @@ module OvirtSDK4
32385
33749
  #
32386
33750
  # NOTE: Attachment of a PCI device that is part of a bigger IOMMU group will result in attachment of the remaining
32387
33751
  # devices from that IOMMU group as "placeholders". These devices are then identified using the `placeholder`
32388
- # attribute of the <<types/host_device,HostDevice>> type set to `true`.
33752
+ # attribute of the xref:types-host_device[HostDevice] type set to `true`.
32389
33753
  #
32390
33754
  # In case you want attach a device that already serves as an IOMMU placeholder, simply issue an explicit Add operation
32391
33755
  # for it, and its `placeholder` flag will be cleared, and the device will be accessible to the virtual machine.
@@ -32474,6 +33838,238 @@ module OvirtSDK4
32474
33838
 
32475
33839
  end
32476
33840
 
33841
+ class VmMediatedDeviceService < Service
33842
+
33843
+ GET = [
33844
+ [:follow, String].freeze,
33845
+ ].freeze
33846
+
33847
+ private_constant :GET
33848
+
33849
+ #
33850
+ # Retrieves the configuration of mediated devices in the virtual machine.
33851
+ #
33852
+ # @param opts [Hash] Additional options.
33853
+ #
33854
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
33855
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
33856
+ #
33857
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33858
+ #
33859
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33860
+ #
33861
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33862
+ # given then the timeout set globally for the connection will be used.
33863
+ #
33864
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
33865
+ #
33866
+ # @return [VmMediatedDevice]
33867
+ #
33868
+ def get(opts = {})
33869
+ internal_get(GET, opts)
33870
+ end
33871
+
33872
+ REMOVE = [
33873
+ [:async, TrueClass].freeze,
33874
+ ].freeze
33875
+
33876
+ private_constant :REMOVE
33877
+
33878
+ #
33879
+ # Remove the mediated device from the virtual machine.
33880
+ #
33881
+ # @param opts [Hash] Additional options.
33882
+ #
33883
+ # @option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
33884
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33885
+ #
33886
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33887
+ #
33888
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33889
+ # given then the timeout set globally for the connection will be used.
33890
+ #
33891
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
33892
+ #
33893
+ def remove(opts = {})
33894
+ internal_remove(REMOVE, opts)
33895
+ end
33896
+
33897
+ UPDATE = [
33898
+ [:async, TrueClass].freeze,
33899
+ ].freeze
33900
+
33901
+ private_constant :UPDATE
33902
+
33903
+ #
33904
+ # Updates the information about the mediated device.
33905
+ #
33906
+ # You can update the information using `specParams` element.
33907
+ #
33908
+ # For example, to update a mediated device, send a request like this:
33909
+ #
33910
+ # [source]
33911
+ # ----
33912
+ # PUT /ovirt-engine/api/vms/123/mediateddevices/00000000-0000-0000-0000-000000000000
33913
+ # <vm_mediated_device>
33914
+ # <spec_params>
33915
+ # <property>
33916
+ # <name>mdevType</name>
33917
+ # <value>nvidia-11</value>
33918
+ # </property>
33919
+ # </spec_params>
33920
+ # </vm_mediated_device>
33921
+ # ----
33922
+ #
33923
+ # with response body:
33924
+ #
33925
+ # [source,xml]
33926
+ # ----
33927
+ # <vm_mediated_device href="/ovirt-engine/api/vms/123/mediateddevices/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
33928
+ # <vm href="/ovirt-engine/api/vms/123" id="123"/>
33929
+ # <spec_params>
33930
+ # <property>
33931
+ # <name>mdevType</name>
33932
+ # <value>nvidia-11</value>
33933
+ # </property>
33934
+ # </spec_params>
33935
+ # </vm_mediated_device>
33936
+ # ----
33937
+ #
33938
+ # @param device [VmMediatedDevice] The information about the mediated device.
33939
+ #
33940
+ # The request data must contain `specParams` properties.
33941
+ # The response data contains complete information about the
33942
+ # updated mediated device.
33943
+ # @param opts [Hash] Additional options.
33944
+ #
33945
+ # @option opts [Boolean] :async Indicates if the update should be performed asynchronously.
33946
+ #
33947
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33948
+ #
33949
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33950
+ #
33951
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33952
+ # given then the timeout set globally for the connection will be used.
33953
+ #
33954
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
33955
+ #
33956
+ # @return [VmMediatedDevice]
33957
+ #
33958
+ def update(device, opts = {})
33959
+ internal_update(device, VmMediatedDevice, UPDATE, opts)
33960
+ end
33961
+
33962
+ #
33963
+ # Locates the service corresponding to the given path.
33964
+ #
33965
+ # @param path [String] The path of the service.
33966
+ #
33967
+ # @return [Service] A reference to the service.
33968
+ #
33969
+ def service(path)
33970
+ if path.nil? || path == ''
33971
+ return self
33972
+ end
33973
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
33974
+ end
33975
+
33976
+ end
33977
+
33978
+ class VmMediatedDevicesService < Service
33979
+
33980
+ ADD = [
33981
+ ].freeze
33982
+
33983
+ private_constant :ADD
33984
+
33985
+ #
33986
+ # Add a new mediated device to the virtual machine.
33987
+ #
33988
+ # @param device [VmMediatedDevice] The `device` to add.
33989
+ #
33990
+ # @param opts [Hash] Additional options.
33991
+ #
33992
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33993
+ #
33994
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33995
+ #
33996
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33997
+ # given then the timeout set globally for the connection will be used.
33998
+ #
33999
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
34000
+ #
34001
+ # @return [VmMediatedDevice]
34002
+ #
34003
+ def add(device, opts = {})
34004
+ internal_add(device, VmMediatedDevice, ADD, opts)
34005
+ end
34006
+
34007
+ LIST = [
34008
+ [:follow, String].freeze,
34009
+ [:max, Integer].freeze,
34010
+ ].freeze
34011
+
34012
+ private_constant :LIST
34013
+
34014
+ #
34015
+ # Lists all the configured mediated devices of the virtual machine.
34016
+ #
34017
+ # The order of the returned list of mediated devices is not guaranteed.
34018
+ #
34019
+ # @param opts [Hash] Additional options.
34020
+ #
34021
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
34022
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
34023
+ #
34024
+ # @option opts [Integer] :max Sets the maximum number of mediated devices to return.
34025
+ # If not specified all the mediated devices are returned.
34026
+ #
34027
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
34028
+ #
34029
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
34030
+ #
34031
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
34032
+ # given then the timeout set globally for the connection will be used.
34033
+ #
34034
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
34035
+ #
34036
+ # @return [Array<VmMediatedDevice>]
34037
+ #
34038
+ def list(opts = {})
34039
+ internal_get(LIST, opts)
34040
+ end
34041
+
34042
+ #
34043
+ # Returns a reference to the service that manages a mediated device of a virtual machine.
34044
+ #
34045
+ # @param id [String] The identifier of the `device`.
34046
+ #
34047
+ # @return [VmMediatedDeviceService] A reference to the `device` service.
34048
+ #
34049
+ def device_service(id)
34050
+ VmMediatedDeviceService.new(self, id)
34051
+ end
34052
+
34053
+ #
34054
+ # Locates the service corresponding to the given path.
34055
+ #
34056
+ # @param path [String] The path of the service.
34057
+ #
34058
+ # @return [Service] A reference to the service.
34059
+ #
34060
+ def service(path)
34061
+ if path.nil? || path == ''
34062
+ return self
34063
+ end
34064
+ index = path.index('/')
34065
+ if index.nil?
34066
+ return device_service(path)
34067
+ end
34068
+ return device_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
34069
+ end
34070
+
34071
+ end
34072
+
32477
34073
  class VmNicService < MeasurableService
32478
34074
 
32479
34075
  ACTIVATE = [
@@ -32662,7 +34258,7 @@ module OvirtSDK4
32662
34258
  #
32663
34259
  # Reference to the service that manages the network filter parameters of the NIC.
32664
34260
  #
32665
- # A single top-level network filter may assigned to the NIC by the NIC's <<types/vnic_profile,vNIC Profile>>.
34261
+ # A single top-level network filter may assigned to the NIC by the NIC's xref:types-vnic_profile[vNIC Profile].
32666
34262
  #
32667
34263
  # @return [NicNetworkFilterParametersService] A reference to `network_filter_parameters` service.
32668
34264
  #
@@ -33027,6 +34623,7 @@ module OvirtSDK4
33027
34623
  # </cpu>
33028
34624
  # <index>0</index>
33029
34625
  # <memory>1024</memory>
34626
+ # <numa_tune_mode>strict</numa_tune_mode>
33030
34627
  # </vm_numa_node>
33031
34628
  # ----
33032
34629
  #
@@ -33245,6 +34842,7 @@ module OvirtSDK4
33245
34842
 
33246
34843
  UPDATE = [
33247
34844
  [:async, TrueClass].freeze,
34845
+ [:seal, TrueClass].freeze,
33248
34846
  ].freeze
33249
34847
 
33250
34848
  private_constant :UPDATE
@@ -33277,6 +34875,33 @@ module OvirtSDK4
33277
34875
  #
33278
34876
  # @option opts [Boolean] :async Indicates if the update should be performed asynchronously.
33279
34877
  #
34878
+ # @option opts [Boolean] :seal Specifies if virtual machines created for the pool should be sealed after creation.
34879
+ #
34880
+ # If this optional parameter is provided, and its value is `true`, virtual machines created for the pool
34881
+ # will be sealed after creation. If the value is 'false', the virtual machines will not be sealed.
34882
+ # If the parameter is not provided, the virtual machines will be sealed, only if they are created from
34883
+ # a sealed template and their guest OS is not set to Windows. This parameter affects only the virtual machines
34884
+ # created when the pool is updated.
34885
+ #
34886
+ # For example, to update a virtual machine pool and to seal the additional virtual machines that are created,
34887
+ # send a request like this:
34888
+ #
34889
+ # [source]
34890
+ # ----
34891
+ # PUT /ovirt-engine/api/vmpools/123?seal=true
34892
+ # ----
34893
+ #
34894
+ # With the following body:
34895
+ #
34896
+ # [source,xml]
34897
+ # ----
34898
+ # <vmpool>
34899
+ # <name>VM_Pool_B</name>
34900
+ # <description>Virtual Machine Pool B</description>
34901
+ # <size>7</size>
34902
+ # </vmpool>
34903
+ # ----
34904
+ #
33280
34905
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
33281
34906
  #
33282
34907
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -33326,6 +34951,7 @@ module OvirtSDK4
33326
34951
  class VmPoolsService < Service
33327
34952
 
33328
34953
  ADD = [
34954
+ [:seal, TrueClass].freeze,
33329
34955
  ].freeze
33330
34956
 
33331
34957
  private_constant :ADD
@@ -33356,6 +34982,34 @@ module OvirtSDK4
33356
34982
  #
33357
34983
  # @param opts [Hash] Additional options.
33358
34984
  #
34985
+ # @option opts [Boolean] :seal Specifies if virtual machines created for the pool should be sealed after creation.
34986
+ #
34987
+ # If this optional parameter is provided, and its value is `true`, virtual machines created for the pool
34988
+ # will be sealed after creation. If the value is 'false', the virtual machines will not be sealed.
34989
+ # If the parameter is not provided, the virtual machines will be sealed, only if they are created from
34990
+ # a sealed template and their guest OS is not set to Windows. This parameter affects only the virtual machines
34991
+ # created when the pool is created.
34992
+ #
34993
+ # For example, to create a virtual machine pool with 5 virtual machines and to seal them, send a request
34994
+ # like this:
34995
+ #
34996
+ # [source]
34997
+ # ----
34998
+ # POST /ovirt-engine/api/vmpools?seal=true
34999
+ # ----
35000
+ #
35001
+ # With the following body:
35002
+ #
35003
+ # [source,xml]
35004
+ # ----
35005
+ # <vmpool>
35006
+ # <name>mypool</name>
35007
+ # <cluster id="123"/>
35008
+ # <template id="456"/>
35009
+ # <size>5</size>
35010
+ # </vmpool>
35011
+ # ----
35012
+ #
33359
35013
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
33360
35014
  #
33361
35015
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -33978,6 +35632,7 @@ module OvirtSDK4
33978
35632
  [:clone, TrueClass].freeze,
33979
35633
  [:clone_permissions, TrueClass].freeze,
33980
35634
  [:filter, TrueClass].freeze,
35635
+ [:seal, TrueClass].freeze,
33981
35636
  ].freeze
33982
35637
 
33983
35638
  private_constant :ADD
@@ -34118,7 +35773,7 @@ module OvirtSDK4
34118
35773
  # ----
34119
35774
  #
34120
35775
  # In order to boot from CDROM, you first need to insert a disk, as described in the
34121
- # <<services/vm_cdrom, CDROM service>>. Then booting from that CDROM can be specified using the `os.boot.devices`
35776
+ # xref:services-vm_cdrom[CDROM service]. Then booting from that CDROM can be specified using the `os.boot.devices`
34122
35777
  # attribute:
34123
35778
  #
34124
35779
  # [source,xml]
@@ -34144,7 +35799,7 @@ module OvirtSDK4
34144
35799
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34145
35800
  #
34146
35801
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34147
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
35802
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34148
35803
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34149
35804
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34150
35805
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34207,6 +35862,36 @@ module OvirtSDK4
34207
35862
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34208
35863
  # a user (meaning with filter=true).
34209
35864
  #
35865
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
35866
+ #
35867
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
35868
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
35869
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
35870
+ # to Windows.
35871
+ #
35872
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
35873
+ # like this:
35874
+ #
35875
+ # [source]
35876
+ # ----
35877
+ # POST /ovirt-engine/api/vms?seal=true
35878
+ # ----
35879
+ #
35880
+ # With a request body like this:
35881
+ #
35882
+ # [source,xml]
35883
+ # ----
35884
+ # <vm>
35885
+ # <name>myvm<name>
35886
+ # <template>
35887
+ # <name>mytemplate<name>
35888
+ # </template>
35889
+ # <cluster>
35890
+ # <name>mycluster<name>
35891
+ # </cluster>
35892
+ # </vm>
35893
+ # ----
35894
+ #
34210
35895
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34211
35896
  #
34212
35897
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34226,6 +35911,7 @@ module OvirtSDK4
34226
35911
  [:clone, TrueClass].freeze,
34227
35912
  [:clone_permissions, TrueClass].freeze,
34228
35913
  [:filter, TrueClass].freeze,
35914
+ [:seal, TrueClass].freeze,
34229
35915
  ].freeze
34230
35916
 
34231
35917
  private_constant :ADD_FROM_CONFIGURATION
@@ -34240,7 +35926,7 @@ module OvirtSDK4
34240
35926
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34241
35927
  #
34242
35928
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34243
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
35929
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34244
35930
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34245
35931
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34246
35932
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34303,6 +35989,36 @@ module OvirtSDK4
34303
35989
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34304
35990
  # a user (meaning with filter=true).
34305
35991
  #
35992
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
35993
+ #
35994
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
35995
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
35996
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
35997
+ # to Windows.
35998
+ #
35999
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
36000
+ # like this:
36001
+ #
36002
+ # [source]
36003
+ # ----
36004
+ # POST /ovirt-engine/api/vms?seal=true
36005
+ # ----
36006
+ #
36007
+ # With a request body like this:
36008
+ #
36009
+ # [source,xml]
36010
+ # ----
36011
+ # <vm>
36012
+ # <name>myvm<name>
36013
+ # <template>
36014
+ # <name>mytemplate<name>
36015
+ # </template>
36016
+ # <cluster>
36017
+ # <name>mycluster<name>
36018
+ # </cluster>
36019
+ # </vm>
36020
+ # ----
36021
+ #
34306
36022
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34307
36023
  #
34308
36024
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34322,6 +36038,7 @@ module OvirtSDK4
34322
36038
  [:clone, TrueClass].freeze,
34323
36039
  [:clone_permissions, TrueClass].freeze,
34324
36040
  [:filter, TrueClass].freeze,
36041
+ [:seal, TrueClass].freeze,
34325
36042
  ].freeze
34326
36043
 
34327
36044
  private_constant :ADD_FROM_SCRATCH
@@ -34336,7 +36053,7 @@ module OvirtSDK4
34336
36053
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34337
36054
  #
34338
36055
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34339
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
36056
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34340
36057
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34341
36058
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34342
36059
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34399,6 +36116,36 @@ module OvirtSDK4
34399
36116
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34400
36117
  # a user (meaning with filter=true).
34401
36118
  #
36119
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
36120
+ #
36121
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
36122
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
36123
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
36124
+ # to Windows.
36125
+ #
36126
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
36127
+ # like this:
36128
+ #
36129
+ # [source]
36130
+ # ----
36131
+ # POST /ovirt-engine/api/vms?seal=true
36132
+ # ----
36133
+ #
36134
+ # With a request body like this:
36135
+ #
36136
+ # [source,xml]
36137
+ # ----
36138
+ # <vm>
36139
+ # <name>myvm<name>
36140
+ # <template>
36141
+ # <name>mytemplate<name>
36142
+ # </template>
36143
+ # <cluster>
36144
+ # <name>mycluster<name>
36145
+ # </cluster>
36146
+ # </vm>
36147
+ # ----
36148
+ #
34402
36149
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34403
36150
  #
34404
36151
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34418,6 +36165,7 @@ module OvirtSDK4
34418
36165
  [:clone, TrueClass].freeze,
34419
36166
  [:clone_permissions, TrueClass].freeze,
34420
36167
  [:filter, TrueClass].freeze,
36168
+ [:seal, TrueClass].freeze,
34421
36169
  ].freeze
34422
36170
 
34423
36171
  private_constant :ADD_FROM_SNAPSHOT
@@ -34432,7 +36180,7 @@ module OvirtSDK4
34432
36180
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34433
36181
  #
34434
36182
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34435
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
36183
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34436
36184
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34437
36185
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34438
36186
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34495,6 +36243,36 @@ module OvirtSDK4
34495
36243
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34496
36244
  # a user (meaning with filter=true).
34497
36245
  #
36246
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
36247
+ #
36248
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
36249
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
36250
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
36251
+ # to Windows.
36252
+ #
36253
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
36254
+ # like this:
36255
+ #
36256
+ # [source]
36257
+ # ----
36258
+ # POST /ovirt-engine/api/vms?seal=true
36259
+ # ----
36260
+ #
36261
+ # With a request body like this:
36262
+ #
36263
+ # [source,xml]
36264
+ # ----
36265
+ # <vm>
36266
+ # <name>myvm<name>
36267
+ # <template>
36268
+ # <name>mytemplate<name>
36269
+ # </template>
36270
+ # <cluster>
36271
+ # <name>mycluster<name>
36272
+ # </cluster>
36273
+ # </vm>
36274
+ # ----
36275
+ #
34498
36276
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34499
36277
  #
34500
36278
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34516,6 +36294,7 @@ module OvirtSDK4
34516
36294
  [:filter, TrueClass].freeze,
34517
36295
  [:follow, String].freeze,
34518
36296
  [:max, Integer].freeze,
36297
+ [:ovf_as_ova, TrueClass].freeze,
34519
36298
  [:search, String].freeze,
34520
36299
  ].freeze
34521
36300
 
@@ -34559,6 +36338,16 @@ module OvirtSDK4
34559
36338
  #
34560
36339
  # @option opts [Integer] :max The maximum number of results to return.
34561
36340
  #
36341
+ # @option opts [Boolean] :ovf_as_ova Indicates if the results should expose the OVF as it appears in OVA files of that VM. The OVF document
36342
+ # describing the virtual machine. This parameter will work only when all_content=True is set.
36343
+ # The OVF will be presented in `initialization.configuration.data`.
36344
+ #
36345
+ # For example:
36346
+ # [source]
36347
+ # ----
36348
+ # GET /vms?all_content=true&ovf_as_ova=true
36349
+ # ----
36350
+ #
34562
36351
  # @option opts [String] :search A query string used to restrict the returned virtual machines.
34563
36352
  #
34564
36353
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
@@ -34755,7 +36544,7 @@ module OvirtSDK4
34755
36544
  #
34756
36545
  # Please note that there is a default network filter to each VNIC profile.
34757
36546
  # For more details of how the default network filter is calculated please refer to
34758
- # the documentation in <<services/network_filters,NetworkFilters>>.
36547
+ # the documentation in xref:services-network_filters[NetworkFilters].
34759
36548
  #
34760
36549
  # NOTE: The automatically created vNIC profile for the external network will be without network filter.
34761
36550
  #
@@ -35067,7 +36856,7 @@ module OvirtSDK4
35067
36856
  # Copies a disk to the specified storage domain.
35068
36857
  #
35069
36858
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35070
- # compatibility. It will be removed in the future. To copy a disk use the <<services/disk/methods/copy, copy>>
36859
+ # compatibility. It will be removed in the future. To copy a disk use the xref:services-disk-methods-copy[copy]
35071
36860
  # operation of the service that manages that disk.
35072
36861
  #
35073
36862
  # @param opts [Hash] Additional options.
@@ -35099,7 +36888,7 @@ module OvirtSDK4
35099
36888
  # Exports a disk to an export storage domain.
35100
36889
  #
35101
36890
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35102
- # compatibility. It will be removed in the future. To export a disk use the <<services/disk/methods/export, export>>
36891
+ # compatibility. It will be removed in the future. To export a disk use the xref:services-disk-methods-export[export]
35103
36892
  # operation of the service that manages that disk.
35104
36893
  #
35105
36894
  # @param opts [Hash] Additional options.
@@ -35160,7 +36949,7 @@ module OvirtSDK4
35160
36949
  # Moves a disk to another storage domain.
35161
36950
  #
35162
36951
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35163
- # compatibility. It will be removed in the future. To move a disk use the <<services/disk/methods/move, move>>
36952
+ # compatibility. It will be removed in the future. To move a disk use the xref:services-disk-methods-move[move]
35164
36953
  # operation of the service that manages that disk.
35165
36954
  #
35166
36955
  # @param opts [Hash] Additional options.
@@ -35216,7 +37005,7 @@ module OvirtSDK4
35216
37005
  # Removes a disk.
35217
37006
  #
35218
37007
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35219
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
37008
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
35220
37009
  # operation of the service that manages that disk.
35221
37010
  #
35222
37011
  # @param opts [Hash] Additional options.
@@ -35243,7 +37032,7 @@ module OvirtSDK4
35243
37032
  # Sparsify the disk.
35244
37033
  #
35245
37034
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35246
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
37035
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
35247
37036
  # operation of the service that manages that disk.
35248
37037
  #
35249
37038
  # @param opts [Hash] Additional options.
@@ -35271,7 +37060,7 @@ module OvirtSDK4
35271
37060
  #
35272
37061
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35273
37062
  # compatibility. It will be removed in the future. To update a disk use the
35274
- # <<services/disk/methods/update, update>> operation of the service that manages that disk.
37063
+ # xref:services-disk-methods-update[update] operation of the service that manages that disk.
35275
37064
  #
35276
37065
  # @param disk [Disk] The update to apply to the disk.
35277
37066
  # @param opts [Hash] Additional options.
@@ -35339,6 +37128,60 @@ module OvirtSDK4
35339
37128
 
35340
37129
  class DiskService < MeasurableService
35341
37130
 
37131
+ CONVERT = [
37132
+ [:disk, Disk].freeze,
37133
+ [:follow, String].freeze,
37134
+ ].freeze
37135
+
37136
+ private_constant :CONVERT
37137
+
37138
+ #
37139
+ # Converts disk format and/or preallocation mode.
37140
+ #
37141
+ # For example, to convert the disk format from preallocated-cow to a sparse-raw image,
37142
+ # send a request like the following:
37143
+ #
37144
+ # [source]
37145
+ # ----
37146
+ # POST /ovirt-engine/api/disks/123/convert
37147
+ # ----
37148
+ #
37149
+ # With the following request body:
37150
+ #
37151
+ # [source,xml]
37152
+ # ----
37153
+ # <action>
37154
+ # <disk>
37155
+ # <sparse>true</sparse>
37156
+ # <format>raw</format>
37157
+ # </disk>
37158
+ # </action>
37159
+ # ----
37160
+ #
37161
+ # Note: In order to sparsify a disk, two conversions might be needed if the disk is on a Block Storage Domain.
37162
+ # For example: If a disk is RAW, converting it to QCOW will result in a larger disk. In order to reduce the size,
37163
+ # it is possible to convert the disk again to QCOW and keep the same allocation policy.
37164
+ #
37165
+ # @param opts [Hash] Additional options.
37166
+ #
37167
+ # @option opts [Disk] :disk The description of the disk.
37168
+ #
37169
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
37170
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
37171
+ #
37172
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
37173
+ #
37174
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
37175
+ #
37176
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
37177
+ # given then the timeout set globally for the connection will be used.
37178
+ #
37179
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
37180
+ #
37181
+ def convert(opts = {})
37182
+ internal_action(:convert, nil, CONVERT, opts)
37183
+ end
37184
+
35342
37185
  COPY = [
35343
37186
  [:async, TrueClass].freeze,
35344
37187
  [:disk, Disk].freeze,
@@ -35638,7 +37481,7 @@ module OvirtSDK4
35638
37481
  # Refreshing a direct LUN disk is useful when:
35639
37482
  #
35640
37483
  # - The LUN was added using the API without the host parameter, and therefore does not contain
35641
- # any information from the storage (see <<services/disks/methods/add, DisksService::add>>).
37484
+ # any information from the storage (see xref:services-disks-methods-add[DisksService::add]).
35642
37485
  # - New information about the LUN is available on the storage and you want to update the LUN with it.
35643
37486
  #
35644
37487
  # To refresh direct LUN disk `123` using host `456`, send the following request:
@@ -35742,7 +37585,9 @@ module OvirtSDK4
35742
37585
  #
35743
37586
  # * For LUN disks: `alias`, `description` and `shareable`.
35744
37587
  #
35745
- # * For Cinder and Managed Block disks: `provisioned_size`, `alias` and `description`.
37588
+ # * Cinder integration has been replaced by Managed Block Storage.
37589
+ #
37590
+ # * For Managed Block disks: `provisioned_size`, `alias` and `description`.
35746
37591
  #
35747
37592
  # * For VM attached disks, the `qcow_version` can also be updated.
35748
37593
  #
@@ -35785,6 +37630,26 @@ module OvirtSDK4
35785
37630
  internal_update(disk, Disk, UPDATE, opts)
35786
37631
  end
35787
37632
 
37633
+ #
37634
+ # Reference to the service that manages the DiskSnapshots.
37635
+ #
37636
+ # For example, to list all disk snapshots under the disks resource '123':
37637
+ #
37638
+ # ....
37639
+ # GET /ovirt-engine/api/disks/123/disksnapshots
37640
+ # ....
37641
+ #
37642
+ # For example, to retrieve a specific disk snapshot '789' under the disk resource '123':
37643
+ # ....
37644
+ # GET /ovirt-engine/api/disks/123/disksnapshots/789
37645
+ # ....
37646
+ #
37647
+ # @return [DiskSnapshotsService] A reference to `disk_snapshots` service.
37648
+ #
37649
+ def disk_snapshots_service
37650
+ @disk_snapshots_service ||= DiskSnapshotsService.new(self, 'disksnapshots')
37651
+ end
37652
+
35788
37653
  #
35789
37654
  # Reference to the service that manages the permissions assigned to the disk.
35790
37655
  #
@@ -35814,6 +37679,12 @@ module OvirtSDK4
35814
37679
  if path.nil? || path == ''
35815
37680
  return self
35816
37681
  end
37682
+ if path == 'disksnapshots'
37683
+ return disk_snapshots_service
37684
+ end
37685
+ if path.start_with?('disksnapshots/')
37686
+ return disk_snapshots_service.service(path[14..-1])
37687
+ end
35817
37688
  if path == 'permissions'
35818
37689
  return permissions_service
35819
37690
  end
@@ -36272,7 +38143,7 @@ module OvirtSDK4
36272
38143
  #
36273
38144
  # Removes a brick from the underlying gluster volume and deletes entries from database. This can be used only when
36274
38145
  # removing a single brick without data migration. To remove multiple bricks and with data migration, use
36275
- # <<services/gluster_bricks/methods/migrate, migrate>> instead.
38146
+ # xref:services-gluster_bricks-methods-migrate[migrate] instead.
36276
38147
  #
36277
38148
  # For example, to delete brick `234` from gluster volume `123`, send a request like this:
36278
38149
  #
@@ -36308,8 +38179,8 @@ module OvirtSDK4
36308
38179
  # Replaces this brick with a new one.
36309
38180
  #
36310
38181
  # IMPORTANT: This operation has been deprecated since version 3.5 of the engine and will be removed in the future.
36311
- # Use <<services/gluster_bricks/methods/add, add brick(s)>> and
36312
- # <<services/gluster_bricks/methods/migrate, migrate brick(s)>> instead.
38182
+ # Use xref:services-gluster_bricks-methods-add[add brick(s)] and
38183
+ # xref:services-gluster_bricks-methods-migrate[migrate brick(s)] instead.
36313
38184
  #
36314
38185
  # @param opts [Hash] Additional options.
36315
38186
  #
@@ -36928,6 +38799,7 @@ module OvirtSDK4
36928
38799
  [:async, TrueClass].freeze,
36929
38800
  [:cluster, Cluster].freeze,
36930
38801
  [:host, Host].freeze,
38802
+ [:reboot, TrueClass].freeze,
36931
38803
  ].freeze
36932
38804
 
36933
38805
  private_constant :APPROVE
@@ -36949,6 +38821,8 @@ module OvirtSDK4
36949
38821
  #
36950
38822
  # @option opts [Host] :host The host to approve.
36951
38823
  #
38824
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
38825
+ #
36952
38826
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
36953
38827
  #
36954
38828
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -36993,10 +38867,10 @@ module OvirtSDK4
36993
38867
  # ----
36994
38868
  #
36995
38869
  # IMPORTANT: Since {engine-name} 4.3, it is possible to also specify `commit_on_success` in
36996
- # the <<services/host/methods/setup_networks, setupnetworks>> request, in which case the new
38870
+ # the xref:services-host-methods-setup_networks[setupnetworks] request, in which case the new
36997
38871
  # configuration is automatically saved in the {hypervisor-name} upon completing the setup and
36998
38872
  # re-establishing connectivity between the {hypervisor-name} and {engine-name}, and without
36999
- # waiting for a separate <<services/host/methods/commit_net_config, commitnetconfig>> request.
38873
+ # waiting for a separate xref:services-host-methods-commit_net_config[commitnetconfig] request.
37000
38874
  #
37001
38875
  # @param opts [Hash] Additional options.
37002
38876
  #
@@ -37025,6 +38899,9 @@ module OvirtSDK4
37025
38899
  #
37026
38900
  # Copy the network configuration of the specified host to current host.
37027
38901
  #
38902
+ # IMPORTANT: Any network attachments that are not present on the source host will be erased from the target host
38903
+ # by the copy operation.
38904
+ #
37028
38905
  # To copy networks from another host, send a request like this:
37029
38906
  #
37030
38907
  # [source]
@@ -37037,7 +38914,7 @@ module OvirtSDK4
37037
38914
  # [source,xml]
37038
38915
  # ----
37039
38916
  # <action>
37040
- # <sourceHost id="456" />
38917
+ # <source_host id="456"/>
37041
38918
  # </action>
37042
38919
  # ----
37043
38920
  #
@@ -37093,6 +38970,75 @@ module OvirtSDK4
37093
38970
  internal_action(:deactivate, nil, DEACTIVATE, opts)
37094
38971
  end
37095
38972
 
38973
+ DISCOVER_ISCSI = [
38974
+ [:async, TrueClass].freeze,
38975
+ [:iscsi, IscsiDetails].freeze,
38976
+ ].freeze
38977
+
38978
+ private_constant :DISCOVER_ISCSI
38979
+
38980
+ #
38981
+ # Discovers iSCSI targets on the host, using the initiator details.
38982
+ # Returns a list of IscsiDetails objects containing the discovered data.
38983
+ #
38984
+ # For example, to discover iSCSI targets available in `myiscsi.example.com`,
38985
+ # from host `123`, send a request like this:
38986
+ #
38987
+ # [source]
38988
+ # ----
38989
+ # POST /ovirt-engine/api/hosts/123/discoveriscsi
38990
+ # ----
38991
+ #
38992
+ # With a request body like this:
38993
+ #
38994
+ # [source,xml]
38995
+ # ----
38996
+ # <action>
38997
+ # <iscsi>
38998
+ # <address>myiscsi.example.com</address>
38999
+ # </iscsi>
39000
+ # </action>
39001
+ # ----
39002
+ #
39003
+ # The result will be like this:
39004
+ #
39005
+ # [source,xml]
39006
+ # ----
39007
+ # <discovered_targets>
39008
+ # <iscsi_details>
39009
+ # <address>10.35.1.72</address>
39010
+ # <port>3260</port>
39011
+ # <portal>10.35.1.72:3260,1</portal>
39012
+ # <target>iqn.2015-08.com.tgt:444</target>
39013
+ # </iscsi_details>
39014
+ # </discovered_targets>
39015
+ # ----
39016
+ #
39017
+ # IMPORTANT: When using this method to discover iscsi targets, you can use an FQDN or an
39018
+ # IP address, but you must use the iscsi details from the discovered targets results to log in
39019
+ # using the iscsilogin method.
39020
+ #
39021
+ # @param opts [Hash] Additional options.
39022
+ #
39023
+ # @option opts [Boolean] :async Indicates if the discovery should be performed asynchronously.
39024
+ #
39025
+ # @option opts [Array<IscsiDetails>] :discovered_targets The discovered targets including all connection information.
39026
+ #
39027
+ # @option opts [IscsiDetails] :iscsi The target iSCSI device.
39028
+ #
39029
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
39030
+ #
39031
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
39032
+ #
39033
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
39034
+ # given then the timeout set globally for the connection will be used.
39035
+ #
39036
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
39037
+ #
39038
+ def discover_iscsi(opts = {})
39039
+ internal_action(:discoveriscsi, :discovered_targets, DISCOVER_ISCSI, opts)
39040
+ end
39041
+
37096
39042
  ENROLL_CERTIFICATE = [
37097
39043
  [:async, TrueClass].freeze,
37098
39044
  ].freeze
@@ -37278,6 +39224,7 @@ module OvirtSDK4
37278
39224
  [:deploy_hosted_engine, TrueClass].freeze,
37279
39225
  [:host, Host].freeze,
37280
39226
  [:image, String].freeze,
39227
+ [:reboot, TrueClass].freeze,
37281
39228
  [:root_password, String].freeze,
37282
39229
  [:ssh, Ssh].freeze,
37283
39230
  [:undeploy_hosted_engine, TrueClass].freeze,
@@ -37329,9 +39276,10 @@ module OvirtSDK4
37329
39276
  # --data '
37330
39277
  # {
37331
39278
  # "root_password": "myrootpassword"
39279
+ # "deploy_hosted_engine" : "true"
37332
39280
  # }
37333
39281
  # ' \
37334
- # "https://engine.example.com/ovirt-engine/api/hosts/123?deploy_hosted_engine=true"
39282
+ # "https://engine.example.com/ovirt-engine/api/hosts/123"
37335
39283
  # ----
37336
39284
  #
37337
39285
  # IMPORTANT: Since version 4.1.2 of the engine, when a host is reinstalled we override the host firewall
@@ -37354,6 +39302,8 @@ module OvirtSDK4
37354
39302
  #
37355
39303
  # @option opts [String] :image When installing {hypervisor-name}, an ISO image file is required.
37356
39304
  #
39305
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
39306
+ #
37357
39307
  # @option opts [String] :root_password The password of the `root` user used to connect to the host via SSH.
37358
39308
  #
37359
39309
  # @option opts [Ssh] :ssh The SSH details used to connect to the host.
@@ -37382,8 +39332,12 @@ module OvirtSDK4
37382
39332
 
37383
39333
  private_constant :ISCSI_DISCOVER
37384
39334
 
39335
+ #
39336
+ # This method has been deprecated since Engine version 4.4.6.
39337
+ # DiscoverIscsi should be used instead.
37385
39338
  #
37386
39339
  # Discovers iSCSI targets on the host, using the initiator details.
39340
+ # Returns an array of strings containing the discovered data.
37387
39341
  #
37388
39342
  # For example, to discover iSCSI targets available in `myiscsi.example.com`,
37389
39343
  # from host `123`, send a request like this:
@@ -37404,32 +39358,14 @@ module OvirtSDK4
37404
39358
  # </action>
37405
39359
  # ----
37406
39360
  #
37407
- # The result will be like this:
37408
- #
37409
- # [source,xml]
37410
- # ----
37411
- # <discovered_targets>
37412
- # <iscsi_details>
37413
- # <address>10.35.1.72</address>
37414
- # <port>3260</port>
37415
- # <portal>10.35.1.72:3260,1</portal>
37416
- # <target>iqn.2015-08.com.tgt:444</target>
37417
- # </iscsi_details>
37418
- # </discovered_targets>
37419
- # ----
37420
- #
37421
39361
  # @param opts [Hash] Additional options.
37422
39362
  #
37423
39363
  # @option opts [Boolean] :async Indicates if the discovery should be performed asynchronously.
37424
39364
  #
37425
- # @option opts [Array<IscsiDetails>] :discovered_targets The discovered targets including all connection information.
37426
- #
37427
39365
  # @option opts [IscsiDetails] :iscsi The target iSCSI device.
37428
39366
  #
37429
39367
  # @option opts [Array<String>] :iscsi_targets The iSCSI targets.
37430
- #
37431
- # Since version 4.2 of the engine, this parameter is deprecated, use
37432
- # `discovered_targets` instead.
39368
+ # *
37433
39369
  #
37434
39370
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
37435
39371
  #
@@ -37454,6 +39390,10 @@ module OvirtSDK4
37454
39390
  #
37455
39391
  # Login to iSCSI targets on the host, using the target details.
37456
39392
  #
39393
+ #
39394
+ # IMPORTANT: When using this method to log in, you must use the iscsi details from the
39395
+ # discovered targets results in the discoveriscsi method.
39396
+ #
37457
39397
  # @param opts [Hash] Additional options.
37458
39398
  #
37459
39399
  # @option opts [Boolean] :async Indicates if the login should be performed asynchronously.
@@ -37619,8 +39559,8 @@ module OvirtSDK4
37619
39559
  # <name>bond0</name>
37620
39560
  # </host_nic>
37621
39561
  # <ip_address_assignments>
37622
- # <assignment_method>static</assignment_method>
37623
39562
  # <ip_address_assignment>
39563
+ # <assignment_method>static</assignment_method>
37624
39564
  # <ip>
37625
39565
  # <address>192.168.122.10</address>
37626
39566
  # <netmask>255.255.255.0</netmask>
@@ -37724,13 +39664,13 @@ module OvirtSDK4
37724
39664
  # ----
37725
39665
  #
37726
39666
  # IMPORTANT: To make sure that the network configuration has been saved in the host, and that it will be applied
37727
- # when the host is rebooted, remember to call <<services/host/methods/commit_net_config, commitnetconfig>>.
39667
+ # when the host is rebooted, remember to call xref:services-host-methods-commit_net_config[commitnetconfig].
37728
39668
  #
37729
39669
  # IMPORTANT: Since {engine-name} 4.3, it is possible to also specify `commit_on_success` in
37730
- # the <<services/host/methods/setup_networks, setupnetworks>> request, in which case the new
39670
+ # the xref:services-host-methods-setup_networks[setupnetworks] request, in which case the new
37731
39671
  # configuration is automatically saved in the {hypervisor-name} upon completing the setup and
37732
39672
  # re-establishing connectivity between the {hypervisor-name} and {engine-name}, and without
37733
- # waiting for a separate <<services/host/methods/commit_net_config, commitnetconfig>> request.
39673
+ # waiting for a separate xref:services-host-methods-commit_net_config[commitnetconfig] request.
37734
39674
  #
37735
39675
  # @param opts [Hash] Additional options.
37736
39676
  #
@@ -37740,7 +39680,7 @@ module OvirtSDK4
37740
39680
  #
37741
39681
  # @option opts [Boolean] :commit_on_success Specifies whether to automatically save the configuration in the {hypervisor-name} upon completing
37742
39682
  # the setup and re-establishing connectivity between the {hypervisor-name} and {engine-name},
37743
- # and without waiting for a separate <<services/host/methods/commit_net_config, commitnetconfig>>
39683
+ # and without waiting for a separate xref:services-host-methods-commit_net_config[commitnetconfig]
37744
39684
  # request.
37745
39685
  # The default value is `false`, which means that the configuration will not be
37746
39686
  # saved automatically.
@@ -37941,7 +39881,7 @@ module OvirtSDK4
37941
39881
  # Check if there are upgrades available for the host. If there are upgrades available an icon will be displayed
37942
39882
  # next to host status icon in the Administration Portal. Audit log messages are also added to indicate the
37943
39883
  # availability of upgrades. The upgrade can be started from the webadmin or by using the
37944
- # <<services/host/methods/upgrade, upgrade>> host action.
39884
+ # xref:services-host-methods-upgrade[upgrade] host action.
37945
39885
  #
37946
39886
  # @param opts [Hash] Additional options.
37947
39887
  #
@@ -37963,6 +39903,7 @@ module OvirtSDK4
37963
39903
  [:async, TrueClass].freeze,
37964
39904
  [:cluster, Cluster].freeze,
37965
39905
  [:host, Host].freeze,
39906
+ [:reboot, TrueClass].freeze,
37966
39907
  ].freeze
37967
39908
 
37968
39909
  private_constant :APPROVE_USING_ROOT_PASSWORD
@@ -37982,6 +39923,8 @@ module OvirtSDK4
37982
39923
  #
37983
39924
  # @option opts [Host] :host The host to approve.
37984
39925
  #
39926
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
39927
+ #
37985
39928
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
37986
39929
  #
37987
39930
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -38001,6 +39944,7 @@ module OvirtSDK4
38001
39944
  [:deploy_hosted_engine, TrueClass].freeze,
38002
39945
  [:host, Host].freeze,
38003
39946
  [:image, String].freeze,
39947
+ [:reboot, TrueClass].freeze,
38004
39948
  [:root_password, String].freeze,
38005
39949
  [:ssh, Ssh].freeze,
38006
39950
  [:undeploy_hosted_engine, TrueClass].freeze,
@@ -38029,6 +39973,8 @@ module OvirtSDK4
38029
39973
  #
38030
39974
  # @option opts [String] :image When installing {hypervisor-name}, an ISO image file is required.
38031
39975
  #
39976
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
39977
+ #
38032
39978
  # @option opts [String] :root_password The password of the `root` user used to connect to the host via SSH.
38033
39979
  #
38034
39980
  # @option opts [Ssh] :ssh The SSH details used to connect to the host.
@@ -38084,6 +40030,7 @@ module OvirtSDK4
38084
40030
  [:async, TrueClass].freeze,
38085
40031
  [:cluster, Cluster].freeze,
38086
40032
  [:host, Host].freeze,
40033
+ [:reboot, TrueClass].freeze,
38087
40034
  ].freeze
38088
40035
 
38089
40036
  private_constant :APPROVE_USING_SSH
@@ -38104,6 +40051,8 @@ module OvirtSDK4
38104
40051
  #
38105
40052
  # @option opts [Host] :host The host to approve.
38106
40053
  #
40054
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
40055
+ #
38107
40056
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
38108
40057
  #
38109
40058
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -38123,6 +40072,7 @@ module OvirtSDK4
38123
40072
  [:deploy_hosted_engine, TrueClass].freeze,
38124
40073
  [:host, Host].freeze,
38125
40074
  [:image, String].freeze,
40075
+ [:reboot, TrueClass].freeze,
38126
40076
  [:root_password, String].freeze,
38127
40077
  [:ssh, Ssh].freeze,
38128
40078
  [:undeploy_hosted_engine, TrueClass].freeze,
@@ -38151,6 +40101,8 @@ module OvirtSDK4
38151
40101
  #
38152
40102
  # @option opts [String] :image When installing {hypervisor-name}, an ISO image file is required.
38153
40103
  #
40104
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
40105
+ #
38154
40106
  # @option opts [String] :root_password The password of the `root` user used to connect to the host via SSH.
38155
40107
  #
38156
40108
  # @option opts [Ssh] :ssh The SSH details used to connect to the host.
@@ -38210,6 +40162,17 @@ module OvirtSDK4
38210
40162
  @affinity_labels_service ||= AssignedAffinityLabelsService.new(self, 'affinitylabels')
38211
40163
  end
38212
40164
 
40165
+ #
40166
+ # A reference to the list of all host's CPUs with detailed information
40167
+ # about the topology (socket, core) and with information
40168
+ # about the current CPU pinning.
40169
+ #
40170
+ # @return [HostCpuUnitsService] A reference to `cpu_units` service.
40171
+ #
40172
+ def cpu_units_service
40173
+ @cpu_units_service ||= HostCpuUnitsService.new(self, 'cpuunits')
40174
+ end
40175
+
38213
40176
  #
38214
40177
  # A reference to the host devices service. Use this service to view the devices of the host object.
38215
40178
  #
@@ -38357,6 +40320,12 @@ module OvirtSDK4
38357
40320
  if path.start_with?('affinitylabels/')
38358
40321
  return affinity_labels_service.service(path[15..-1])
38359
40322
  end
40323
+ if path == 'cpuunits'
40324
+ return cpu_units_service
40325
+ end
40326
+ if path.start_with?('cpuunits/')
40327
+ return cpu_units_service.service(path[9..-1])
40328
+ end
38360
40329
  if path == 'devices'
38361
40330
  return devices_service
38362
40331
  end