# Cloud OS Config API . projects . patchDeployments

## Instance Methods

Create an OS Config patch deployment.

Delete an OS Config patch deployment.

Get an OS Config patch deployment.

Get a page of OS Config patch deployments.

Retrieves the next page of results.

### Method Details

`create(parent, body=None, patchDeploymentId=None, x__xgafv=None)`

    Create an OS Config patch deployment.

    Args:
      parent: string, Required. The project to apply this patch deployment to in the form `projects/*`. (required)
      body: object, The request body.
        The object takes the form of:

    { # Patch deployments are configurations that individual patch jobs use to
        # complete a patch. These configurations include instance filter, package
        # 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).
      "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.
      },
      "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.
      "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
          # to 1024 characters.
      "recurringSchedule": { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
        "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
            # Defaults to `create_time` of the patch deployment.
        "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
        "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`.
          "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.
          "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.
        },
        "nextExecuteTime": "A String", # Output only. The time the next patch job is scheduled to run.
        "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".
          "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.
            "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.
          },
        },
        "frequency": "A String", # Required. The frequency unit of this recurring schedule.
        "timeZone": { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
            # The rules for daylight saving time are determined by the chosen time zone.
            # [IANA Time Zone Database](https://www.iana.org/time-zones).
          "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".
        },
        "endTime": "A String", # Optional. The end time at which a recurring patch deployment schedule is no longer
            # active.
        "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
          "dayOfWeek": "A String", # Required. Day of the week.
        },
      },
      "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.
      "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
          # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
      "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
      "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.
        "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",
        ],
        "groupLabels": [ # Targets VM instances matching ANY of these GroupLabels. This allows
            # targeting of disparate groups of VM instances.
          { # Targets a group of VM instances by using their [assigned
              # labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
              # are key-value pairs. A `GroupLabel` is a combination of labels
              # that is used to target VMs for a patch job.
              #
              # For example, a patch job can target VMs that have the following
              # `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
              # is applied to VMs that have both the labels `env=test` 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",
            },
          },
        ],
        "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
            # instances in any zone.
          "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",
        ],
      },
      "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.
            #
            # 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.
        },
        "mode": "A String", # Mode of the patch rollout.
      },
      "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
          # patch(es) to a VM instance.
        "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",
          ],
          "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",
          ],
        },
        "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.
            "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              "object": "A String", # Required. Name of the Cloud Storage object.
              "bucket": "A String", # Required. Bucket of the Cloud Storage object.
              "generationNumber": "A String", # Required. Generation number of the 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.
          },
          "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              "object": "A String", # Required. Name of the Cloud Storage object.
              "bucket": "A String", # Required. Bucket of the Cloud Storage object.
              "generationNumber": "A String", # Required. Generation number of the 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.
          },
        },
        "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.
          "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.
          "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",
          ],
        },
        "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
            # rules.
        },
        "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.
          "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",
          ],
          "type": "A String", # By changing the type to DIST, the patching is performed
              # using `apt-get dist-upgrade` instead.
        },
        "rebootConfig": "A String", # Post-patch reboot settings.
        "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.
          "excludes": [ # List of patches to exclude from update.
            "A String",
          ],
          "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",
          ],
          "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
        },
        "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.
            "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              "object": "A String", # Required. Name of the Cloud Storage object.
              "bucket": "A String", # Required. Bucket of the Cloud Storage object.
              "generationNumber": "A String", # Required. Generation number of the 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.
          },
          "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              "object": "A String", # Required. Name of the Cloud Storage object.
              "bucket": "A String", # Required. Bucket of the Cloud Storage object.
              "generationNumber": "A String", # Required. Generation number of the 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.
          },
        },
      },
    }

      patchDeploymentId: string, Required. A name for the patch deployment in the project. When creating a name
    the following rules apply:
    * Must contain only lowercase letters, numbers, and hyphens.
    * Must start with a letter.
    * Must be between 1-63 characters.
    * Must end with a number or a letter.
    * Must be unique within the project.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Patch deployments are configurations that individual patch jobs use to
          # complete a patch. These configurations include instance filter, package
          # 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).
        "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.
        },
        "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.
        "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
            # to 1024 characters.
        "recurringSchedule": { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
          "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
              # Defaults to `create_time` of the patch deployment.
          "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
          "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`.
            "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.
            "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.
          },
          "nextExecuteTime": "A String", # Output only. The time the next patch job is scheduled to run.
          "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".
            "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.
              "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.
            },
          },
          "frequency": "A String", # Required. The frequency unit of this recurring schedule.
          "timeZone": { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
              # The rules for daylight saving time are determined by the chosen time zone.
              # [IANA Time Zone Database](https://www.iana.org/time-zones).
            "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".
          },
          "endTime": "A String", # Optional. The end time at which a recurring patch deployment schedule is no longer
              # active.
          "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
            "dayOfWeek": "A String", # Required. Day of the week.
          },
        },
        "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.
        "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
        "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
        "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.
          "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",
          ],
          "groupLabels": [ # Targets VM instances matching ANY of these GroupLabels. This allows
              # targeting of disparate groups of VM instances.
            { # Targets a group of VM instances by using their [assigned
                # labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
                # are key-value pairs. A `GroupLabel` is a combination of labels
                # that is used to target VMs for a patch job.
                #
                # For example, a patch job can target VMs that have the following
                # `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
                # is applied to VMs that have both the labels `env=test` 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",
              },
            },
          ],
          "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
              # instances in any zone.
            "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",
          ],
        },
        "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.
              #
              # 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.
          },
          "mode": "A String", # Mode of the patch rollout.
        },
        "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
            # patch(es) to a VM instance.
          "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",
            ],
            "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",
            ],
          },
          "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.
              "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
            "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
          },
          "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.
            "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.
            "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",
            ],
          },
          "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
              # rules.
          },
          "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.
            "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",
            ],
            "type": "A String", # By changing the type to DIST, the patching is performed
                # using `apt-get dist-upgrade` instead.
          },
          "rebootConfig": "A String", # Post-patch reboot settings.
          "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.
            "excludes": [ # List of patches to exclude from update.
              "A String",
            ],
            "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",
            ],
            "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
          },
          "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.
              "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
            "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
          },
        },
      }

