docs: update generated docs (#981)

diff --git a/docs/dyn/osconfig_v1beta.projects.patchDeployments.html b/docs/dyn/osconfig_v1beta.projects.patchDeployments.html
index da4c8b5..75b5911 100644
--- a/docs/dyn/osconfig_v1beta.projects.patchDeployments.html
+++ b/docs/dyn/osconfig_v1beta.projects.patchDeployments.html
@@ -104,32 +104,192 @@
     # repository settings, and a schedule. For more information about creating and
     # managing patch deployments, see [Scheduling patch
     # jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
-  "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
-      # to 1024 characters.
-  "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
-      # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-  "updateTime": "A String", # Output only. Time the patch deployment was last updated. Timestamp is in
-      # [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
-  "name": "A String", # Unique name for the patch deployment resource in a project. The patch
-      # deployment name is in the form:
-      # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
-      # This field is ignored when you create a new patch deployment.
+  "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
+      # patch(es) to a VM instance.
+    "yum": { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
+        # rules.
+        # can be set to control how this is executed.
+        #
+        # Note that not all settings are supported on all platforms.
+      "excludes": [ # List of packages to exclude from update. These packages are excluded by
+          # using the yum `--exclude` flag.
+        "A String",
+      ],
+      "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
+          # that will be updated. If these packages are not installed, they will be
+          # ignored. This field must not be specified with any other patch
+          # configuration fields.
+        "A String",
+      ],
+      "minimal": True or False, # Will cause patch to run `yum update-minimal` instead.
+      "security": True or False, # Adds the `--security` flag to `yum update`. Not supported on
+          # all platforms.
+    },
+    "postStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
+      "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+            # specified the script will be executed directly, which will likely
+            # only succeed for scripts with [shebang lines]
+            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+          "object": "A String", # Required. Name of the Google Cloud Storage object.
+          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+              # ensure that the ExecStep specified by this PatchJob does not change.
+        },
+        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+            # execution can return to indicate a success.
+          42,
+        ],
+        "localPath": "A String", # An absolute path to the executable on the VM.
+      },
+      "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+            # specified the script will be executed directly, which will likely
+            # only succeed for scripts with [shebang lines]
+            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+          "object": "A String", # Required. Name of the Google Cloud Storage object.
+          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+              # ensure that the ExecStep specified by this PatchJob does not change.
+        },
+        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+            # execution can return to indicate a success.
+          42,
+        ],
+        "localPath": "A String", # An absolute path to the executable on the VM.
+      },
+    },
+    "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
+        # rules.
+    },
+    "rebootConfig": "A String", # Post-patch reboot settings.
+    "apt": { # Apt patching is completed by executing `apt-get update && apt-get # Apt update settings. Use this setting to override the default `apt` patch
+        # rules.
+        # upgrade`. Additional options can be set to control how this is executed.
+      "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
+          # that will be updated. If these packages are not installed, they will be
+          # ignored. This field cannot be specified with any other patch configuration
+          # fields.
+        "A String",
+      ],
+      "type": "A String", # By changing the type to DIST, the patching is performed
+          # using `apt-get dist-upgrade` instead.
+      "excludes": [ # List of packages to exclude from update. These packages will be excluded
+        "A String",
+      ],
+    },
+    "windowsUpdate": { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
+      "exclusivePatches": [ # An exclusive list of kbs to be updated. These are the only patches
+          # that will be updated. This field must not be used with other
+          # patch configurations.
+        "A String",
+      ],
+      "excludes": [ # List of KBs to exclude from update.
+        "A String",
+      ],
+      "classifications": [ # Only apply updates of these windows update classifications. If empty, all
+          # updates are applied.
+        "A String",
+      ],
+    },
+    "preStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
+      "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+            # specified the script will be executed directly, which will likely
+            # only succeed for scripts with [shebang lines]
+            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+          "object": "A String", # Required. Name of the Google Cloud Storage object.
+          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+              # ensure that the ExecStep specified by this PatchJob does not change.
+        },
+        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+            # execution can return to indicate a success.
+          42,
+        ],
+        "localPath": "A String", # An absolute path to the executable on the VM.
+      },
+      "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+            # specified the script will be executed directly, which will likely
+            # only succeed for scripts with [shebang lines]
+            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+          "object": "A String", # Required. Name of the Google Cloud Storage object.
+          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+              # ensure that the ExecStep specified by this PatchJob does not change.
+        },
+        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+            # execution can return to indicate a success.
+          42,
+        ],
+        "localPath": "A String", # An absolute path to the executable on the VM.
+      },
+    },
+    "zypper": { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
+        # patch rules.
+        # See also https://en.opensuse.org/SDB:Zypper_manual.
+      "exclusivePatches": [ # An exclusive list of patches to be updated. These are the only patches
+          # that will be installed using 'zypper patch patch:<patch_name>' command.
+          # This field must not be used with any other patch configuration fields.
+        "A String",
+      ],
+      "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
+      "excludes": [ # List of patches to exclude from update.
+        "A String",
+      ],
+      "severities": [ # Install only patches with these severities.
+          # Common severities include critical, important, moderate, and low.
+        "A String",
+      ],
+      "withOptional": True or False, # Adds the `--with-optional` flag to `zypper patch`.
+      "categories": [ # Install only patches with these categories.
+          # Common categories include security, recommended, and feature.
+        "A String",
+      ],
+    },
+  },
+  "lastExecuteTime": "A String", # Output only. The last time a patch job was started by this deployment.
+      # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+      # format.
+  "instanceFilter": { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
+      # VMs must meet all criteria specified. So if both labels and zones are
+      # specified, the patch job targets only VMs with those labels and in those
+      # zones.
+    "all": True or False, # Target all VM instances in the project. If true, no other criteria is
+        # permitted.
+    "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
+        # instances in any zone.
+      "A String",
+    ],
+    "instances": [ # Targets any of the VM instances specified. Instances are specified by their
+        # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`,
+        # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
+        # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
+      "A String",
+    ],
+    "groupLabels": [ # Targets VM instances matching at least one of these label sets. This allows
+        # targeting of disparate groups, for example "env=prod or env=staging".
+      { # Represents a group of VMs that can be identified as having all these
+          # labels, for example "env=prod and app=web".
+        "labels": { # Compute Engine instance labels that must be present for a VM instance to
+            # be targeted by this filter.
+          "a_key": "A String",
+        },
+      },
+    ],
+    "instanceNamePrefixes": [ # Targets VMs whose name starts with one of these prefixes. Similar to
+        # labels, this is another way to group VMs when targeting configs, for
+        # example prefix="prod-".
+      "A String",
+    ],
+  },
+  "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
   "recurringSchedule": { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
-    "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
-      "dayOfWeek": "A String", # Required. Day of the week.
-    },
-    "timeOfDay": { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
-        # or are specified elsewhere. An API may choose to allow leap seconds. Related
-        # types are google.type.Date and `google.protobuf.Timestamp`.
-      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
-          # to allow the value "24:00:00" for scenarios like business closing time.
-      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
-          # allow the value 60 if it allows leap-seconds.
-      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
-    },
-    "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
-    "frequency": "A String", # Required. The frequency unit of this recurring schedule.
     "endTime": "A String", # Optional. The end time at which a recurring patch deployment schedule is no longer
         # active.
     "timeZone": { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
@@ -138,210 +298,82 @@
       "id": "A String", # IANA Time Zone Database time zone, e.g. "America/New_York".
       "version": "A String", # Optional. IANA Time Zone Database version number, e.g. "2019a".
     },
+    "frequency": "A String", # Required. The frequency unit of this recurring schedule.
     "nextExecuteTime": "A String", # Output only. The time the next patch job is scheduled to run.
