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

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.authConfigs.html">authConfigs()</a></code>
</p>
<p class="firstline">Returns the authConfigs Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.certificates.html">certificates()</a></code>
</p>
<p class="firstline">Returns the certificates Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.clients.html">clients()</a></code>
</p>
<p class="firstline">Returns the clients Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.cloudFunctions.html">cloudFunctions()</a></code>
</p>
<p class="firstline">Returns the cloudFunctions Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.connections.html">connections()</a></code>
</p>
<p class="firstline">Returns the connections Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.integrations.html">integrations()</a></code>
</p>
<p class="firstline">Returns the integrations Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.products.html">products()</a></code>
</p>
<p class="firstline">Returns the products Resource.</p>

<p class="toc_element">
  <code><a href="integrations_v1.projects.locations.sfdcInstances.html">sfdcInstances()</a></code>
</p>
<p class="firstline">Returns the sfdcInstances 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="#getClients">getClients(parent, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the client configuration for the given project and location resource name</p>
<p class="toc_element">
  <code><a href="#listTaskEntities">listTaskEntities(parent, x__xgafv=None)</a></code></p>
<p class="firstline">This is a UI only method and will be moved away. Returns a list of common tasks.</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="getClients">getClients(parent, x__xgafv=None)</code>
  <pre>Gets the client configuration for the given project and location resource name

Args:
  parent: string, Required. Required: The ID of the GCP Project to be provisioned. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for the GetClient rpc
  &quot;client&quot;: { # The configuration information for the Client # Required. Required: The client configuration that was requested
    &quot;billingType&quot;: &quot;A String&quot;, # Indicates the billing type of the client
    &quot;clientState&quot;: &quot;A String&quot;, # Indicates the activity state the client
    &quot;cloudKmsConfig&quot;: { # Configuration information for Client&#x27;s Cloud KMS information # Cloud KMS config for Auth Module to encrypt/decrypt credentials.
      &quot;key&quot;: &quot;A String&quot;, # Required. A Cloud KMS key is a named object containing one or more key versions, along with metadata for the key. A key exists on exactly one key ring tied to a specific location.
      &quot;keyVersion&quot;: &quot;A String&quot;, # Optional. Each version of a key contains key material used for encryption or signing. A key&#x27;s version is represented by an integer, starting at 1. To decrypt data or verify a signature, you must use the same key version that was used to encrypt or sign the data.
      &quot;kmsLocation&quot;: &quot;A String&quot;, # Required. Location name of the key ring, e.g. &quot;us-west1&quot;.
      &quot;kmsRing&quot;: &quot;A String&quot;, # Required. A key ring organizes keys in a specific Google Cloud location and allows you to manage access control on groups of keys. A key ring&#x27;s name does not need to be unique across a Google Cloud project, but must be unique within a given location.
    },
    &quot;cloudLoggingConfig&quot;: { # Config info for Cloud Logging # Determines the cloud logging configuration for the project
      &quot;bucket&quot;: &quot;A String&quot;, # Cloud bucket name for the project.
      &quot;enableCloudLogging&quot;: True or False, # This field determines whether the logs should be sent to cloud logging api
    },
    &quot;createTime&quot;: &quot;A String&quot;, # The timestamp when the client was first created.
    &quot;description&quot;: &quot;A String&quot;, # Description of what the client is used for
    &quot;id&quot;: &quot;A String&quot;, # Globally unique ID (project_id + region)
    &quot;p4ServiceAccount&quot;: &quot;A String&quot;, # The P4SA account associated with this client
    &quot;projectId&quot;: &quot;A String&quot;, # The GCP project id of the client associated with
    &quot;region&quot;: &quot;A String&quot;, # The region the client is linked to.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="listTaskEntities">listTaskEntities(parent, x__xgafv=None)</code>
  <pre>This is a UI only method and will be moved away. Returns a list of common tasks.

Args:
  parent: string, Required. The location resource of the request. This is not going to be used but preserve the field for future. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This is a UI only method and will be moved away. Response for ListTaskEntities.
  &quot;taskEntities&quot;: [ # The list of the tasks.
    { # Contains a task&#x27;s metadata and associated information. Next available id: 7
      &quot;disabledForVpcSc&quot;: True or False, # True if the task has conflict with vpcsc
      &quot;metadata&quot;: { # TaskMetadata are attributes that are associated to every common Task we have. Next available: 26 # Metadata inclueds the task name, author and so on.
        &quot;activeTaskName&quot;: &quot;A String&quot;, # The new task name to replace the current task if it is deprecated. Otherwise, it is the same as the current task name.
        &quot;admins&quot;: [
          { # Admins are owners of a Task, and have all permissions on a particular task identified by the task name. By default, Eventbus periodically scans all task metadata and syncs (adds) any new admins defined here to Zanzibar.
            &quot;googleGroupEmail&quot;: &quot;A String&quot;,
            &quot;userEmail&quot;: &quot;A String&quot;,
          },
        ],
        &quot;category&quot;: &quot;A String&quot;,
        &quot;codeSearchLink&quot;: &quot;A String&quot;, # The Code Search link to the Task Java file.
        &quot;defaultJsonValidationOption&quot;: &quot;A String&quot;, # Controls whether JSON workflow parameters are validated against provided schemas before and/or after this task&#x27;s execution.
        &quot;defaultSpec&quot;: &quot;A String&quot;, # Contains the initial configuration of the task with default values set. For now, The string should be compatible to an ASCII-proto format.
        &quot;description&quot;: &quot;A String&quot;, # In a few sentences, describe the purpose and usage of the task.
        &quot;descriptiveName&quot;: &quot;A String&quot;, # The string name to show on the task list on the Workflow editor screen. This should be a very short, one to two words name for the task. (e.g. &quot;Send Mail&quot;)
        &quot;docMarkdown&quot;: &quot;A String&quot;, # Snippet of markdown documentation to embed in the RHP for this task.
        &quot;externalCategory&quot;: &quot;A String&quot;,
        &quot;externalCategorySequence&quot;: 42, # Sequence with which the task in specific category to be displayed in task discovery panel for external users.
        &quot;externalDocHtml&quot;: &quot;A String&quot;, # External-facing documention embedded in the RHP for this task.
        &quot;externalDocLink&quot;: &quot;A String&quot;, # Doc link for external-facing documentation (separate from g3doc).
        &quot;externalDocMarkdown&quot;: &quot;A String&quot;, # DEPRECATED: Use external_doc_html.
        &quot;g3DocLink&quot;: &quot;A String&quot;, # URL to the associated G3 Doc for the task if available
        &quot;iconLink&quot;: &quot;A String&quot;, # URL to gstatic image icon for this task. This icon shows up on the task list panel along with the task name in the Workflow Editor screen. Use the 24p, 2x, gray color icon image format. See go/icons.
        &quot;isDeprecated&quot;: True or False, # The deprecation status of the current task. Default value is false;
        &quot;name&quot;: &quot;A String&quot;, # The actual class name or the annotated name of the task. Task Author should initialize this field with value from the getName() method of the Task class.
        &quot;standaloneExternalDocHtml&quot;: &quot;A String&quot;, # External-facing documention for standalone IP in pantheon embedded in the RHP for this task. Non null only if different from external_doc_html
        &quot;status&quot;: &quot;A String&quot;, # Allows author to indicate if the task is ready to use or not. If not set, then it will default to INACTIVE.
        &quot;system&quot;: &quot;A String&quot;,
        &quot;tags&quot;: [ # A set of tags that pertain to a particular task. This can be used to improve the searchability of tasks with several names (&quot;REST Caller&quot; vs. &quot;Call REST Endpoint&quot;) or to help users find tasks based on related words.
          &quot;A String&quot;,
        ],
      },
      &quot;paramSpecs&quot;: { # Declarations for inputs/outputs for a TypedTask. This is also associated with the METADATA mask.
        &quot;parameters&quot;: [
          { # Key-value pair of EventBus task parameters. Next id: 13
            &quot;className&quot;: &quot;A String&quot;, # The FQCN of the Java object this represents. A string, for example, would be &quot;java.lang.String&quot;. If this is &quot;java.lang.Object&quot;, the parameter can be of any type.
            &quot;collectionElementClassName&quot;: &quot;A String&quot;, # If it is a collection of objects, this would be the FCQN of every individual element in the collection. If this is &quot;java.lang.Object&quot;, the parameter is a collection of any type.
            &quot;config&quot;: { # Optional fields, such as help text and other useful info.
              &quot;descriptivePhrase&quot;: &quot;A String&quot;, # A short phrase to describe what this parameter contains.
              &quot;helpText&quot;: &quot;A String&quot;, # Detailed help text for this parameter containing information not provided elsewhere. For example, instructions on how to migrate from a deprecated parameter.
              &quot;hideDefaultValue&quot;: True or False, # Whether the default value is hidden in the UI.
              &quot;inputDisplayOption&quot;: &quot;A String&quot;,
              &quot;isHidden&quot;: True or False, # Whether this field is hidden in the UI.
              &quot;label&quot;: &quot;A String&quot;, # A user-friendly label for the parameter.
              &quot;parameterNameOption&quot;: &quot;A String&quot;,
              &quot;subSectionLabel&quot;: &quot;A String&quot;, # A user-friendly label for subSection under which the parameter will be displayed.
              &quot;uiPlaceholderText&quot;: &quot;A String&quot;, # Placeholder text which will appear in the UI input form for this parameter.
            },
            &quot;dataType&quot;: &quot;A String&quot;, # The data type of the parameter.
            &quot;defaultValue&quot;: { # To support various types of parameter values. Next available id: 14 # Default values for the defined keys. Each value can either be string, int, double or any proto message or a serialized object.
              &quot;booleanArray&quot;: {
                &quot;booleanValues&quot;: [
                  True or False,
                ],
              },
              &quot;booleanValue&quot;: True or False,
              &quot;doubleArray&quot;: {
                &quot;doubleValues&quot;: [
                  3.14,
                ],
              },
              &quot;doubleValue&quot;: 3.14,
              &quot;intArray&quot;: {
                &quot;intValues&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;intValue&quot;: &quot;A String&quot;,
              &quot;jsonValue&quot;: &quot;A String&quot;,
              &quot;protoArray&quot;: {
                &quot;protoValues&quot;: [
                  {
                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
                  },
                ],
              },
              &quot;protoValue&quot;: {
                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
              },
              &quot;serializedObjectValue&quot;: {
                &quot;objectValue&quot;: &quot;A String&quot;,
              },
              &quot;stringArray&quot;: {
                &quot;stringValues&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;stringValue&quot;: &quot;A String&quot;,
            },
            &quot;isDeprecated&quot;: True or False, # If set, this entry is deprecated, so further use of this parameter should be prohibited.
            &quot;isOutput&quot;: True or False,
            &quot;jsonSchema&quot;: &quot;A String&quot;, # If the data_type is JSON_VALUE, then this will define its schema.
            &quot;key&quot;: &quot;A String&quot;, # Key is used to retrieve the corresponding parameter value. This should be unique for a given task. These parameters must be predefined in the workflow definition.
            &quot;protoDef&quot;: { # Populated if this represents a proto or proto array.
              &quot;fullName&quot;: &quot;A String&quot;, # The fully-qualified proto name. This message, for example, would be &quot;enterprise.crm.eventbus.proto.ParamSpecEntry.ProtoDefinition&quot;.
              &quot;path&quot;: &quot;A String&quot;, # Path to the proto file that contains the message type&#x27;s definition.
            },
            &quot;required&quot;: True or False, # If set, the user must provide an input value for this parameter.
            &quot;validationRule&quot;: { # Rule used to validate inputs (individual values and collection elements) for this parameter.
              &quot;doubleRange&quot;: { # Range used to validate doubles and floats.
                &quot;max&quot;: 3.14, # The inclusive maximum of the acceptable range.
                &quot;min&quot;: 3.14, # The inclusive minimum of the acceptable range.
              },
              &quot;intRange&quot;: { # Range used to validate longs and ints.
                &quot;max&quot;: &quot;A String&quot;, # The inclusive maximum of the acceptable range.
                &quot;min&quot;: &quot;A String&quot;, # The inclusive minimum of the acceptable range.
              },
              &quot;stringRegex&quot;: { # Rule used to validate strings.
                &quot;exclusive&quot;: True or False, # Whether the regex matcher is applied exclusively (if true, matching values will be rejected).
                &quot;regex&quot;: &quot;A String&quot;, # The regex applied to the input value(s).
              },
            },
          },
        ],
      },
      &quot;stats&quot;: { # Stats for the requested dimensions: QPS, duration, and error/warning rate # Deprecated - statistics from the Monarch query.
        &quot;dimensions&quot;: { # Dimensions that these stats have been aggregated on.
          &quot;clientId&quot;: &quot;A String&quot;,
          &quot;enumFilterType&quot;: &quot;A String&quot;, # Whether to include or exclude the enums matching the regex.
          &quot;errorEnumString&quot;: &quot;A String&quot;,
          &quot;retryAttempt&quot;: &quot;A String&quot;,
          &quot;taskName&quot;: &quot;A String&quot;,
          &quot;taskNumber&quot;: &quot;A String&quot;,
          &quot;triggerId&quot;: &quot;A String&quot;, # Stats have been or will be aggregated on set fields for any semantically-meaningful combination.
          &quot;warningEnumString&quot;: &quot;A String&quot;,
          &quot;workflowId&quot;: &quot;A String&quot;,
          &quot;workflowName&quot;: &quot;A String&quot;,
        },
        &quot;durationInSeconds&quot;: 3.14, # Average duration in seconds.
        &quot;errorRate&quot;: 3.14, # Average error rate.
        &quot;qps&quot;: 3.14, # Queries per second.
        &quot;warningRate&quot;: 3.14, # Average warning rate.
      },
      &quot;taskType&quot;: &quot;A String&quot;, # Defines the type of the task
      &quot;uiConfig&quot;: { # Task authors would use this type to configure the UI for a particular task by specifying what UI config modules should be included to compose the UI. Learn more about config module framework: go/integration-platform-config-module-framework # UI configuration for this task Also associated with the METADATA mask.
        &quot;taskUiModuleConfigs&quot;: [ # Configurations of included config modules.
          { # Task author would use this type to configure a config module.
            &quot;moduleId&quot;: &quot;A String&quot;, # ID of the config module.
          },
        ],
      },
    },
  ],
}</pre>
</div>

</body></html>