API Keys API . projects . locations . keys

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, keyId=None, x__xgafv=None)

Creates a new API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.

delete(name, etag=None, x__xgafv=None)

Deletes an API key. Deleted key can be retrieved within 30 days of deletion. Afterward, key will be purged from the project. NOTE: Key is a global resource; hence the only supported value for location is `global`.

get(name, x__xgafv=None)

Gets the metadata for an API key. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.

getKeyString(name, x__xgafv=None)

Get the key string for an API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.

list(parent, pageSize=None, pageToken=None, showDeleted=None, x__xgafv=None)

Lists the API keys owned by a project. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.

list_next()

Retrieves the next page of results.

patch(name, body=None, updateMask=None, x__xgafv=None)

Patches the modifiable fields of an API key. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.

undelete(name, body=None, x__xgafv=None)

Undeletes an API key which was deleted within 30 days. NOTE: Key is a global resource; hence the only supported value for location is `global`.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, keyId=None, x__xgafv=None)
Creates a new API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.

Args:
  parent: string, Required. The project in which the API key is created. (required)
  body: object, The request body.
    The object takes the form of:

{ # The representation of a key managed by the API Keys API.
  "annotations": { # Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. A timestamp identifying the time this key was originally created.
  "deleteTime": "A String", # Output only. A timestamp when this key was deleted. If the resource is not deleted, this must be empty.
  "displayName": "A String", # Human-readable display name of this key that you can modify. The maximum length is 63 characters.
  "etag": "A String", # Output only. A checksum computed by the server based on the current value of the Key resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. See https://google.aip.dev/154.
  "keyString": "A String", # Output only. An encrypted and signed value held by this key. This field can be accessed only through the `GetKeyString` method.
  "name": "A String", # Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`.
  "restrictions": { # Describes the restrictions on the key. # Key restrictions.
    "androidKeyRestrictions": { # The Android apps that are allowed to use the key. # The Android apps that are allowed to use the key.
      "allowedApplications": [ # A list of Android applications that are allowed to make API calls with this key.
        { # Identifier of an Android application for key use.
          "packageName": "A String", # The package name of the application.
          "sha1Fingerprint": "A String", # The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.
        },
      ],
    },
    "apiTargets": [ # A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.
      { # A restriction for a specific service and optionally one or multiple specific methods. Both fields are case insensitive.
        "methods": [ # Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`
          "A String",
        ],
        "service": "A String", # The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use [`gcloud services list`](https://cloud.google.com/sdk/gcloud/reference/services/list) to get a list of services that are enabled in the project.
      },
    ],
    "browserKeyRestrictions": { # The HTTP referrers (websites) that are allowed to use the key. # The HTTP referrers (websites) that are allowed to use the key.
      "allowedReferrers": [ # A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.
        "A String",
      ],
    },
    "iosKeyRestrictions": { # The iOS apps that are allowed to use the key. # The iOS apps that are allowed to use the key.
      "allowedBundleIds": [ # A list of bundle IDs that are allowed when making API calls with this key.
        "A String",
      ],
    },
    "serverKeyRestrictions": { # The IP addresses of callers that are allowed to use the key. # The IP addresses of callers that are allowed to use the key.
      "allowedIps": [ # A list of the caller IP addresses that are allowed to make API calls with this key.
        "A String",
      ],
    },
  },
  "serviceAccountEmail": "A String", # Optional. The email address of [the service account](https://cloud.google.com/iam/docs/service-accounts) the key is bound to.
  "uid": "A String", # Output only. Unique id in UUID4 format.
  "updateTime": "A String", # Output only. A timestamp identifying the time this key was last updated.
}

  keyId: string, User specified key id (optional). If specified, it will become the final component of the key resource name. The id must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. In another word, the id must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. The id must NOT be a UUID-like string.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
delete(name, etag=None, x__xgafv=None)
Deletes an API key. Deleted key can be retrieved within 30 days of deletion. Afterward, key will be purged from the project. NOTE: Key is a global resource; hence the only supported value for location is `global`.

Args:
  name: string, Required. The resource name of the API key to be deleted. (required)
  etag: string, Optional. The etag known to the client for the expected state of the key. This is to be used for optimistic concurrency.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, x__xgafv=None)
Gets the metadata for an API key. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.

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