-    "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
-        # Defaults to `create_time` of the patch deployment.
+    "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
+      "dayOfWeek": "A String", # Required. Day of the week.
+    },
+    "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
     "monthly": { # Represents a monthly schedule. An example of a valid monthly schedule is # Required. Schedule with monthly executions.
         # "on the third Tuesday of the month" or "on the 15th of the month".
-      "weekDayOfMonth": { # Represents one week day in a month. An example is "the 4th Sunday". # Required. Week day in a month.
-        "weekOrdinal": 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
-            # indicates the last week of the month.
-        "dayOfWeek": "A String", # Required. A day of the week.
-      },
       "monthDay": 42, # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
           # indicates the last day of the month.
           # Months without the target day will be skipped. For example, a schedule to
           # run "every month on the 31st" will not run in February, April, June, etc.
+      "weekDayOfMonth": { # Represents one week day in a month. An example is "the 4th Sunday". # Required. Week day in a month.
+        "dayOfWeek": "A String", # Required. A day of the week.
+        "weekOrdinal": 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
+            # indicates the last week of the month.
+      },
+    },
+    "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
+        # Defaults to `create_time` of the patch deployment.
+    "timeOfDay": { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
+        # or are specified elsewhere. An API may choose to allow leap seconds. Related
+        # types are google.type.Date and `google.protobuf.Timestamp`.
+      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+          # allow the value 60 if it allows leap-seconds.
+      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+          # to allow the value "24:00:00" for scenarios like business closing time.
     },
   },
+  "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
+      # to 1024 characters.
   "oneTimeSchedule": { # Sets the time for a one time patch deployment. Timestamp is in # Required. Schedule a one-time execution.
       # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "executeTime": "A String", # Required. The desired patch job execution time.
   },
-  "lastExecuteTime": "A String", # Output only. The last time a patch job was started by this deployment.
-      # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
-      # format.
-  "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
-      # patch(es) to a VM instance.
-    "preStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
-      "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-          "object": "A String", # Required. Name of the Google Cloud Storage object.
-          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-              # ensure that the ExecStep specified by this PatchJob does not change.
-        },
-        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-            # specified the script will be executed directly, which will likely
-            # only succeed for scripts with [shebang lines]
-            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-        "localPath": "A String", # An absolute path to the executable on the VM.
-        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-            # execution can return to indicate a success.
-          42,
-        ],
-      },
-      "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-          "object": "A String", # Required. Name of the Google Cloud Storage object.
-          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-              # ensure that the ExecStep specified by this PatchJob does not change.
-        },
-        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-            # specified the script will be executed directly, which will likely
-            # only succeed for scripts with [shebang lines]
-            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-        "localPath": "A String", # An absolute path to the executable on the VM.
-        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-            # execution can return to indicate a success.
-          42,
-        ],
-      },
-    },
-    "windowsUpdate": { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
-      "classifications": [ # Only apply updates of these windows update classifications. If empty, all
-          # updates are applied.
-        "A String",
-      ],
-      "excludes": [ # List of KBs to exclude from update.
-        "A String",
-      ],
-      "exclusivePatches": [ # An exclusive list of kbs to be updated. These are the only patches
-          # that will be updated. This field must not be used with other
-          # patch configurations.
-        "A String",
-      ],
-    },
-    "zypper": { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
-        # patch rules.
-        # See also https://en.opensuse.org/SDB:Zypper_manual.
-      "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
-      "withOptional": True or False, # Adds the `--with-optional` flag to `zypper patch`.
-      "severities": [ # Install only patches with these severities.
-          # Common severities include critical, important, moderate, and low.
-        "A String",
-      ],
-      "categories": [ # Install only patches with these categories.
-          # Common categories include security, recommended, and feature.
-        "A String",
-      ],
-      "exclusivePatches": [ # An exclusive list of patches to be updated. These are the only patches
-          # that will be installed using 'zypper patch patch:<patch_name>' command.
-          # This field must not be used with any other patch configuration fields.
-        "A String",
-      ],
-      "excludes": [ # List of patches to exclude from update.
-        "A String",
-      ],
-    },
-    "postStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
-      "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-          "object": "A String", # Required. Name of the Google Cloud Storage object.
-          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-              # ensure that the ExecStep specified by this PatchJob does not change.
-        },
-        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-            # specified the script will be executed directly, which will likely
-            # only succeed for scripts with [shebang lines]
-            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-        "localPath": "A String", # An absolute path to the executable on the VM.
-        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-            # execution can return to indicate a success.
-          42,
-        ],
-      },
-      "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-        "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-          "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-          "object": "A String", # Required. Name of the Google Cloud Storage object.
-          "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-              # ensure that the ExecStep specified by this PatchJob does not change.
-        },
-        "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-            # specified the script will be executed directly, which will likely
-            # only succeed for scripts with [shebang lines]
-            # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-        "localPath": "A String", # An absolute path to the executable on the VM.
-        "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-            # execution can return to indicate a success.
-          42,
-        ],
-      },
-    },
-    "yum": { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
-        # rules.
-        # can be set to control how this is executed.
+  "name": "A String", # Unique name for the patch deployment resource in a project. The patch
+      # deployment name is in the form:
+      # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
+      # This field is ignored when you create a new patch deployment.
+  "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
+      # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+  "updateTime": "A String", # Output only. Time the patch deployment was last updated. Timestamp is in
+      # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+  "rollout": { # Patch rollout configuration specifications. Contains details on the # Optional. Rollout strategy of the patch job.
+      # concurrency control when applying patch(es) to all targeted VMs.
+    "disruptionBudget": { # Message encapsulating a value that can be either absolute ("fixed") or # The maximum number (or percentage) of VMs per zone to disrupt at any given
+        # moment. The number of VMs calculated from multiplying the percentage by the
+        # total number of VMs in a zone is rounded up.
         #
-        # Note that not all settings are supported on all platforms.
-      "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
-          # that will be updated. If these packages are not installed, they will be
-          # ignored. This field must not be specified with any other patch
-          # configuration fields.
-        "A String",
-      ],
-      "security": True or False, # Adds the `--security` flag to `yum update`. Not supported on
-          # all platforms.
-      "minimal": True or False, # Will cause patch to run `yum update-minimal` instead.
-      "excludes": [ # List of packages to exclude from update. These packages are excluded by
-          # using the yum `--exclude` flag.
-        "A String",
-      ],
+        # During patching, a VM is considered disrupted from the time the agent is
+        # notified to begin until patching has completed. This disruption time
+        # includes the time to complete reboot and any post-patch steps.
+        #
+        # A VM contributes to the disruption budget if its patching operation fails
+        # either when applying the patches, running pre or post patch steps, or if it
+        # fails to respond with a success notification before timing out. VMs that
+        # are not running or do not have an active agent do not count toward this
+        # disruption budget.
+        #
+        # For zone-by-zone rollouts, if the disruption budget in a zone is exceeded,
+        # the patch job stops, because continuing to the next zone requires
+        # completion of the patch process in the previous zone.
+        #
+        # For example, if the disruption budget has a fixed value of `10`, and 8 VMs
+        # fail to patch in the current zone, the patch job continues to patch 2 VMs
+        # at a time until the zone is completed. When that zone is completed
+        # successfully, patching begins with 10 VMs at a time in the next zone. If 10
+        # VMs in the next zone fail to patch, the patch job stops.
+        # relative ("percent") to a value.
+      "percent": 42, # Specifies the relative value defined as a percentage, which will be
+          # multiplied by a reference value.
+      "fixed": 42, # Specifies a fixed value.
     },
-    "apt": { # Apt patching is completed by executing `apt-get update && apt-get # Apt update settings. Use this setting to override the default `apt` patch
-        # rules.
-        # upgrade`. Additional options can be set to control how this is executed.
-      "type": "A String", # By changing the type to DIST, the patching is performed
-          # using `apt-get dist-upgrade` instead.
-      "excludes": [ # List of packages to exclude from update. These packages will be excluded
-        "A String",
-      ],
-      "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
-          # that will be updated. If these packages are not installed, they will be
-          # ignored. This field cannot be specified with any other patch configuration
-          # fields.
-        "A String",
-      ],
-    },
-    "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
-        # rules.
-    },
-    "rebootConfig": "A String", # Post-patch reboot settings.
-  },
-  "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
-  "instanceFilter": { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
-      # VMs must meet all criteria specified. So if both labels and zones are
-      # specified, the patch job targets only VMs with those labels and in those
-      # zones.
-    "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
-        # instances in any zone.
-      "A String",
-    ],
-    "groupLabels": [ # Targets VM instances matching at least one of these label sets. This allows
-        # targeting of disparate groups, for example "env=prod or env=staging".
-      { # Represents a group of VMs that can be identified as having all these
-          # labels, for example "env=prod and app=web".
-        "labels": { # Google Compute Engine instance labels that must be present for a VM
-            # instance to be targeted by this filter.
-          "a_key": "A String",
-        },
-      },
-    ],
-    "all": True or False, # Target all VM instances in the project. If true, no other criteria is
-        # permitted.
-    "instances": [ # Targets any of the VM instances specified. Instances are specified by their
-        # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME],
-        # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
-        # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
-      "A String",
-    ],
-    "instanceNamePrefixes": [ # Targets VMs whose name starts with one of these prefixes. Similar to
-        # labels, this is another way to group VMs when targeting configs, for
-        # example prefix="prod-".
-      "A String",
-    ],
+    "mode": "A String", # Mode of the patch rollout.
   },
 }
 