`delete(name, x__xgafv=None)`

    Delete an OS Config patch deployment.

    Args:
      name: string, Required. The resource name of the patch deployment in the form
    `projects/*/patchDeployments/*`. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated
          # empty messages in your APIs. A typical example is to use it as the request
          # or the response type of an API method. For instance:
          #
          #     service Foo {
          #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          #     }
          #
          # The JSON representation for `Empty` is empty JSON object `{}`.
      }

`get(name, x__xgafv=None)`

    Get an OS Config patch deployment.

    Args:
      name: string, Required. The resource name of the patch deployment in the form
    `projects/*/patchDeployments/*`. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Patch deployments are configurations that individual patch jobs use to
          # complete a patch. These configurations include instance filter, package
          # 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).
        "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.
        },
        "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.
        "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
            # to 1024 characters.
        "recurringSchedule": { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
          "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
              # Defaults to `create_time` of the patch deployment.
          "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
          "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`.
            "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.
            "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.
          },
          "nextExecuteTime": "A String", # Output only. The time the next patch job is scheduled to run.
          "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".
            "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.
              "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.
            },
          },
          "frequency": "A String", # Required. The frequency unit of this recurring schedule.
          "timeZone": { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
              # The rules for daylight saving time are determined by the chosen time zone.
              # [IANA Time Zone Database](https://www.iana.org/time-zones).
            "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".
          },
          "endTime": "A String", # Optional. The end time at which a recurring patch deployment schedule is no longer
              # active.
          "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
            "dayOfWeek": "A String", # Required. Day of the week.
          },
        },
        "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.
        "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
        "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
        "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.
          "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",
          ],
          "groupLabels": [ # Targets VM instances matching ANY of these GroupLabels. This allows
              # targeting of disparate groups of VM instances.
            { # Targets a group of VM instances by using their [assigned
                # labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
                # are key-value pairs. A `GroupLabel` is a combination of labels
                # that is used to target VMs for a patch job.
                #
                # For example, a patch job can target VMs that have the following
                # `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
                # is applied to VMs that have both the labels `env=test` 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",
              },
            },
          ],
          "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
              # instances in any zone.
            "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",
          ],
        },
        "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.
              #
              # 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.
          },
          "mode": "A String", # Mode of the patch rollout.
        },
        "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
            # patch(es) to a VM instance.
          "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",
            ],
            "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",
            ],
          },
          "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.
              "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
            "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
          },
          "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.
            "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.
            "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",
            ],
          },
          "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
              # rules.
          },
          "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.
            "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",
            ],
            "type": "A String", # By changing the type to DIST, the patching is performed
                # using `apt-get dist-upgrade` instead.
          },
          "rebootConfig": "A String", # Post-patch reboot settings.
          "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.
            "excludes": [ # List of patches to exclude from update.
              "A String",
            ],
            "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",
            ],
            "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
          },
          "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.
              "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
            "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                "object": "A String", # Required. Name of the Cloud Storage object.
                "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                "generationNumber": "A String", # Required. Generation number of the 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.
            },
          },
        },
      }