Returns:
  An object of the form:

    { # The representation of a key managed by the API Keys API.
  "annotations": { # Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. A timestamp identifying the time this key was originally created.
  "deleteTime": "A String", # Output only. A timestamp when this key was deleted. If the resource is not deleted, this must be empty.
  "displayName": "A String", # Human-readable display name of this key that you can modify. The maximum length is 63 characters.
  "etag": "A String", # Output only. A checksum computed by the server based on the current value of the Key resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. See https://google.aip.dev/154.
  "keyString": "A String", # Output only. An encrypted and signed value held by this key. This field can be accessed only through the `GetKeyString` method.
  "name": "A String", # Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`.
  "restrictions": { # Describes the restrictions on the key. # Key restrictions.
    "androidKeyRestrictions": { # The Android apps that are allowed to use the key. # The Android apps that are allowed to use the key.
      "allowedApplications": [ # A list of Android applications that are allowed to make API calls with this key.
        { # Identifier of an Android application for key use.
          "packageName": "A String", # The package name of the application.
          "sha1Fingerprint": "A String", # The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.
        },
      ],
    },
    "apiTargets": [ # A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.
      { # A restriction for a specific service and optionally one or multiple specific methods. Both fields are case insensitive.
        "methods": [ # Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`
          "A String",
        ],
        "service": "A String", # The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use [`gcloud services list`](https://cloud.google.com/sdk/gcloud/reference/services/list) to get a list of services that are enabled in the project.
      },
    ],
    "browserKeyRestrictions": { # The HTTP referrers (websites) that are allowed to use the key. # The HTTP referrers (websites) that are allowed to use the key.
      "allowedReferrers": [ # A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.
        "A String",
      ],
    },
    "iosKeyRestrictions": { # The iOS apps that are allowed to use the key. # The iOS apps that are allowed to use the key.
      "allowedBundleIds": [ # A list of bundle IDs that are allowed when making API calls with this key.
        "A String",
      ],
    },
    "serverKeyRestrictions": { # The IP addresses of callers that are allowed to use the key. # The IP addresses of callers that are allowed to use the key.
      "allowedIps": [ # A list of the caller IP addresses that are allowed to make API calls with this key.
        "A String",
      ],
    },
  },
  "serviceAccountEmail": "A String", # Optional. The email address of [the service account](https://cloud.google.com/iam/docs/service-accounts) the key is bound to.
  "uid": "A String", # Output only. Unique id in UUID4 format.
  "updateTime": "A String", # Output only. A timestamp identifying the time this key was last updated.
}
getKeyString(name, x__xgafv=None)
Get the key string for an API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.

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

Returns:
  An object of the form:

    { # Response message for `GetKeyString` method.
  "keyString": "A String", # An encrypted and signed value of the key.
}
list(parent, pageSize=None, pageToken=None, showDeleted=None, x__xgafv=None)
Lists the API keys owned by a project. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.

Args:
  parent: string, Required. Lists all API keys associated with this project. (required)
  pageSize: integer, Optional. Specifies the maximum number of results to be returned at a time.
  pageToken: string, Optional. Requests a specific page of results.
  showDeleted: boolean, Optional. Indicate that keys deleted in the past 30 days should also be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for `ListKeys` method.
  "keys": [ # A list of API keys.
    { # The representation of a key managed by the API Keys API.
      "annotations": { # Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.
        "a_key": "A String",
      },
      "createTime": "A String", # Output only. A timestamp identifying the time this key was originally created.
      "deleteTime": "A String", # Output only. A timestamp when this key was deleted. If the resource is not deleted, this must be empty.
      "displayName": "A String", # Human-readable display name of this key that you can modify. The maximum length is 63 characters.
      "etag": "A String", # Output only. A checksum computed by the server based on the current value of the Key resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. See https://google.aip.dev/154.
      "keyString": "A String", # Output only. An encrypted and signed value held by this key. This field can be accessed only through the `GetKeyString` method.
      "name": "A String", # Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`.
      "restrictions": { # Describes the restrictions on the key. # Key restrictions.
        "androidKeyRestrictions": { # The Android apps that are allowed to use the key. # The Android apps that are allowed to use the key.
          "allowedApplications": [ # A list of Android applications that are allowed to make API calls with this key.
            { # Identifier of an Android application for key use.
              "packageName": "A String", # The package name of the application.
              "sha1Fingerprint": "A String", # The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.
            },
          ],
        },
        "apiTargets": [ # A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.
          { # A restriction for a specific service and optionally one or multiple specific methods. Both fields are case insensitive.
            "methods": [ # Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`
              "A String",
            ],
            "service": "A String", # The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use [`gcloud services list`](https://cloud.google.com/sdk/gcloud/reference/services/list) to get a list of services that are enabled in the project.
          },
        ],
        "browserKeyRestrictions": { # The HTTP referrers (websites) that are allowed to use the key. # The HTTP referrers (websites) that are allowed to use the key.
          "allowedReferrers": [ # A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.
            "A String",
          ],
        },
        "iosKeyRestrictions": { # The iOS apps that are allowed to use the key. # The iOS apps that are allowed to use the key.
          "allowedBundleIds": [ # A list of bundle IDs that are allowed when making API calls with this key.
            "A String",
          ],
        },
        "serverKeyRestrictions": { # The IP addresses of callers that are allowed to use the key. # The IP addresses of callers that are allowed to use the key.
          "allowedIps": [ # A list of the caller IP addresses that are allowed to make API calls with this key.
            "A String",
          ],
        },
      },
      "serviceAccountEmail": "A String", # Optional. The email address of [the service account](https://cloud.google.com/iam/docs/service-accounts) the key is bound to.
      "uid": "A String", # Output only. Unique id in UUID4 format.
      "updateTime": "A String", # Output only. A timestamp identifying the time this key was last updated.
    },
  ],
  "nextPageToken": "A String", # The pagination token for the next page of results.
}
list_next()
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.
        