@@ -365,32 +397,192 @@
       # repository settings, and a schedule. For more information about creating and
       # managing patch deployments, see [Scheduling patch
       # jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
-    "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
-        # to 1024 characters.
-    "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "updateTime": "A String", # Output only. Time the patch deployment was last updated. Timestamp is in
-        # [RFC3339]("https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "name": "A String", # Unique name for the patch deployment resource in a project. The patch
-        # deployment name is in the form:
-        # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
-        # This field is ignored when you create a new patch deployment.
+    "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
+        # patch(es) to a VM instance.
+      "yum": { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
+          # rules.
+          # can be set to control how this is executed.
+          #
+          # Note that not all settings are supported on all platforms.
+        "excludes": [ # List of packages to exclude from update. These packages are excluded by
+            # using the yum `--exclude` flag.
+          "A String",
+        ],
+        "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
+            # that will be updated. If these packages are not installed, they will be
+            # ignored. This field must not be specified with any other patch
+            # configuration fields.
+          "A String",
+        ],
+        "minimal": True or False, # Will cause patch to run `yum update-minimal` instead.
+        "security": True or False, # Adds the `--security` flag to `yum update`. Not supported on
+            # all platforms.
+      },
+      "postStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
+        "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            "object": "A String", # Required. Name of the Google Cloud Storage object.
+            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          "localPath": "A String", # An absolute path to the executable on the VM.
+        },
+        "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            "object": "A String", # Required. Name of the Google Cloud Storage object.
+            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          "localPath": "A String", # An absolute path to the executable on the VM.
+        },
+      },
+      "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
+          # rules.
+      },
+      "rebootConfig": "A String", # Post-patch reboot settings.
+      "apt": { # Apt patching is completed by executing `apt-get update && apt-get # Apt update settings. Use this setting to override the default `apt` patch
+          # rules.
+          # upgrade`. Additional options can be set to control how this is executed.
+        "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
+            # that will be updated. If these packages are not installed, they will be
+            # ignored. This field cannot be specified with any other patch configuration
+            # fields.
+          "A String",
+        ],
+        "type": "A String", # By changing the type to DIST, the patching is performed
+            # using `apt-get dist-upgrade` instead.
+        "excludes": [ # List of packages to exclude from update. These packages will be excluded
+          "A String",
+        ],
+      },
+      "windowsUpdate": { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
+        "exclusivePatches": [ # An exclusive list of kbs to be updated. These are the only patches
+            # that will be updated. This field must not be used with other
+            # patch configurations.
+          "A String",
+        ],
+        "excludes": [ # List of KBs to exclude from update.
+          "A String",
+        ],
+        "classifications": [ # Only apply updates of these windows update classifications. If empty, all
+            # updates are applied.
+          "A String",
+        ],
+      },
+      "preStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
+        "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            "object": "A String", # Required. Name of the Google Cloud Storage object.
+            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          "localPath": "A String", # An absolute path to the executable on the VM.
+        },
+        "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            "object": "A String", # Required. Name of the Google Cloud Storage object.
+            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
+            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          "localPath": "A String", # An absolute path to the executable on the VM.
+        },
+      },
+      "zypper": { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
+          # patch rules.
+          # See also https://en.opensuse.org/SDB:Zypper_manual.
+        "exclusivePatches": [ # An exclusive list of patches to be updated. These are the only patches
+            # that will be installed using 'zypper patch patch:<patch_name>' command.
+            # This field must not be used with any other patch configuration fields.
+          "A String",
+        ],
+        "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
+        "excludes": [ # List of patches to exclude from update.
+          "A String",
+        ],
+        "severities": [ # Install only patches with these severities.
+            # Common severities include critical, important, moderate, and low.
+          "A String",
+        ],
+        "withOptional": True or False, # Adds the `--with-optional` flag to `zypper patch`.
+        "categories": [ # Install only patches with these categories.
+            # Common categories include security, recommended, and feature.
+          "A String",
+        ],
+      },
+    },
+    "lastExecuteTime": "A String", # Output only. The last time a patch job was started by this deployment.
+        # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+        # format.
+    "instanceFilter": { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
+        # VMs must meet all criteria specified. So if both labels and zones are
+        # specified, the patch job targets only VMs with those labels and in those
+        # zones.
+      "all": True or False, # Target all VM instances in the project. If true, no other criteria is
+          # permitted.
+      "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
+          # instances in any zone.
+        "A String",
+      ],
+      "instances": [ # Targets any of the VM instances specified. Instances are specified by their
+          # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`,
+          # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
+          # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
+        "A String",
+      ],
+      "groupLabels": [ # Targets VM instances matching at least one of these label sets. This allows
+          # targeting of disparate groups, for example "env=prod or env=staging".
+        { # Represents a group of VMs that can be identified as having all these
+            # labels, for example "env=prod and app=web".
+          "labels": { # Compute Engine instance labels that must be present for a VM instance to
+              # be targeted by this filter.
+            "a_key": "A String",
+          },
+        },
+      ],
+      "instanceNamePrefixes": [ # Targets VMs whose name starts with one of these prefixes. Similar to
+          # labels, this is another way to group VMs when targeting configs, for
+          # example prefix="prod-".
+        "A String",
+      ],
+    },
+    "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
     "recurringSchedule": { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
-      "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
-        "dayOfWeek": "A String", # Required. Day of the week.
-      },
-      "timeOfDay": { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
-          # or are specified elsewhere. An API may choose to allow leap seconds. Related
-          # types are google.type.Date and `google.protobuf.Timestamp`.
-        "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
-            # to allow the value "24:00:00" for scenarios like business closing time.
-        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-        "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
-            # allow the value 60 if it allows leap-seconds.
-        "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
-      },
-      "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
-      "frequency": "A String", # Required. The frequency unit of this recurring schedule.
       "endTime": "A String", # Optional. The end time at which a recurring patch deployment schedule is no longer
           # active.
       "timeZone": { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
@@ -399,210 +591,82 @@
         "id": "A String", # IANA Time Zone Database time zone, e.g. "America/New_York".
         "version": "A String", # Optional. IANA Time Zone Database version number, e.g. "2019a".
       },
+      "frequency": "A String", # Required. The frequency unit of this recurring schedule.
       "nextExecuteTime": "A String", # Output only. The time the next patch job is scheduled to run.
-      "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
-          # Defaults to `create_time` of the patch deployment.
+      "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
+        "dayOfWeek": "A String", # Required. Day of the week.
+      },
+      "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
       "monthly": { # Represents a monthly schedule. An example of a valid monthly schedule is # Required. Schedule with monthly executions.
           # "on the third Tuesday of the month" or "on the 15th of the month".
-        "weekDayOfMonth": { # Represents one week day in a month. An example is "the 4th Sunday". # Required. Week day in a month.
-          "weekOrdinal": 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
-              # indicates the last week of the month.
-          "dayOfWeek": "A String", # Required. A day of the week.
-        },
         "monthDay": 42, # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
             # indicates the last day of the month.
             # Months without the target day will be skipped. For example, a schedule to
             # run "every month on the 31st" will not run in February, April, June, etc.
+        "weekDayOfMonth": { # Represents one week day in a month. An example is "the 4th Sunday". # Required. Week day in a month.
+          "dayOfWeek": "A String", # Required. A day of the week.
+          "weekOrdinal": 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
+              # indicates the last week of the month.
+        },
+      },
+      "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
+          # Defaults to `create_time` of the patch deployment.
+      "timeOfDay": { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
+          # or are specified elsewhere. An API may choose to allow leap seconds. Related
+          # types are google.type.Date and `google.protobuf.Timestamp`.
+        "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+            # allow the value 60 if it allows leap-seconds.
+        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+        "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+        "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+            # to allow the value "24:00:00" for scenarios like business closing time.
       },
     },
