<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="osconfig_v1.html">OS Config API</a> . <a href="osconfig_v1.projects.html">projects</a> . <a href="osconfig_v1.projects.patchDeployments.html">patchDeployments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, patchDeploymentId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Create an OS Config patch deployment.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Delete an OS Config patch deployment.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Get an OS Config patch deployment.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p>
<p class="firstline">Get a page of OS Config patch deployments.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, patchDeploymentId=None, x__xgafv=None)</code>
  <pre>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).
    &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;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited to 1024 characters.
    &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
    &quot;oneTimeSchedule&quot;: { # Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # Required. Schedule a one-time execution.
      &quot;executeTime&quot;: &quot;A String&quot;, # Required. The desired patch job execution time.
    },
    &quot;recurringSchedule&quot;: { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
      &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # 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.
        &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;endTime&quot;: &quot;A String&quot;, # Optional. The end time at which a recurring patch deployment schedule is no longer active.
      &quot;monthly&quot;: { # Represents a monthly schedule. An example of a valid monthly schedule is &quot;on the third Tuesday of the month&quot; or &quot;on the 15th of the month&quot;. # Required. Schedule with monthly executions.
        &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;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;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
        &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
      },
      &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;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;nextExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the next patch job is scheduled to run.
      &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Required. Time of the day to run a recurring deployment.
        &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;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
        &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;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance. # Optional. Patch configuration that is applied.
      &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual. # Zypper update settings. Use this setting to override the default `zypper` patch rules.
        &quot;categories&quot;: [ # Install only patches with these categories. Common categories include security, recommended, and feature.
          &quot;A String&quot;,
        ],
        &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;excludes&quot;: [ # List of patches to exclude from update.
          &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:&#x27; command. This field must not be used with any other patch configuration fields.
          &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
          &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
          },
          &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
          &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
          },
          &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;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the execution can return to indicate a success.
            42,
          ],
        },
      },
      &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 upgrade`. Additional options can be set to control how this is executed. # Apt update settings. Use this setting to override the default `apt` patch rules.
        &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;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead.
      },
      &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;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;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
          &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
          &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
          },
          &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
          &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
            &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
            &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
            &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
          },
          &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;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 can be set to control how this is executed. Note that not all settings are supported on all platforms. # Yum update settings. Use this setting to override the default `yum` patch rules.
        &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
        &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;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag.
          &quot;A String&quot;,
        ],
      },
    },
    &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 concurrency control when applying patch(es) to all targeted VMs. # Optional. Rollout strategy of the patch job.
      &quot;mode&quot;: &quot;A String&quot;, # Mode of the patch rollout.
      &quot;disruptionBudget&quot;: { # Message encapsulating a value that can be either absolute (&quot;fixed&quot;) or relative (&quot;percent&quot;) to a value. # 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.
        &quot;fixed&quot;: 42, # Specifies a fixed value.
        &quot;percent&quot;: 42, # Specifies the relative value defined as a percentage, which will be multiplied by a reference value.
      },
    },
    &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 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. # Required. VM instances to patch.
      &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 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`: `{&quot;env&quot;:&quot;test&quot;, &quot;app&quot;:&quot;web&quot;}`. This means that the patch job is applied to VMs that have both the labels `env=test` and `app=web`.
          &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;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;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is permitted.
    },
    &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.
  }

  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).
      &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;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited to 1024 characters.
      &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
      &quot;oneTimeSchedule&quot;: { # Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # Required. Schedule a one-time execution.
        &quot;executeTime&quot;: &quot;A String&quot;, # Required. The desired patch job execution time.
      },
      &quot;recurringSchedule&quot;: { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
        &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # 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.
          &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;endTime&quot;: &quot;A String&quot;, # Optional. The end time at which a recurring patch deployment schedule is no longer active.
        &quot;monthly&quot;: { # Represents a monthly schedule. An example of a valid monthly schedule is &quot;on the third Tuesday of the month&quot; or &quot;on the 15th of the month&quot;. # Required. Schedule with monthly executions.
          &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;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;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
          &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
        },
        &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;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;nextExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the next patch job is scheduled to run.
        &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Required. Time of the day to run a recurring deployment.
          &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;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
          &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;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance. # Optional. Patch configuration that is applied.
        &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual. # Zypper update settings. Use this setting to override the default `zypper` patch rules.
          &quot;categories&quot;: [ # Install only patches with these categories. Common categories include security, recommended, and feature.
            &quot;A String&quot;,
          ],
          &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;excludes&quot;: [ # List of patches to exclude from update.
            &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:&#x27; command. This field must not be used with any other patch configuration fields.
            &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the execution can return to indicate a success.
              42,
            ],
          },
        },
        &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 upgrade`. Additional options can be set to control how this is executed. # Apt update settings. Use this setting to override the default `apt` patch rules.
          &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;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead.
        },
        &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;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;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
            &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;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 can be set to control how this is executed. Note that not all settings are supported on all platforms. # Yum update settings. Use this setting to override the default `yum` patch rules.
          &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
          &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;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag.
            &quot;A String&quot;,
          ],
        },
      },
      &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 concurrency control when applying patch(es) to all targeted VMs. # Optional. Rollout strategy of the patch job.
        &quot;mode&quot;: &quot;A String&quot;, # Mode of the patch rollout.
        &quot;disruptionBudget&quot;: { # Message encapsulating a value that can be either absolute (&quot;fixed&quot;) or relative (&quot;percent&quot;) to a value. # 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.
          &quot;fixed&quot;: 42, # Specifies a fixed value.
          &quot;percent&quot;: 42, # Specifies the relative value defined as a percentage, which will be multiplied by a reference value.
        },
      },
      &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 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. # Required. VM instances to patch.
        &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 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`: `{&quot;env&quot;:&quot;test&quot;, &quot;app&quot;:&quot;web&quot;}`. This means that the patch job is applied to VMs that have both the labels `env=test` and `app=web`.
            &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;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;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is permitted.
      },
      &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.
    }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>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 `{}`.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>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).
      &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;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited to 1024 characters.
      &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
      &quot;oneTimeSchedule&quot;: { # Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # Required. Schedule a one-time execution.
        &quot;executeTime&quot;: &quot;A String&quot;, # Required. The desired patch job execution time.
      },
      &quot;recurringSchedule&quot;: { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
        &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # 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.
          &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;endTime&quot;: &quot;A String&quot;, # Optional. The end time at which a recurring patch deployment schedule is no longer active.
        &quot;monthly&quot;: { # Represents a monthly schedule. An example of a valid monthly schedule is &quot;on the third Tuesday of the month&quot; or &quot;on the 15th of the month&quot;. # Required. Schedule with monthly executions.
          &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;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;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
          &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
        },
        &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;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;nextExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the next patch job is scheduled to run.
        &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Required. Time of the day to run a recurring deployment.
          &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;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
          &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;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance. # Optional. Patch configuration that is applied.
        &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual. # Zypper update settings. Use this setting to override the default `zypper` patch rules.
          &quot;categories&quot;: [ # Install only patches with these categories. Common categories include security, recommended, and feature.
            &quot;A String&quot;,
          ],
          &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;excludes&quot;: [ # List of patches to exclude from update.
            &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:&#x27; command. This field must not be used with any other patch configuration fields.
            &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the execution can return to indicate a success.
              42,
            ],
          },
        },
        &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 upgrade`. Additional options can be set to control how this is executed. # Apt update settings. Use this setting to override the default `apt` patch rules.
          &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;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead.
        },
        &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;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;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
            &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
            &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
              &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
              &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
              &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
            },
            &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;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 can be set to control how this is executed. Note that not all settings are supported on all platforms. # Yum update settings. Use this setting to override the default `yum` patch rules.
          &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
          &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;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag.
            &quot;A String&quot;,
          ],
        },
      },
      &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 concurrency control when applying patch(es) to all targeted VMs. # Optional. Rollout strategy of the patch job.
        &quot;mode&quot;: &quot;A String&quot;, # Mode of the patch rollout.
        &quot;disruptionBudget&quot;: { # Message encapsulating a value that can be either absolute (&quot;fixed&quot;) or relative (&quot;percent&quot;) to a value. # 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.
          &quot;fixed&quot;: 42, # Specifies a fixed value.
          &quot;percent&quot;: 42, # Specifies the relative value defined as a percentage, which will be multiplied by a reference value.
        },
      },
      &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 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. # Required. VM instances to patch.
        &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 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`: `{&quot;env&quot;:&quot;test&quot;, &quot;app&quot;:&quot;web&quot;}`. This means that the patch job is applied to VMs that have both the labels `env=test` and `app=web`.
            &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;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;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is permitted.
      },
      &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.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageToken=None, pageSize=None, x__xgafv=None)</code>
  <pre>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.
    &quot;patchDeployments&quot;: [ # 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).
          &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;description&quot;: &quot;A String&quot;, # Optional. Description of the patch deployment. Length of the description is limited to 1024 characters.
          &quot;duration&quot;: &quot;A String&quot;, # Optional. Duration of the patch. After the duration ends, the patch times out.
          &quot;oneTimeSchedule&quot;: { # Sets the time for a one time patch deployment. Timestamp is in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # Required. Schedule a one-time execution.
            &quot;executeTime&quot;: &quot;A String&quot;, # Required. The desired patch job execution time.
          },
          &quot;recurringSchedule&quot;: { # Sets the time for recurring patch deployments. # Required. Schedule recurring executions.
            &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # 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.
              &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;endTime&quot;: &quot;A String&quot;, # Optional. The end time at which a recurring patch deployment schedule is no longer active.
            &quot;monthly&quot;: { # Represents a monthly schedule. An example of a valid monthly schedule is &quot;on the third Tuesday of the month&quot; or &quot;on the 15th of the month&quot;. # Required. Schedule with monthly executions.
              &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;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;weekly&quot;: { # Represents a weekly schedule. # Required. Schedule with weekly executions.
              &quot;dayOfWeek&quot;: &quot;A String&quot;, # Required. Day of the week.
            },
            &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;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;nextExecuteTime&quot;: &quot;A String&quot;, # Output only. The time the next patch job is scheduled to run.
            &quot;timeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Required. Time of the day to run a recurring deployment.
              &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;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
              &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;patchConfig&quot;: { # Patch configuration specifications. Contains details on how to apply the patch(es) to a VM instance. # Optional. Patch configuration that is applied.
            &quot;zypper&quot;: { # Zypper patching is performed by running `zypper patch`. See also https://en.opensuse.org/SDB:Zypper_manual. # Zypper update settings. Use this setting to override the default `zypper` patch rules.
              &quot;categories&quot;: [ # Install only patches with these categories. Common categories include security, recommended, and feature.
                &quot;A String&quot;,
              ],
              &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;excludes&quot;: [ # List of patches to exclude from update.
                &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:&#x27; command. This field must not be used with any other patch configuration fields.
                &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
                &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                  &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
                  &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
                  &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
                },
                &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
                &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                  &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
                  &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
                  &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
                },
                &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;allowedSuccessCodes&quot;: [ # Defaults to [0]. A list of possible return values that the execution can return to indicate a success.
                  42,
                ],
              },
            },
            &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 upgrade`. Additional options can be set to control how this is executed. # Apt update settings. Use this setting to override the default `apt` patch rules.
              &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;type&quot;: &quot;A String&quot;, # By changing the type to DIST, the patching is performed using `apt-get dist-upgrade` instead.
            },
            &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;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;linuxExecStepConfig&quot;: { # Common configurations for an ExecStep. # The ExecStepConfig for all Linux VMs targeted by the PatchJob.
                &quot;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
                &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                  &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
                  &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
                  &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
                },
                &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;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;localPath&quot;: &quot;A String&quot;, # An absolute path to the executable on the VM.
                &quot;gcsObject&quot;: { # Cloud Storage object representation. # A Cloud Storage object containing the executable.
                  &quot;generationNumber&quot;: &quot;A String&quot;, # Required. Generation number of the Cloud Storage object. This is used to ensure that the ExecStep specified by this PatchJob does not change.
                  &quot;bucket&quot;: &quot;A String&quot;, # Required. Bucket of the Cloud Storage object.
                  &quot;object&quot;: &quot;A String&quot;, # Required. Name of the Cloud Storage object.
                },
                &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;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 can be set to control how this is executed. Note that not all settings are supported on all platforms. # Yum update settings. Use this setting to override the default `yum` patch rules.
              &quot;minimal&quot;: True or False, # Will cause patch to run `yum update-minimal` instead.
              &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;excludes&quot;: [ # List of packages to exclude from update. These packages are excluded by using the yum `--exclude` flag.
                &quot;A String&quot;,
              ],
            },
          },
          &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 concurrency control when applying patch(es) to all targeted VMs. # Optional. Rollout strategy of the patch job.
            &quot;mode&quot;: &quot;A String&quot;, # Mode of the patch rollout.
            &quot;disruptionBudget&quot;: { # Message encapsulating a value that can be either absolute (&quot;fixed&quot;) or relative (&quot;percent&quot;) to a value. # 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.
              &quot;fixed&quot;: 42, # Specifies a fixed value.
              &quot;percent&quot;: 42, # Specifies the relative value defined as a percentage, which will be multiplied by a reference value.
            },
          },
          &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 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. # Required. VM instances to patch.
            &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 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`: `{&quot;env&quot;:&quot;test&quot;, &quot;app&quot;:&quot;web&quot;}`. This means that the patch job is applied to VMs that have both the labels `env=test` and `app=web`.
                &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;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;all&quot;: True or False, # Target all VM instances in the project. If true, no other criteria is permitted.
          },
          &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;nextPageToken&quot;: &quot;A String&quot;, # A pagination token that can be used to get the next page of patch deployments.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>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 &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>