<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="compute_v1beta14.html">Compute Engine API</a> . <a href="compute_v1beta14.firewalls.html">firewalls</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(project, firewall)</a></code></p>
<p class="firstline">Deletes the specified firewall resource.</p>
<p class="toc_element">
  <code><a href="#get">get(project, firewall)</a></code></p>
<p class="firstline">Returns the specified firewall resource.</p>
<p class="toc_element">
  <code><a href="#insert">insert(project, body)</a></code></p>
<p class="firstline">Creates a firewall resource in the specified project using the data included in the request.</p>
<p class="toc_element">
  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
<p class="firstline">Retrieves the list of firewall resources available to the specified project.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(project, firewall, body)</a></code></p>
<p class="firstline">Updates the specified firewall resource with the data included in the request. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(project, firewall, body)</a></code></p>
<p class="firstline">Updates the specified firewall resource with the data included in the request.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(project, firewall)</code>
  <pre>Deletes the specified firewall resource.

Args:
  project: string, Name of the project scoping this request. (required)
  firewall: string, Name of the firewall resource to delete. (required)

Returns:
  An object of the form:

    { # An operation resource, used to manage asynchronous API requests.
    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
    "kind": "compute#operation", # Type of the resource.
    "name": "A String", # Name of the resource (output only).
    "zone": "A String", # URL of the zone where the operation resides (output only).
    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
      {
        "message": "A String", # Optional human-readable details for this warning.
        "code": "A String", # The warning type identifier for this warning.
        "data": [ # Metadata for this warning in 'key: value' format.
          {
            "value": "A String", # A warning data value corresponding to the key.
            "key": "A String", # A key for the warning data.
          },
        ],
      },
    ],
    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
      "errors": [ # The array of errors encountered while processing this operation.
        {
          "message": "A String", # An optional, human-readable error message.
          "code": "A String", # The error type identifier for this error.
          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
        },
      ],
    },
    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(project, firewall)</code>
  <pre>Returns the specified firewall resource.

Args:
  project: string, Name of the project scoping this request. (required)
  firewall: string, Name of the firewall resource to return. (required)

Returns:
  An object of the form:

    { # A firewall resource.
      "kind": "compute#firewall", # Type of the resource.
      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
      "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
        "A String",
      ],
      "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
        "A String",
      ],
      "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
      "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
        "A String",
      ],
      "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
        {
          "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be a well known protocol string (tcp, udp or icmp) or the IP protocol number.
          "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
              # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
            "A String",
          ],
        },
      ],
      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
      "selfLink": "A String", # Server defined URL for the resource (output only).
      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(project, body)</code>
  <pre>Creates a firewall resource in the specified project using the data included in the request.

Args:
  project: string, Name of the project scoping this request. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A firewall resource.
    "kind": "compute#firewall", # Type of the resource.
    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
      "A String",
    ],
    "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
      "A String",
    ],
    "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
      "A String",
    ],
    "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
      {
        "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be a well known protocol string (tcp, udp or icmp) or the IP protocol number.
        "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
            # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
          "A String",
        ],
      },
    ],
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
  }


Returns:
  An object of the form:

    { # An operation resource, used to manage asynchronous API requests.
    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
    "kind": "compute#operation", # Type of the resource.
    "name": "A String", # Name of the resource (output only).
    "zone": "A String", # URL of the zone where the operation resides (output only).
    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
      {
        "message": "A String", # Optional human-readable details for this warning.
        "code": "A String", # The warning type identifier for this warning.
        "data": [ # Metadata for this warning in 'key: value' format.
          {
            "value": "A String", # A warning data value corresponding to the key.
            "key": "A String", # A key for the warning data.
          },
        ],
      },
    ],
    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
      "errors": [ # The array of errors encountered while processing this operation.
        {
          "message": "A String", # An optional, human-readable error message.
          "code": "A String", # The error type identifier for this error.
          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
        },
      ],
    },
    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
  <pre>Retrieves the list of firewall resources available to the specified project.