+    "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
+        # to 1024 characters.
     "oneTimeSchedule": { # Sets the time for a one time patch deployment. Timestamp is in # Required. Schedule a one-time execution.
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       "executeTime": "A String", # Required. The desired patch job execution time.
     },
-    "lastExecuteTime": "A String", # Output only. The last time a patch job was started by this deployment.
-        # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
-        # format.
-    "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
-        # patch(es) to a VM instance.
-      "preStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
-        "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-            "object": "A String", # Required. Name of the Google Cloud Storage object.
-            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          "localPath": "A String", # An absolute path to the executable on the VM.
-          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-        "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-            "object": "A String", # Required. Name of the Google Cloud Storage object.
-            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          "localPath": "A String", # An absolute path to the executable on the VM.
-          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-      },
-      "windowsUpdate": { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
-        "classifications": [ # Only apply updates of these windows update classifications. If empty, all
-            # updates are applied.
-          "A String",
-        ],
-        "excludes": [ # List of KBs to exclude from update.
-          "A String",
-        ],
-        "exclusivePatches": [ # An exclusive list of kbs to be updated. These are the only patches
-            # that will be updated. This field must not be used with other
-            # patch configurations.
-          "A String",
-        ],
-      },
-      "zypper": { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
-          # patch rules.
-          # See also https://en.opensuse.org/SDB:Zypper_manual.
-        "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
-        "withOptional": True or False, # Adds the `--with-optional` flag to `zypper patch`.
-        "severities": [ # Install only patches with these severities.
-            # Common severities include critical, important, moderate, and low.
-          "A String",
-        ],
-        "categories": [ # Install only patches with these categories.
-            # Common categories include security, recommended, and feature.
-          "A String",
-        ],
-        "exclusivePatches": [ # An exclusive list of patches to be updated. These are the only patches
-            # that will be installed using 'zypper patch patch:<patch_name>' command.
-            # This field must not be used with any other patch configuration fields.
-          "A String",
-        ],
-        "excludes": [ # List of patches to exclude from update.
-          "A String",
-        ],
-      },
-      "postStep": { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
-        "linuxExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-            "object": "A String", # Required. Name of the Google Cloud Storage object.
-            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          "localPath": "A String", # An absolute path to the executable on the VM.
-          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-        "windowsExecStepConfig": { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-          "gcsObject": { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            "bucket": "A String", # Required. Bucket of the Google Cloud Storage object.
-            "object": "A String", # Required. Name of the Google Cloud Storage object.
-            "generationNumber": "A String", # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          "interpreter": "A String", # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          "localPath": "A String", # An absolute path to the executable on the VM.
-          "allowedSuccessCodes": [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-      },
-      "yum": { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
-          # rules.
-          # can be set to control how this is executed.
+    "name": "A String", # Unique name for the patch deployment resource in a project. The patch
+        # deployment name is in the form:
+        # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
+        # This field is ignored when you create a new patch deployment.
+    "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "updateTime": "A String", # Output only. Time the patch deployment was last updated. Timestamp is in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "rollout": { # Patch rollout configuration specifications. Contains details on the # Optional. Rollout strategy of the patch job.
+        # concurrency control when applying patch(es) to all targeted VMs.
+      "disruptionBudget": { # Message encapsulating a value that can be either absolute ("fixed") or # The maximum number (or percentage) of VMs per zone to disrupt at any given
+          # moment. The number of VMs calculated from multiplying the percentage by the
+          # total number of VMs in a zone is rounded up.
           #
-          # Note that not all settings are supported on all platforms.
-        "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
-            # that will be updated. If these packages are not installed, they will be
-            # ignored. This field must not be specified with any other patch
-            # configuration fields.
-          "A String",
-        ],
-        "security": True or False, # Adds the `--security` flag to `yum update`. Not supported on
-            # all platforms.
-        "minimal": True or False, # Will cause patch to run `yum update-minimal` instead.
-        "excludes": [ # List of packages to exclude from update. These packages are excluded by
-            # using the yum `--exclude` flag.
-          "A String",
-        ],
+          # During patching, a VM is considered disrupted from the time the agent is
+          # notified to begin until patching has completed. This disruption time
+          # includes the time to complete reboot and any post-patch steps.
+          #
+          # A VM contributes to the disruption budget if its patching operation fails
+          # either when applying the patches, running pre or post patch steps, or if it
+          # fails to respond with a success notification before timing out. VMs that
+          # are not running or do not have an active agent do not count toward this
+          # disruption budget.
+          #
+          # For zone-by-zone rollouts, if the disruption budget in a zone is exceeded,
+          # the patch job stops, because continuing to the next zone requires
+          # completion of the patch process in the previous zone.
+          #
+          # For example, if the disruption budget has a fixed value of `10`, and 8 VMs
+          # fail to patch in the current zone, the patch job continues to patch 2 VMs
+          # at a time until the zone is completed. When that zone is completed
+          # successfully, patching begins with 10 VMs at a time in the next zone. If 10
+          # VMs in the next zone fail to patch, the patch job stops.
+          # relative ("percent") to a value.
+        "percent": 42, # Specifies the relative value defined as a percentage, which will be
+            # multiplied by a reference value.
+        "fixed": 42, # Specifies a fixed value.
       },
-      "apt": { # Apt patching is completed by executing `apt-get update && apt-get # Apt update settings. Use this setting to override the default `apt` patch
-          # rules.
-          # upgrade`. Additional options can be set to control how this is executed.
-        "type": "A String", # By changing the type to DIST, the patching is performed
-            # using `apt-get dist-upgrade` instead.
-        "excludes": [ # List of packages to exclude from update. These packages will be excluded
-          "A String",
-        ],
-        "exclusivePackages": [ # An exclusive list of packages to be updated. These are the only packages
-            # that will be updated. If these packages are not installed, they will be
-            # ignored. This field cannot be specified with any other patch configuration
-            # fields.
-          "A String",
-        ],
-      },
-      "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
-          # rules.
-      },
-      "rebootConfig": "A String", # Post-patch reboot settings.
-    },
-    "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
-    "instanceFilter": { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
-        # VMs must meet all criteria specified. So if both labels and zones are
-        # specified, the patch job targets only VMs with those labels and in those
-        # zones.
-      "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
-          # instances in any zone.
-        "A String",
-      ],
-      "groupLabels": [ # Targets VM instances matching at least one of these label sets. This allows
-          # targeting of disparate groups, for example "env=prod or env=staging".
-        { # Represents a group of VMs that can be identified as having all these
-            # labels, for example "env=prod and app=web".
-          "labels": { # Google Compute Engine instance labels that must be present for a VM
-              # instance to be targeted by this filter.
-            "a_key": "A String",
-          },
-        },
-      ],
-      "all": True or False, # Target all VM instances in the project. If true, no other criteria is
-          # permitted.
-      "instances": [ # Targets any of the VM instances specified. Instances are specified by their
-          # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME],
-          # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
-          # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
-        "A String",
-      ],
-      "instanceNamePrefixes": [ # Targets VMs whose name starts with one of these prefixes. Similar to
-          # labels, this is another way to group VMs when targeting configs, for
-          # example prefix="prod-".
-        "A String",
-      ],
+      "mode": "A String", # Mode of the patch rollout.
     },
   }</pre>
 </div>
@@ -654,32 +718,192 @@
       # repository settings, and a schedule. For more information about creating and
       # managing patch deployments, see [Scheduling patch
       # jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