`list(parent, pageToken=None, pageSize=None, x__xgafv=None)`

    Get a page of OS Config patch deployments.

    Args:
      parent: string, Required. The resource name of the parent in the form `projects/*`. (required)
      pageToken: string, Optional. A pagination token returned from a previous call to ListPatchDeployments
    that indicates where this listing should continue from.
      pageSize: integer, Optional. The maximum number of patch deployments to return. Default is 100.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A response message for listing patch deployments.
        "patchDeployments": [ # The list of patch deployments.
          { # Patch deployments are configurations that individual patch jobs use to
              # complete a patch. These configurations include instance filter, package
              # 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).
            "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.
            },
            "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.
            "description": "A String", # Optional. Description of the patch deployment. Length of the description is limited
                # to 1024 characters.
            "recurringSchedule": { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
              "startTime": "A String", # Optional. The time that the recurring schedule becomes effective.
                  # Defaults to `create_time` of the patch deployment.
              "lastExecuteTime": "A String", # Output only. The time the last patch job ran successfully.
              "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`.
                "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.
                "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.
              },
              "nextExecuteTime": "A String", # Output only. The time the next patch job is scheduled to run.
              "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".
                "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.
                  "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.
                },
              },
              "frequency": "A String", # Required. The frequency unit of this recurring schedule.
              "timeZone": { # Represents a time zone from the # Required. Defines the time zone that `time_of_day` is relative to.
                  # The rules for daylight saving time are determined by the chosen time zone.
                  # [IANA Time Zone Database](https://www.iana.org/time-zones).
                "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".
              },
              "endTime": "A String", # Optional. The end time at which a recurring patch deployment schedule is no longer
                  # active.
              "weekly": { # Represents a weekly schedule. # Required. Schedule with weekly executions.
                "dayOfWeek": "A String", # Required. Day of the week.
              },
            },
            "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.
            "createTime": "A String", # Output only. Time the patch deployment was created. Timestamp is in
                # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
            "duration": "A String", # Optional. Duration of the patch. After the duration ends, the patch times out.
            "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.
              "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",
              ],
              "groupLabels": [ # Targets VM instances matching ANY of these GroupLabels. This allows
                  # targeting of disparate groups of VM instances.
                { # Targets a group of VM instances by using their [assigned
                    # labels](https://cloud.google.com/compute/docs/labeling-resources). Labels
                    # are key-value pairs. A `GroupLabel` is a combination of labels
                    # that is used to target VMs for a patch job.
                    #
                    # For example, a patch job can target VMs that have the following
                    # `GroupLabel`: `{"env":"test", "app":"web"}`. This means that the patch job
                    # is applied to VMs that have both the labels `env=test` 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",
                  },
                },
              ],
              "zones": [ # Targets VM instances in ANY of these zones. Leave empty to target VM
                  # instances in any zone.
                "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",
              ],
            },
            "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.
                  #
                  # 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.
              },
              "mode": "A String", # Mode of the patch rollout.
            },
            "patchConfig": { # Patch configuration specifications. Contains details on how to apply the # Optional. Patch configuration that is applied.
                # patch(es) to a VM instance.
              "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",
                ],
                "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",
                ],
              },
              "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.
                  "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                    "object": "A String", # Required. Name of the Cloud Storage object.
                    "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                    "generationNumber": "A String", # Required. Generation number of the 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.
                },
                "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                    "object": "A String", # Required. Name of the Cloud Storage object.
                    "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                    "generationNumber": "A String", # Required. Generation number of the 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.
                },
              },
              "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.
                "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.
                "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",
                ],
              },
              "goo": { # Googet patching is performed by running `googet update`. # Goo update settings. Use this setting to override the default `goo` patch
                  # rules.
              },
              "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.
                "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",
                ],
                "type": "A String", # By changing the type to DIST, the patching is performed
                    # using `apt-get dist-upgrade` instead.
              },
              "rebootConfig": "A String", # Post-patch reboot settings.
              "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.
                "excludes": [ # List of patches to exclude from update.
                  "A String",
                ],
                "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",
                ],
                "withUpdate": True or False, # Adds the `--with-update` flag, to `zypper patch`.
              },
              "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.
                  "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                    "object": "A String", # Required. Name of the Cloud Storage object.
                    "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                    "generationNumber": "A String", # Required. Generation number of the 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.
                },
                "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": { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                    "object": "A String", # Required. Name of the Cloud Storage object.
                    "bucket": "A String", # Required. Bucket of the Cloud Storage object.
                    "generationNumber": "A String", # Required. Generation number of the 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.
                },
              },
            },
          },
        ],
        "nextPageToken": "A String", # A pagination token that can be used to get the next page of patch
            # deployments.
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.