<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="securitycenter_v1beta2.html">Security Command Center API</a> . <a href="securitycenter_v1beta2.projects.html">projects</a> . <a href="securitycenter_v1beta2.projects.locations.html">locations</a> . <a href="securitycenter_v1beta2.projects.locations.clusters.html">clusters</a> . <a href="securitycenter_v1beta2.projects.locations.clusters.containerThreatDetectionSettings.html">containerThreatDetectionSettings</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#calculate">calculate(name, x__xgafv=None)</a></code></p>
<p class="firstline">Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings.</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="calculate">calculate(name, x__xgafv=None)</code>
  <pre>Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings.

Args:
  name: string, Required. The name of the ContainerThreatDetectionSettings to calculate. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Resource capturing the settings for the Container Threat Detection service.
    &quot;name&quot;: &quot;A String&quot;, # The resource name of the ContainerThreatDetectionSettings. Formats: * organizations/{organization}/containerThreatDetectionSettings * folders/{folder}/containerThreatDetectionSettings * projects/{project}/containerThreatDetectionSettings * projects/{project}/locations/{location}/clusters/{cluster}/containerThreatDetectionSettings
    &quot;serviceAccount&quot;: &quot;A String&quot;, # Output only. The service account used by Container Threat Detection for scanning. Service accounts are scoped at the project level meaning this field will be empty at any level above a project.
    &quot;serviceEnablementState&quot;: &quot;A String&quot;, # The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time the settings were last updated.
    &quot;modules&quot;: { # The configurations including the state of enablement for the service&#x27;s different modules. The absence of a module in the map implies its configuration is inherited from its parent&#x27;s.
      &quot;a_key&quot;: { # Configuration of a module.
        &quot;value&quot;: { # The configuration value for the module. The absence of this field implies its inheritance from the parent.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
        &quot;moduleEnablementState&quot;: &quot;A String&quot;, # The state of enablement for the module at its level of the resource hierarchy.
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

</body></html>