-    &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited
-        # to 1024 characters.
-    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was created. Timestamp is in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was last updated. Timestamp is in
-        # [RFC3339](&quot;https://www.ietf.org/rfc/rfc3339.txt) text format.
-    &quot;name&quot;: &quot;A String&quot;, # Unique name for the patch deployment resource in a project. The patch
-        # deployment name is in the form:
-        # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
-        # This field is ignored when you create a new patch deployment.
+    &quot;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
+        # patch(es) to a VM instance.
+      &quot;yum&quot;: { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
+          # rules.
+          # can be set to control how this is executed.
+          #
+          # Note that not all settings are supported on all platforms.
+        &quot;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by
+            # using the yum `--exclude` flag.
+          &quot;A String&quot;,
+        ],
+        &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
+            # that will be updated. If these packages are not installed, they will be
+            # ignored. This field must not be specified with any other patch
+            # configuration fields.
+          &quot;A String&quot;,
+        ],
+        &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
+        &quot;security&quot;: True or False, # Adds the `--security` flag to `yum update`. Not supported on
+            # all platforms.
+      },
+      &quot;postStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
+        &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+        },
+        &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+        },
+      },
+      &quot;goo&quot;: { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
+          # rules.
+      },
+      &quot;rebootConfig&quot;: &quot;A String&quot;, # Post-patch reboot settings.
+      &quot;apt&quot;: { # Apt patching is completed by executing `apt-get update &amp;&amp; apt-get # Apt update settings. Use this setting to override the default `apt` patch
+          # rules.
+          # upgrade`. Additional options can be set to control how this is executed.
+        &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
+            # that will be updated. If these packages are not installed, they will be
+            # ignored. This field cannot be specified with any other patch configuration
+            # fields.
+          &quot;A String&quot;,
+        ],
+        &quot;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed
+            # using `apt-get dist-upgrade` instead.
+        &quot;excludes&quot;: [ # List of packages to exclude from update. These packages will be excluded
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;windowsUpdate&quot;: { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
+        &quot;exclusivePatches&quot;: [ # An exclusive list of kbs to be updated. These are the only patches
+            # that will be updated. This field must not be used with other
+            # patch configurations.
+          &quot;A String&quot;,
+        ],
+        &quot;excludes&quot;: [ # List of KBs to exclude from update.
+          &quot;A String&quot;,
+        ],
+        &quot;classifications&quot;: [ # Only apply updates of these windows update classifications. If empty, all
+            # updates are applied.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;preStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
+        &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+        },
+        &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+              # specified the script will be executed directly, which will likely
+              # only succeed for scripts with [shebang lines]
+              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                # ensure that the ExecStep specified by this PatchJob does not change.
+          },
+          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+              # execution can return to indicate a success.
+            42,
+          ],
+          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+        },
+      },
+      &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
+          # patch rules.
+          # See also https://en.opensuse.org/SDB:Zypper_manual.
+        &quot;exclusivePatches&quot;: [ # An exclusive list of patches to be updated. These are the only patches
+            # that will be installed using &#x27;zypper patch patch:&lt;patch_name&gt;&#x27; command.
+            # This field must not be used with any other patch configuration fields.
+          &quot;A String&quot;,
+        ],
+        &quot;withUpdate&quot;: True or False, # Adds the `--with-update` flag, to `zypper patch`.
+        &quot;excludes&quot;: [ # List of patches to exclude from update.
+          &quot;A String&quot;,
+        ],
+        &quot;severities&quot;: [ # Install only patches with these severities.
+            # Common severities include critical, important, moderate, and low.
+          &quot;A String&quot;,
+        ],
+        &quot;withOptional&quot;: True or False, # Adds the `--with-optional` flag to `zypper patch`.
+        &quot;categories&quot;: [ # Install only patches with these categories.
+            # Common categories include security, recommended, and feature.
+          &quot;A String&quot;,
+        ],
+      },
+    },
+    &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The last time a patch job was started by this deployment.
+        # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+        # format.
+    &quot;instanceFilter&quot;: { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
+        # VMs must meet all criteria specified. So if both labels and zones are
+        # specified, the patch job targets only VMs with those labels and in those
+        # zones.
+      &quot;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is
+          # permitted.
+      &quot;zones&quot;: [ # Targets VM instances in ANY of these zones. Leave empty to target VM
+          # instances in any zone.
+        &quot;A String&quot;,
+      ],
+      &quot;instances&quot;: [ # Targets any of the VM instances specified. Instances are specified by their
+          # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`,
+          # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
+          # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
+        &quot;A String&quot;,
+      ],
+      &quot;groupLabels&quot;: [ # Targets VM instances matching at least one of these label sets. This allows
+          # targeting of disparate groups, for example &quot;env=prod or env=staging&quot;.
+        { # Represents a group of VMs that can be identified as having all these
+            # labels, for example &quot;env=prod and app=web&quot;.
+          &quot;labels&quot;: { # Compute Engine instance labels that must be present for a VM instance to
+              # be targeted by this filter.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+        },
+      ],
+      &quot;instanceNamePrefixes&quot;: [ # Targets VMs whose name starts with one of these prefixes. Similar to
+          # labels, this is another way to group VMs when targeting configs, for
+          # example prefix=&quot;prod-&quot;.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
     &quot;recurringSchedule&quot;: { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
-      &quot;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
-        &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
-      },
-      &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
-          # or are specified elsewhere. An API may choose to allow leap seconds. Related
-          # types are google.type.Date and `google.protobuf.Timestamp`.
-        &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
-            # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
-        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-        &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
-            # allow the value 60 if it allows leap-seconds.
-        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-      },
-      &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the last patch job ran successfully.
-      &quot;frequency&quot;: &quot;A String&quot;, # Required. The frequency unit of this recurring schedule.
       &quot;endTime&quot;: &quot;A String&quot;, # Optional. The end time at which a recurring patch deployment schedule is no longer
           # active.
       &quot;timeZone&quot;: { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
@@ -688,210 +912,82 @@
         &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
         &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
       },
+      &quot;frequency&quot;: &quot;A String&quot;, # Required. The frequency unit of this recurring schedule.
       &quot;nextExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the next patch job is scheduled to run.
-      &quot;startTime&quot;: &quot;A String&quot;, # Optional. The time that the recurring schedule becomes effective.
-          # Defaults to `create_time` of the patch deployment.
+      &quot;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
+        &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
+      },
+      &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the last patch job ran successfully.
       &quot;monthly&quot;: { # Represents a monthly schedule. An example of a valid monthly schedule is # Required. Schedule with monthly executions.
           # &quot;on the third Tuesday of the month&quot; or &quot;on the 15th of the month&quot;.
-        &quot;weekDayOfMonth&quot;: { # Represents one week day in a month. An example is &quot;the 4th Sunday&quot;. # Required. Week day in a month.
-          &quot;weekOrdinal&quot;: 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
-              # indicates the last week of the month.
-          &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. A day of the week.
-        },
         &quot;monthDay&quot;: 42, # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
             # indicates the last day of the month.
             # Months without the target day will be skipped. For example, a schedule to
             # run &quot;every month on the 31st&quot; will not run in February, April, June, etc.
+        &quot;weekDayOfMonth&quot;: { # Represents one week day in a month. An example is &quot;the 4th Sunday&quot;. # Required. Week day in a month.
+          &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. A day of the week.
+          &quot;weekOrdinal&quot;: 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
+              # indicates the last week of the month.
+        },
+      },
+      &quot;startTime&quot;: &quot;A String&quot;, # Optional. The time that the recurring schedule becomes effective.
+          # Defaults to `create_time` of the patch deployment.
+      &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
+          # or are specified elsewhere. An API may choose to allow leap seconds. Related
+          # types are google.type.Date and `google.protobuf.Timestamp`.
+        &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+            # allow the value 60 if it allows leap-seconds.
+        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+        &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+            # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
       },
     },
+    &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited
+        # to 1024 characters.
     &quot;oneTimeSchedule&quot;: { # Sets the time for a one time patch deployment. Timestamp is in # Required. Schedule a one-time execution.
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       &quot;executeTime&quot;: &quot;A String&quot;, # Required. The desired patch job execution time.
     },