patch(name, body=None, updateMask=None, x__xgafv=None)
Patches the modifiable fields of an API key. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.

Args:
  name: string, Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`. (required)
  body: object, The request body.
    The object takes the form of:

{ # The representation of a key managed by the API Keys API.
  "annotations": { # Annotations is an unstructured key-value map stored with a policy that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. A timestamp identifying the time this key was originally created.
  "deleteTime": "A String", # Output only. A timestamp when this key was deleted. If the resource is not deleted, this must be empty.
  "displayName": "A String", # Human-readable display name of this key that you can modify. The maximum length is 63 characters.
  "etag": "A String", # Output only. A checksum computed by the server based on the current value of the Key resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. See https://google.aip.dev/154.
  "keyString": "A String", # Output only. An encrypted and signed value held by this key. This field can be accessed only through the `GetKeyString` method.
  "name": "A String", # Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`.
  "restrictions": { # Describes the restrictions on the key. # Key restrictions.
    "androidKeyRestrictions": { # The Android apps that are allowed to use the key. # The Android apps that are allowed to use the key.
      "allowedApplications": [ # A list of Android applications that are allowed to make API calls with this key.
        { # Identifier of an Android application for key use.
          "packageName": "A String", # The package name of the application.
          "sha1Fingerprint": "A String", # The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.
        },
      ],
    },
    "apiTargets": [ # A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.
      { # A restriction for a specific service and optionally one or multiple specific methods. Both fields are case insensitive.
        "methods": [ # Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`
          "A String",
        ],
        "service": "A String", # The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use [`gcloud services list`](https://cloud.google.com/sdk/gcloud/reference/services/list) to get a list of services that are enabled in the project.
      },
    ],
    "browserKeyRestrictions": { # The HTTP referrers (websites) that are allowed to use the key. # The HTTP referrers (websites) that are allowed to use the key.
      "allowedReferrers": [ # A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.
        "A String",
      ],
    },
    "iosKeyRestrictions": { # The iOS apps that are allowed to use the key. # The iOS apps that are allowed to use the key.
      "allowedBundleIds": [ # A list of bundle IDs that are allowed when making API calls with this key.
        "A String",
      ],
    },
    "serverKeyRestrictions": { # The IP addresses of callers that are allowed to use the key. # The IP addresses of callers that are allowed to use the key.
      "allowedIps": [ # A list of the caller IP addresses that are allowed to make API calls with this key.
        "A String",
      ],
    },
  },
  "serviceAccountEmail": "A String", # Optional. The email address of [the service account](https://cloud.google.com/iam/docs/service-accounts) the key is bound to.
  "uid": "A String", # Output only. Unique id in UUID4 format.
  "updateTime": "A String", # Output only. A timestamp identifying the time this key was last updated.
}

  updateMask: string, The field mask specifies which fields to be updated as part of this request. All other fields are ignored. Mutable fields are: `display_name`, `restrictions`, and `annotations`. If an update mask is not provided, the service treats it as an implied mask equivalent to all allowed fields that are set on the wire. If the field mask has a special value "*", the service treats it equivalent to replace all allowed mutable fields.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
undelete(name, body=None, x__xgafv=None)
Undeletes an API key which was deleted within 30 days. NOTE: Key is a global resource; hence the only supported value for location is `global`.

Args:
  name: string, Required. The resource name of the API key to be undeleted. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for `UndeleteKey` method.
}

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

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}