<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="gmail_v1.html">Gmail API</a> . <a href="gmail_v1.users.html">users</a> . <a href="gmail_v1.users.settings.html">settings</a> . <a href="gmail_v1.users.settings.sendAs.html">sendAs</a> . <a href="gmail_v1.users.settings.sendAs.smimeInfo.html">smimeInfo</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="#delete">delete(userId, sendAsEmail, id, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes the specified S/MIME config for the specified send-as alias.</p>
<p class="toc_element">
  <code><a href="#get">get(userId, sendAsEmail, id, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the specified S/MIME config for the specified send-as alias.</p>
<p class="toc_element">
  <code><a href="#insert">insert(userId, sendAsEmail, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Insert (upload) the given S/MIME config for the specified send-as alias. Note that pkcs12 format is required for the key.</p>
<p class="toc_element">
  <code><a href="#list">list(userId, sendAsEmail, x__xgafv=None)</a></code></p>
<p class="firstline">Lists S/MIME configs for the specified send-as alias.</p>
<p class="toc_element">
  <code><a href="#setDefault">setDefault(userId, sendAsEmail, id, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the default S/MIME config for the specified send-as alias.</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="delete">delete(userId, sendAsEmail, id, x__xgafv=None)</code>
  <pre>Deletes the specified S/MIME config for the specified send-as alias.

Args:
  userId: string, The user&#x27;s email address. The special value `me` can be used to indicate the authenticated user. (required)
  sendAsEmail: string, The email address that appears in the &quot;From:&quot; header for mail sent using this alias. (required)
  id: string, The immutable ID for the SmimeInfo. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(userId, sendAsEmail, id, x__xgafv=None)</code>
  <pre>Gets the specified S/MIME config for the specified send-as alias.

Args:
  userId: string, The user&#x27;s email address. The special value `me` can be used to indicate the authenticated user. (required)
  sendAsEmail: string, The email address that appears in the &quot;From:&quot; header for mail sent using this alias. (required)
  id: string, The immutable ID for the SmimeInfo. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An S/MIME email config.
  &quot;encryptedKeyPassword&quot;: &quot;A String&quot;, # Encrypted key password, when key is encrypted.
  &quot;expiration&quot;: &quot;A String&quot;, # When the certificate expires (in milliseconds since epoch).
  &quot;id&quot;: &quot;A String&quot;, # The immutable ID for the SmimeInfo.
  &quot;isDefault&quot;: True or False, # Whether this SmimeInfo is the default one for this user&#x27;s send-as address.
  &quot;issuerCn&quot;: &quot;A String&quot;, # The S/MIME certificate issuer&#x27;s common name.
  &quot;pem&quot;: &quot;A String&quot;, # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
  &quot;pkcs12&quot;: &quot;A String&quot;, # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(userId, sendAsEmail, body=None, x__xgafv=None)</code>
  <pre>Insert (upload) the given S/MIME config for the specified send-as alias. Note that pkcs12 format is required for the key.

Args:
  userId: string, The user&#x27;s email address. The special value `me` can be used to indicate the authenticated user. (required)
  sendAsEmail: string, The email address that appears in the &quot;From:&quot; header for mail sent using this alias. (required)
  body: object, The request body.
    The object takes the form of:

{ # An S/MIME email config.
  &quot;encryptedKeyPassword&quot;: &quot;A String&quot;, # Encrypted key password, when key is encrypted.
  &quot;expiration&quot;: &quot;A String&quot;, # When the certificate expires (in milliseconds since epoch).
  &quot;id&quot;: &quot;A String&quot;, # The immutable ID for the SmimeInfo.
  &quot;isDefault&quot;: True or False, # Whether this SmimeInfo is the default one for this user&#x27;s send-as address.
  &quot;issuerCn&quot;: &quot;A String&quot;, # The S/MIME certificate issuer&#x27;s common name.
  &quot;pem&quot;: &quot;A String&quot;, # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
  &quot;pkcs12&quot;: &quot;A String&quot;, # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An S/MIME email config.
  &quot;encryptedKeyPassword&quot;: &quot;A String&quot;, # Encrypted key password, when key is encrypted.
  &quot;expiration&quot;: &quot;A String&quot;, # When the certificate expires (in milliseconds since epoch).
  &quot;id&quot;: &quot;A String&quot;, # The immutable ID for the SmimeInfo.
  &quot;isDefault&quot;: True or False, # Whether this SmimeInfo is the default one for this user&#x27;s send-as address.
  &quot;issuerCn&quot;: &quot;A String&quot;, # The S/MIME certificate issuer&#x27;s common name.
  &quot;pem&quot;: &quot;A String&quot;, # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
  &quot;pkcs12&quot;: &quot;A String&quot;, # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(userId, sendAsEmail, x__xgafv=None)</code>
  <pre>Lists S/MIME configs for the specified send-as alias.

Args:
  userId: string, The user&#x27;s email address. The special value `me` can be used to indicate the authenticated user. (required)
  sendAsEmail: string, The email address that appears in the &quot;From:&quot; header for mail sent using this alias. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;smimeInfo&quot;: [ # List of SmimeInfo.
    { # An S/MIME email config.
      &quot;encryptedKeyPassword&quot;: &quot;A String&quot;, # Encrypted key password, when key is encrypted.
      &quot;expiration&quot;: &quot;A String&quot;, # When the certificate expires (in milliseconds since epoch).
      &quot;id&quot;: &quot;A String&quot;, # The immutable ID for the SmimeInfo.
      &quot;isDefault&quot;: True or False, # Whether this SmimeInfo is the default one for this user&#x27;s send-as address.
      &quot;issuerCn&quot;: &quot;A String&quot;, # The S/MIME certificate issuer&#x27;s common name.
      &quot;pem&quot;: &quot;A String&quot;, # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
      &quot;pkcs12&quot;: &quot;A String&quot;, # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="setDefault">setDefault(userId, sendAsEmail, id, x__xgafv=None)</code>
  <pre>Sets the default S/MIME config for the specified send-as alias.

Args:
  userId: string, The user&#x27;s email address. The special value `me` can be used to indicate the authenticated user. (required)
  sendAsEmail: string, The email address that appears in the &quot;From:&quot; header for mail sent using this alias. (required)
  id: string, The immutable ID for the SmimeInfo. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

</body></html>