-    &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The last time a patch job was started by this deployment.
-        # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
-        # format.
-    &quot;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
-        # patch(es) to a VM instance.
-      &quot;preStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
-        &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-        &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-      },
-      &quot;windowsUpdate&quot;: { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
-        &quot;classifications&quot;: [ # Only apply updates of these windows update classifications. If empty, all
-            # updates are applied.
-          &quot;A String&quot;,
-        ],
-        &quot;excludes&quot;: [ # List of KBs to exclude from update.
-          &quot;A String&quot;,
-        ],
-        &quot;exclusivePatches&quot;: [ # An exclusive list of kbs to be updated. These are the only patches
-            # that will be updated. This field must not be used with other
-            # patch configurations.
-          &quot;A String&quot;,
-        ],
-      },
-      &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
-          # patch rules.
-          # See also https://en.opensuse.org/SDB:Zypper_manual.
-        &quot;withUpdate&quot;: True or False, # Adds the `--with-update` flag, to `zypper patch`.
-        &quot;withOptional&quot;: True or False, # Adds the `--with-optional` flag to `zypper patch`.
-        &quot;severities&quot;: [ # Install only patches with these severities.
-            # Common severities include critical, important, moderate, and low.
-          &quot;A String&quot;,
-        ],
-        &quot;categories&quot;: [ # Install only patches with these categories.
-            # Common categories include security, recommended, and feature.
-          &quot;A String&quot;,
-        ],
-        &quot;exclusivePatches&quot;: [ # An exclusive list of patches to be updated. These are the only patches
-            # that will be installed using &#x27;zypper patch patch:&lt;patch_name&gt;&#x27; command.
-            # This field must not be used with any other patch configuration fields.
-          &quot;A String&quot;,
-        ],
-        &quot;excludes&quot;: [ # List of patches to exclude from update.
-          &quot;A String&quot;,
-        ],
-      },
-      &quot;postStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
-        &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-        &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-          &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                # ensure that the ExecStep specified by this PatchJob does not change.
-          },
-          &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-              # specified the script will be executed directly, which will likely
-              # only succeed for scripts with [shebang lines]
-              # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-          &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-              # execution can return to indicate a success.
-            42,
-          ],
-        },
-      },
-      &quot;yum&quot;: { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
-          # rules.
-          # can be set to control how this is executed.
+    &quot;name&quot;: &quot;A String&quot;, # Unique name for the patch deployment resource in a project. The patch
+        # deployment name is in the form:
+        # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
+        # This field is ignored when you create a new patch deployment.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was created. Timestamp is in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was last updated. Timestamp is in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    &quot;rollout&quot;: { # Patch rollout configuration specifications. Contains details on the # Optional. Rollout strategy of the patch job.
+        # concurrency control when applying patch(es) to all targeted VMs.
+      &quot;disruptionBudget&quot;: { # Message encapsulating a value that can be either absolute (&quot;fixed&quot;) or # The maximum number (or percentage) of VMs per zone to disrupt at any given
+          # moment. The number of VMs calculated from multiplying the percentage by the
+          # total number of VMs in a zone is rounded up.
           #
-          # Note that not all settings are supported on all platforms.
-        &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
-            # that will be updated. If these packages are not installed, they will be
-            # ignored. This field must not be specified with any other patch
-            # configuration fields.
-          &quot;A String&quot;,
-        ],
-        &quot;security&quot;: True or False, # Adds the `--security` flag to `yum update`. Not supported on
-            # all platforms.
-        &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
-        &quot;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by
-            # using the yum `--exclude` flag.
-          &quot;A String&quot;,
-        ],
+          # During patching, a VM is considered disrupted from the time the agent is
+          # notified to begin until patching has completed. This disruption time
+          # includes the time to complete reboot and any post-patch steps.
+          #
+          # A VM contributes to the disruption budget if its patching operation fails
+          # either when applying the patches, running pre or post patch steps, or if it
+          # fails to respond with a success notification before timing out. VMs that
+          # are not running or do not have an active agent do not count toward this
+          # disruption budget.
+          #
+          # For zone-by-zone rollouts, if the disruption budget in a zone is exceeded,
+          # the patch job stops, because continuing to the next zone requires
+          # completion of the patch process in the previous zone.
+          #
+          # For example, if the disruption budget has a fixed value of `10`, and 8 VMs
+          # fail to patch in the current zone, the patch job continues to patch 2 VMs
+          # at a time until the zone is completed. When that zone is completed
+          # successfully, patching begins with 10 VMs at a time in the next zone. If 10
+          # VMs in the next zone fail to patch, the patch job stops.
+          # relative (&quot;percent&quot;) to a value.
+        &quot;percent&quot;: 42, # Specifies the relative value defined as a percentage, which will be
+            # multiplied by a reference value.
+        &quot;fixed&quot;: 42, # Specifies a fixed value.
       },
-      &quot;apt&quot;: { # Apt patching is completed by executing `apt-get update &amp;&amp; apt-get # Apt update settings. Use this setting to override the default `apt` patch
-          # rules.
-          # upgrade`. Additional options can be set to control how this is executed.
-        &quot;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed
-            # using `apt-get dist-upgrade` instead.
-        &quot;excludes&quot;: [ # List of packages to exclude from update. These packages will be excluded
-          &quot;A String&quot;,
-        ],
-        &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
-            # that will be updated. If these packages are not installed, they will be
-            # ignored. This field cannot be specified with any other patch configuration
-            # fields.
-          &quot;A String&quot;,
-        ],
-      },
-      &quot;goo&quot;: { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
-          # rules.
-      },
-      &quot;rebootConfig&quot;: &quot;A String&quot;, # Post-patch reboot settings.
-    },
-    &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
-    &quot;instanceFilter&quot;: { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
-        # VMs must meet all criteria specified. So if both labels and zones are
-        # specified, the patch job targets only VMs with those labels and in those
-        # zones.
-      &quot;zones&quot;: [ # Targets VM instances in ANY of these zones. Leave empty to target VM
-          # instances in any zone.
-        &quot;A String&quot;,
-      ],
-      &quot;groupLabels&quot;: [ # Targets VM instances matching at least one of these label sets. This allows
-          # targeting of disparate groups, for example &quot;env=prod or env=staging&quot;.
-        { # Represents a group of VMs that can be identified as having all these
-            # labels, for example &quot;env=prod and app=web&quot;.
-          &quot;labels&quot;: { # Google Compute Engine instance labels that must be present for a VM
-              # instance to be targeted by this filter.
-            &quot;a_key&quot;: &quot;A String&quot;,
-          },
-        },
-      ],
-      &quot;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is
-          # permitted.
-      &quot;instances&quot;: [ # Targets any of the VM instances specified. Instances are specified by their
-          # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME],
-          # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
-          # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
-        &quot;A String&quot;,
-      ],
-      &quot;instanceNamePrefixes&quot;: [ # Targets VMs whose name starts with one of these prefixes. Similar to
-          # labels, this is another way to group VMs when targeting configs, for
-          # example prefix=&quot;prod-&quot;.
-        &quot;A String&quot;,
-      ],
+      &quot;mode&quot;: &quot;A String&quot;, # Mode of the patch rollout.
     },
   }</pre>
 </div>
@@ -922,32 +1018,192 @@
           # repository settings, and a schedule. For more information about creating and
           # managing patch deployments, see [Scheduling patch
           # jobs](https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs).
