<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="artifactregistry_v1beta2.html">Artifact Registry API</a> . <a href="artifactregistry_v1beta2.projects.html">projects</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="artifactregistry_v1beta2.projects.locations.html">locations()</a></code>
</p>
<p class="firstline">Returns the locations Resource.</p>

<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="#getProjectSettings">getProjectSettings(name, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the Settings for the Project</p>
<p class="toc_element">
  <code><a href="#updateProjectSettings">updateProjectSettings(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the Settings for the Project</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="getProjectSettings">getProjectSettings(name, x__xgafv=None)</code>
  <pre>Retrieves the Settings for the Project

Args:
  name: string, Required. The name of the projectSettings resource. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The Artifact Registry settings that apply to a Project.
  &quot;legacyRedirectionState&quot;: &quot;A String&quot;, # The redirection state of the legacy repositories in this project.
  &quot;name&quot;: &quot;A String&quot;, # The name of the project&#x27;s settings. Always of the form: projects/{project-id}/projectSettings In update request: never set In response: always set
}</pre>
</div>

<div class="method">
    <code class="details" id="updateProjectSettings">updateProjectSettings(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Retrieves the Settings for the Project

Args:
  name: string, The name of the project&#x27;s settings. Always of the form: projects/{project-id}/projectSettings In update request: never set In response: always set (required)
  body: object, The request body.
    The object takes the form of:

{ # The Artifact Registry settings that apply to a Project.
  &quot;legacyRedirectionState&quot;: &quot;A String&quot;, # The redirection state of the legacy repositories in this project.
  &quot;name&quot;: &quot;A String&quot;, # The name of the project&#x27;s settings. Always of the form: projects/{project-id}/projectSettings In update request: never set In response: always set
}

  updateMask: string, Field mask to support partial updates.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The Artifact Registry settings that apply to a Project.
  &quot;legacyRedirectionState&quot;: &quot;A String&quot;, # The redirection state of the legacy repositories in this project.
  &quot;name&quot;: &quot;A String&quot;, # The name of the project&#x27;s settings. Always of the form: projects/{project-id}/projectSettings In update request: never set In response: always set
}</pre>
</div>

</body></html>