Args:
  project: string, Name of the project scoping this request. (required)
  maxResults: integer, Optional. Maximum count of results to be returned. Maximum and default value is 100.
  pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
  filter: string, Optional. Filter expression for filtering listed resources.

Returns:
  An object of the form:

    { # Contains a list of firewall resources.
    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
    "items": [ # The firewall resources.
      { # A firewall resource.
          "kind": "compute#firewall", # Type of the resource.
          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
          "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
            "A String",
          ],
          "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
            "A String",
          ],
          "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
          "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
            "A String",
          ],
          "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
            {
              "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be a well known protocol string (tcp, udp or icmp) or the IP protocol number.
              "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
                  # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
                "A String",
              ],
            },
          ],
          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
          "selfLink": "A String", # Server defined URL for the resource (output only).
          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
        },
    ],
    "kind": "compute#firewallList", # Type of resource.
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for this resource (output only).
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(project, firewall, body)</code>
  <pre>Updates the specified firewall resource with the data included in the request. This method supports patch semantics.

Args:
  project: string, Name of the project scoping this request. (required)
  firewall: string, Name of the firewall resource to update. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A firewall resource.
    "kind": "compute#firewall", # Type of the resource.
    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
      "A String",
    ],
    "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
      "A String",
    ],
    "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
      "A String",
    ],
    "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
      {
        "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be a well known protocol string (tcp, udp or icmp) or the IP protocol number.
        "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
            # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
          "A String",
        ],
      },
    ],
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
  }


Returns:
  An object of the form:

    { # An operation resource, used to manage asynchronous API requests.
    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
    "kind": "compute#operation", # Type of the resource.
    "name": "A String", # Name of the resource (output only).
    "zone": "A String", # URL of the zone where the operation resides (output only).
    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
      {
        "message": "A String", # Optional human-readable details for this warning.
        "code": "A String", # The warning type identifier for this warning.
        "data": [ # Metadata for this warning in 'key: value' format.
          {
            "value": "A String", # A warning data value corresponding to the key.
            "key": "A String", # A key for the warning data.
          },
        ],
      },
    ],
    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
      "errors": [ # The array of errors encountered while processing this operation.
        {
          "message": "A String", # An optional, human-readable error message.
          "code": "A String", # The error type identifier for this error.
          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
        },
      ],
    },
    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(project, firewall, body)</code>
  <pre>Updates the specified firewall resource with the data included in the request.

Args:
  project: string, Name of the project scoping this request. (required)
  firewall: string, Name of the firewall resource to update. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A firewall resource.
    "kind": "compute#firewall", # Type of the resource.
    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
      "A String",
    ],
    "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
      "A String",
    ],
    "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
      "A String",
    ],
    "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
      {
        "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be a well known protocol string (tcp, udp or icmp) or the IP protocol number.
        "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
            # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
          "A String",
        ],
      },
    ],
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
  }


Returns:
  An object of the form:

    { # An operation resource, used to manage asynchronous API requests.
    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
    "kind": "compute#operation", # Type of the resource.
    "name": "A String", # Name of the resource (output only).
    "zone": "A String", # URL of the zone where the operation resides (output only).
    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
      {
        "message": "A String", # Optional human-readable details for this warning.
        "code": "A String", # The warning type identifier for this warning.
        "data": [ # Metadata for this warning in 'key: value' format.
          {
            "value": "A String", # A warning data value corresponding to the key.
            "key": "A String", # A key for the warning data.
          },
        ],
      },
    ],
    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
      "errors": [ # The array of errors encountered while processing this operation.
        {
          "message": "A String", # An optional, human-readable error message.
          "code": "A String", # The error type identifier for this error.
          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
        },
      ],
    },
    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
    "selfLink": "A String", # Server defined URL for the resource (output only).
    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
  }</pre>
</div>

</body></html>