-        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited
-            # to 1024 characters.
-        &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was created. Timestamp is in
-            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was last updated. Timestamp is in
-            # [RFC3339](&quot;https://www.ietf.org/rfc/rfc3339.txt) text format.
-        &quot;name&quot;: &quot;A String&quot;, # Unique name for the patch deployment resource in a project. The patch
-            # deployment name is in the form:
-            # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
-            # This field is ignored when you create a new patch deployment.
+        &quot;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
+            # patch(es) to a VM instance.
+          &quot;yum&quot;: { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
+              # rules.
+              # can be set to control how this is executed.
+              #
+              # Note that not all settings are supported on all platforms.
+            &quot;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by
+                # using the yum `--exclude` flag.
+              &quot;A String&quot;,
+            ],
+            &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
+                # that will be updated. If these packages are not installed, they will be
+                # ignored. This field must not be specified with any other patch
+                # configuration fields.
+              &quot;A String&quot;,
+            ],
+            &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
+            &quot;security&quot;: True or False, # Adds the `--security` flag to `yum update`. Not supported on
+                # all platforms.
+          },
+          &quot;postStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
+            &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+                  # specified the script will be executed directly, which will likely
+                  # only succeed for scripts with [shebang lines]
+                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                    # ensure that the ExecStep specified by this PatchJob does not change.
+              },
+              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+                  # execution can return to indicate a success.
+                42,
+              ],
+              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+            },
+            &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+                  # specified the script will be executed directly, which will likely
+                  # only succeed for scripts with [shebang lines]
+                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                    # ensure that the ExecStep specified by this PatchJob does not change.
+              },
+              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+                  # execution can return to indicate a success.
+                42,
+              ],
+              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+            },
+          },
+          &quot;goo&quot;: { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
+              # rules.
+          },
+          &quot;rebootConfig&quot;: &quot;A String&quot;, # Post-patch reboot settings.
+          &quot;apt&quot;: { # Apt patching is completed by executing `apt-get update &amp;&amp; apt-get # Apt update settings. Use this setting to override the default `apt` patch
+              # rules.
+              # upgrade`. Additional options can be set to control how this is executed.
+            &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
+                # that will be updated. If these packages are not installed, they will be
+                # ignored. This field cannot be specified with any other patch configuration
+                # fields.
+              &quot;A String&quot;,
+            ],
+            &quot;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed
+                # using `apt-get dist-upgrade` instead.
+            &quot;excludes&quot;: [ # List of packages to exclude from update. These packages will be excluded
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;windowsUpdate&quot;: { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
+            &quot;exclusivePatches&quot;: [ # An exclusive list of kbs to be updated. These are the only patches
+                # that will be updated. This field must not be used with other
+                # patch configurations.
+              &quot;A String&quot;,
+            ],
+            &quot;excludes&quot;: [ # List of KBs to exclude from update.
+              &quot;A String&quot;,
+            ],
+            &quot;classifications&quot;: [ # Only apply updates of these windows update classifications. If empty, all
+                # updates are applied.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;preStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
+            &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
+              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+                  # specified the script will be executed directly, which will likely
+                  # only succeed for scripts with [shebang lines]
+                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                    # ensure that the ExecStep specified by this PatchJob does not change.
+              },
+              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+                  # execution can return to indicate a success.
+                42,
+              ],
+              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+            },
+            &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
+              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
+                  # specified the script will be executed directly, which will likely
+                  # only succeed for scripts with [shebang lines]
+                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
+              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
+                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
+                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
+                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
+                    # ensure that the ExecStep specified by this PatchJob does not change.
+              },
+              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
+                  # execution can return to indicate a success.
+                42,
+              ],
+              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
+            },
+          },
+          &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
+              # patch rules.
+              # See also https://en.opensuse.org/SDB:Zypper_manual.
+            &quot;exclusivePatches&quot;: [ # An exclusive list of patches to be updated. These are the only patches
+                # that will be installed using &#x27;zypper patch patch:&lt;patch_name&gt;&#x27; command.
+                # This field must not be used with any other patch configuration fields.
+              &quot;A String&quot;,
+            ],
+            &quot;withUpdate&quot;: True or False, # Adds the `--with-update` flag, to `zypper patch`.
+            &quot;excludes&quot;: [ # List of patches to exclude from update.
+              &quot;A String&quot;,
+            ],
+            &quot;severities&quot;: [ # Install only patches with these severities.
+                # Common severities include critical, important, moderate, and low.
+              &quot;A String&quot;,
+            ],
+            &quot;withOptional&quot;: True or False, # Adds the `--with-optional` flag to `zypper patch`.
+            &quot;categories&quot;: [ # Install only patches with these categories.
+                # Common categories include security, recommended, and feature.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The last time a patch job was started by this deployment.
+            # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
+            # format.
+        &quot;instanceFilter&quot;: { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
+            # VMs must meet all criteria specified. So if both labels and zones are
+            # specified, the patch job targets only VMs with those labels and in those
+            # zones.
+          &quot;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is
+              # permitted.
+          &quot;zones&quot;: [ # Targets VM instances in ANY of these zones. Leave empty to target VM
+              # instances in any zone.
+            &quot;A String&quot;,
+          ],
+          &quot;instances&quot;: [ # Targets any of the VM instances specified. Instances are specified by their
+              # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`,
+              # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
+              # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
+            &quot;A String&quot;,
+          ],
+          &quot;groupLabels&quot;: [ # Targets VM instances matching at least one of these label sets. This allows
+              # targeting of disparate groups, for example &quot;env=prod or env=staging&quot;.
+            { # Represents a group of VMs that can be identified as having all these
+                # labels, for example &quot;env=prod and app=web&quot;.
+              &quot;labels&quot;: { # Compute Engine instance labels that must be present for a VM instance to
+                  # be targeted by this filter.
+                &quot;a_key&quot;: &quot;A String&quot;,
+              },
+            },
+          ],
+          &quot;instanceNamePrefixes&quot;: [ # Targets VMs whose name starts with one of these prefixes. Similar to
+              # labels, this is another way to group VMs when targeting configs, for
+              # example prefix=&quot;prod-&quot;.
+            &quot;A String&quot;,
+          ],
+        },
+        &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
         &quot;recurringSchedule&quot;: { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
-          &quot;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
-            &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
-          },
-          &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
-              # or are specified elsewhere. An API may choose to allow leap seconds. Related
-              # types are google.type.Date and `google.protobuf.Timestamp`.
-            &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
-                # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
-            &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
-            &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
-                # allow the value 60 if it allows leap-seconds.
-            &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
-          },
-          &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the last patch job ran successfully.
-          &quot;frequency&quot;: &quot;A String&quot;, # Required. The frequency unit of this recurring schedule.
           &quot;endTime&quot;: &quot;A String&quot;, # Optional. The end time at which a recurring patch deployment schedule is no longer
               # active.
           &quot;timeZone&quot;: { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
@@ -956,210 +1212,82 @@
             &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
             &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
           },
+          &quot;frequency&quot;: &quot;A String&quot;, # Required. The frequency unit of this recurring schedule.
           &quot;nextExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the next patch job is scheduled to run.
-          &quot;startTime&quot;: &quot;A String&quot;, # Optional. The time that the recurring schedule becomes effective.
-              # Defaults to `create_time` of the patch deployment.
+          &quot;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
+            &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
+          },
+          &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the last patch job ran successfully.
           &quot;monthly&quot;: { # Represents a monthly schedule. An example of a valid monthly schedule is # Required. Schedule with monthly executions.
               # &quot;on the third Tuesday of the month&quot; or &quot;on the 15th of the month&quot;.
-            &quot;weekDayOfMonth&quot;: { # Represents one week day in a month. An example is &quot;the 4th Sunday&quot;. # Required. Week day in a month.
-              &quot;weekOrdinal&quot;: 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
-                  # indicates the last week of the month.
-              &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. A day of the week.
-            },
             &quot;monthDay&quot;: 42, # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
                 # indicates the last day of the month.
                 # Months without the target day will be skipped. For example, a schedule to
                 # run &quot;every month on the 31st&quot; will not run in February, April, June, etc.
+            &quot;weekDayOfMonth&quot;: { # Represents one week day in a month. An example is &quot;the 4th Sunday&quot;. # Required. Week day in a month.
+              &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. A day of the week.
+              &quot;weekOrdinal&quot;: 42, # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the month. -1
+                  # indicates the last week of the month.
+            },
+          },
+          &quot;startTime&quot;: &quot;A String&quot;, # Optional. The time that the recurring schedule becomes effective.
+              # Defaults to `create_time` of the patch deployment.
+          &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant # Required. Time of the day to run a recurring deployment.
+              # or are specified elsewhere. An API may choose to allow leap seconds. Related
+              # types are google.type.Date and `google.protobuf.Timestamp`.
+            &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+                # allow the value 60 if it allows leap-seconds.
+            &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+            &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+                # to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
           },
         },
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited
+            # to 1024 characters.
         &quot;oneTimeSchedule&quot;: { # Sets the time for a one time patch deployment. Timestamp is in # Required. Schedule a one-time execution.
             # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
           &quot;executeTime&quot;: &quot;A String&quot;, # Required. The desired patch job execution time.
         },
