<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="chromepolicy_v1.html">Chrome Policy API</a> . <a href="chromepolicy_v1.customers.html">customers</a> . <a href="chromepolicy_v1.customers.policies.html">policies</a> . <a href="chromepolicy_v1.customers.policies.orgunits.html">orgunits</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#batchInherit">batchInherit(customer, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Modify multiple policy values that are applied to a specific org unit so that they now inherit the value from a parent (if applicable). All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`, though the values for those keys may be different. On failure the request will return the error details as part of the google.rpc.Status.</p>
<p class="toc_element">
  <code><a href="#batchModify">batchModify(customer, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Modify multiple policy values that are applied to a specific org unit. All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`, though the values for those keys may be different. On failure the request will return the error details as part of the google.rpc.Status.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="batchInherit">batchInherit(customer, body=None, x__xgafv=None)</code>
  <pre>Modify multiple policy values that are applied to a specific org unit so that they now inherit the value from a parent (if applicable). All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`, though the values for those keys may be different. On failure the request will return the error details as part of the google.rpc.Status.

Args:
  customer: string, ID of the G Suite account or literal &quot;my_customer&quot; for the customer associated to the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for specifying that multiple policy values inherit their value from their parents.
  &quot;requests&quot;: [ # List of policies that have to inherit their values as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to an org unit resource. 3. All `policyTargetKey` values must have the same key names in the ` additionalTargetKeys`. This also means if one of the targets has an empty `additionalTargetKeys` map, all of the targets must have an empty `additionalTargetKeys` map. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair.
    { # Request parameters for inheriting policy value of a specific org unit target from the policy value of its parent org unit.
      &quot;policySchema&quot;: &quot;A String&quot;, # The fully qualified name of the policy schema that is being inherited.
      &quot;policyTargetKey&quot;: { # The key used to identify the target on which the policy will be applied. # Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit.
        &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
      },
    },
  ],
}

  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="batchModify">batchModify(customer, body=None, x__xgafv=None)</code>
  <pre>Modify multiple policy values that are applied to a specific org unit. All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`, though the values for those keys may be different. On failure the request will return the error details as part of the google.rpc.Status.

Args:
  customer: string, ID of the G Suite account or literal &quot;my_customer&quot; for the customer associated to the request. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for modifying multiple policy values for a specific target.
  &quot;requests&quot;: [ # List of policies to modify as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to an org unit resource. 3. All `policyTargetKey` values must have the same key names in the ` additionalTargetKeys`. This also means if one of the targets has an empty `additionalTargetKeys` map, all of the targets must have an empty `additionalTargetKeys` map. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair.
    { # Request parameters for modifying a policy value for a specific org unit target.
      &quot;policyTargetKey&quot;: { # The key used to identify the target on which the policy will be applied. # Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit.
        &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
      },
      &quot;policyValue&quot;: { # A particular value for a policy managed by the service. # The new value for the policy.
        &quot;policySchema&quot;: &quot;A String&quot;, # The fully qualified name of the policy schema associated with this policy.
        &quot;value&quot;: { # The value of the policy that is compatible with the schema that it is associated with.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
      },
      &quot;updateMask&quot;: &quot;A String&quot;, # Required. Policy fields to update. Only fields in this mask will be updated; other fields in `policy_value` will be ignored (even if they have values). If a field is in this list it must have a value in &#x27;policy_value&#x27;.
    },
  ],
}

  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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

</body></html>