-        &quot;lastExecuteTime&quot;: &quot;A String&quot;, # Output only. The last time a patch job was started by this deployment.
-            # Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
-            # format.
-        &quot;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
-            # patch(es) to a VM instance.
-          &quot;preStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run before the patch update.
-            &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                    # ensure that the ExecStep specified by this PatchJob does not change.
-              },
-              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-                  # specified the script will be executed directly, which will likely
-                  # only succeed for scripts with [shebang lines]
-                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-                  # execution can return to indicate a success.
-                42,
-              ],
-            },
-            &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                    # ensure that the ExecStep specified by this PatchJob does not change.
-              },
-              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-                  # specified the script will be executed directly, which will likely
-                  # only succeed for scripts with [shebang lines]
-                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-                  # execution can return to indicate a success.
-                42,
-              ],
-            },
-          },
-          &quot;windowsUpdate&quot;: { # Windows patching is performed using the Windows Update Agent. # Windows update settings. Use this override the default windows patch rules.
-            &quot;classifications&quot;: [ # Only apply updates of these windows update classifications. If empty, all
-                # updates are applied.
-              &quot;A String&quot;,
-            ],
-            &quot;excludes&quot;: [ # List of KBs to exclude from update.
-              &quot;A String&quot;,
-            ],
-            &quot;exclusivePatches&quot;: [ # An exclusive list of kbs to be updated. These are the only patches
-                # that will be updated. This field must not be used with other
-                # patch configurations.
-              &quot;A String&quot;,
-            ],
-          },
-          &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. # Zypper update settings. Use this setting to override the default `zypper`
-              # patch rules.
-              # See also https://en.opensuse.org/SDB:Zypper_manual.
-            &quot;withUpdate&quot;: True or False, # Adds the `--with-update` flag, to `zypper patch`.
-            &quot;withOptional&quot;: True or False, # Adds the `--with-optional` flag to `zypper patch`.
-            &quot;severities&quot;: [ # Install only patches with these severities.
-                # Common severities include critical, important, moderate, and low.
-              &quot;A String&quot;,
-            ],
-            &quot;categories&quot;: [ # Install only patches with these categories.
-                # Common categories include security, recommended, and feature.
-              &quot;A String&quot;,
-            ],
-            &quot;exclusivePatches&quot;: [ # An exclusive list of patches to be updated. These are the only patches
-                # that will be installed using &#x27;zypper patch patch:&lt;patch_name&gt;&#x27; command.
-                # This field must not be used with any other patch configuration fields.
-              &quot;A String&quot;,
-            ],
-            &quot;excludes&quot;: [ # List of patches to exclude from update.
-              &quot;A String&quot;,
-            ],
-          },
-          &quot;postStep&quot;: { # A step that runs an executable for a PatchJob. # The `ExecStep` to run after the patch update.
-            &quot;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
-              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                    # ensure that the ExecStep specified by this PatchJob does not change.
-              },
-              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-                  # specified the script will be executed directly, which will likely
-                  # only succeed for scripts with [shebang lines]
-                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-                  # execution can return to indicate a success.
-                42,
-              ],
-            },
-            &quot;windowsExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Windows VMs targeted by the PatchJob.
-              &quot;gcsObject&quot;: { # Google Cloud Storage object representation. # A Google Cloud Storage object containing the executable.
-                &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Google Cloud Storage object.
-                &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Google Cloud Storage object.
-                &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Google Cloud Storage object. This is used to
-                    # ensure that the ExecStep specified by this PatchJob does not change.
-              },
-              &quot;interpreter&quot;: &quot;A String&quot;, # The script interpreter to use to run the script. If no interpreter is
-                  # specified the script will be executed directly, which will likely
-                  # only succeed for scripts with [shebang lines]
-                  # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
-              &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
-              &quot;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the
-                  # execution can return to indicate a success.
-                42,
-              ],
-            },
-          },
-          &quot;yum&quot;: { # Yum patching is performed by executing `yum update`. Additional options # Yum update settings. Use this setting to override the default `yum` patch
-              # rules.
-              # can be set to control how this is executed.
+        &quot;name&quot;: &quot;A String&quot;, # Unique name for the patch deployment resource in a project. The patch
+            # deployment name is in the form:
+            # `projects/{project_id}/patchDeployments/{patch_deployment_id}`.
+            # This field is ignored when you create a new patch deployment.
+        &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was created. Timestamp is in
+            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time the patch deployment was last updated. Timestamp is in
+            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        &quot;rollout&quot;: { # Patch rollout configuration specifications. Contains details on the # Optional. Rollout strategy of the patch job.
+            # concurrency control when applying patch(es) to all targeted VMs.
+          &quot;disruptionBudget&quot;: { # Message encapsulating a value that can be either absolute (&quot;fixed&quot;) or # The maximum number (or percentage) of VMs per zone to disrupt at any given
+              # moment. The number of VMs calculated from multiplying the percentage by the
+              # total number of VMs in a zone is rounded up.
               #
-              # Note that not all settings are supported on all platforms.
-            &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
-                # that will be updated. If these packages are not installed, they will be
-                # ignored. This field must not be specified with any other patch
-                # configuration fields.
-              &quot;A String&quot;,
-            ],
-            &quot;security&quot;: True or False, # Adds the `--security` flag to `yum update`. Not supported on
-                # all platforms.
-            &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
-            &quot;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by
-                # using the yum `--exclude` flag.
-              &quot;A String&quot;,
-            ],
+              # During patching, a VM is considered disrupted from the time the agent is
+              # notified to begin until patching has completed. This disruption time
+              # includes the time to complete reboot and any post-patch steps.
+              #
+              # A VM contributes to the disruption budget if its patching operation fails
+              # either when applying the patches, running pre or post patch steps, or if it
+              # fails to respond with a success notification before timing out. VMs that
+              # are not running or do not have an active agent do not count toward this
+              # disruption budget.
+              #
+              # For zone-by-zone rollouts, if the disruption budget in a zone is exceeded,
+              # the patch job stops, because continuing to the next zone requires
+              # completion of the patch process in the previous zone.
+              #
+              # For example, if the disruption budget has a fixed value of `10`, and 8 VMs
+              # fail to patch in the current zone, the patch job continues to patch 2 VMs
+              # at a time until the zone is completed. When that zone is completed
+              # successfully, patching begins with 10 VMs at a time in the next zone. If 10
+              # VMs in the next zone fail to patch, the patch job stops.
+              # relative (&quot;percent&quot;) to a value.
+            &quot;percent&quot;: 42, # Specifies the relative value defined as a percentage, which will be
+                # multiplied by a reference value.
+            &quot;fixed&quot;: 42, # Specifies a fixed value.
           },
-          &quot;apt&quot;: { # Apt patching is completed by executing `apt-get update &amp;&amp; apt-get # Apt update settings. Use this setting to override the default `apt` patch
-              # rules.
-              # upgrade`. Additional options can be set to control how this is executed.
-            &quot;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed
-                # using `apt-get dist-upgrade` instead.
-            &quot;excludes&quot;: [ # List of packages to exclude from update. These packages will be excluded
-              &quot;A String&quot;,
-            ],
-            &quot;exclusivePackages&quot;: [ # An exclusive list of packages to be updated. These are the only packages
-                # that will be updated. If these packages are not installed, they will be
-                # ignored. This field cannot be specified with any other patch configuration
-                # fields.
-              &quot;A String&quot;,
-            ],
-          },
-          &quot;goo&quot;: { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
-              # rules.
-          },
-          &quot;rebootConfig&quot;: &quot;A String&quot;, # Post-patch reboot settings.
-        },
-        &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
-        &quot;instanceFilter&quot;: { # A filter to target VM instances for patching. The targeted # Required. VM instances to patch.
-            # VMs must meet all criteria specified. So if both labels and zones are
-            # specified, the patch job targets only VMs with those labels and in those
-            # zones.
-          &quot;zones&quot;: [ # Targets VM instances in ANY of these zones. Leave empty to target VM
-              # instances in any zone.
-            &quot;A String&quot;,
-          ],
-          &quot;groupLabels&quot;: [ # Targets VM instances matching at least one of these label sets. This allows
-              # targeting of disparate groups, for example &quot;env=prod or env=staging&quot;.
-            { # Represents a group of VMs that can be identified as having all these
-                # labels, for example &quot;env=prod and app=web&quot;.
-              &quot;labels&quot;: { # Google Compute Engine instance labels that must be present for a VM
-                  # instance to be targeted by this filter.
-                &quot;a_key&quot;: &quot;A String&quot;,
-              },
-            },
-          ],
-          &quot;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is
-              # permitted.
-          &quot;instances&quot;: [ # Targets any of the VM instances specified. Instances are specified by their
-              # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME],
-              # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
-              # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`
-            &quot;A String&quot;,
-          ],
-          &quot;instanceNamePrefixes&quot;: [ # Targets VMs whose name starts with one of these prefixes. Similar to
-              # labels, this is another way to group VMs when targeting configs, for
-              # example prefix=&quot;prod-&quot;.
-            &quot;A String&quot;,
-          ],
+          &quot;mode&quot;: &quot;A String&quot;, # Mode of the patch rollout.
         },
       },
     ],