Returns the attributes Resource.
Returns the keys Resource.
Close httplib2 connections.
create(parent, body=None, x__xgafv=None)
Creates an app associated with a developer. This API associates the developer app with the specified API product and auto-generates an API key for the app to use in calls to API proxies inside that API product. The `name` is the unique ID of the app that you can use in API calls. The `DisplayName` (set as an attribute) appears in the UI. If you don't set the `DisplayName` attribute, the `name` appears in the UI.
Deletes a developer app. **Note**: The delete operation is asynchronous. The developer app is deleted immediately, but its associated resources, such as app keys or access tokens, may take anywhere from a few seconds to a few minutes to be deleted.
generateKeyPairOrUpdateDeveloperAppStatus(name, action=None, body=None, x__xgafv=None)
Manages access to a developer app by enabling you to: * Approve or revoke a developer app * Generate a new consumer key and secret for a developer app To approve or revoke a developer app, set the `action` query parameter to `approve` or `revoke`, respectively, and the `Content-Type` header to `application/octet-stream`. If a developer app is revoked, none of its API keys are valid for API calls even though the keys are still approved. If successful, the API call returns the following HTTP status code: `204 No Content` To generate a new consumer key and secret for a developer app, pass the new key/secret details. Rather than replace an existing key, this API generates a new key. In this case, multiple key pairs may be associated with a single developer app. Each key pair has an independent status (`approve` or `revoke`) and expiration time. Any approved, non-expired key can be used in an API call. For example, if you're using API key rotation, you can generate new keys with expiration times that overlap keys that are going to expire. You might also generate a new consumer key/secret if the security of the original key/secret is compromised. The `keyExpiresIn` property defines the expiration time for the API key in milliseconds. If you don't set this property or set it to `-1`, the API key never expires. **Notes**: * When generating a new key/secret, this API replaces the existing attributes, notes, and callback URLs with those specified in the request. Include or exclude any existing information that you want to retain or delete, respectively. * To migrate existing consumer keys and secrets to hybrid from another system, see the CreateDeveloperAppKey API.
get(name, entity=None, query=None, x__xgafv=None)
Returns the details for a developer app.
list(parent, count=None, expand=None, shallowExpand=None, startKey=None, x__xgafv=None)
Lists all apps created by a developer in an Apigee organization. Optionally, you can request an expanded view of the developer apps. A maximum of 100 developer apps are returned per API call. You can paginate the list of deveoper apps returned using the `startKey` and `count` query parameters.
update(name, body=None, x__xgafv=None)
Updates the details for a developer app. In addition, you can add an API product to a developer app and automatically generate an API key for the app to use when calling APIs in the API product. If you want to use an existing API key for the API product, add the API product to the API key using the UpdateDeveloperAppKey API. Using this API, you cannot update the following: * App name as it is the primary key used to identify the app and cannot be changed. * Scopes associated with the app. Instead, use the ReplaceDeveloperAppKey API. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively.
close()
Close httplib2 connections.
create(parent, body=None, x__xgafv=None)
Creates an app associated with a developer. This API associates the developer app with the specified API product and auto-generates an API key for the app to use in calls to API proxies inside that API product. The `name` is the unique ID of the app that you can use in API calls. The `DisplayName` (set as an attribute) appears in the UI. If you don't set the `DisplayName` attribute, the `name` appears in the UI. Args: parent: string, Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required) body: object, The request body. The object takes the form of: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. } x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }
delete(name, x__xgafv=None)
Deletes a developer app. **Note**: The delete operation is asynchronous. The developer app is deleted immediately, but its associated resources, such as app keys or access tokens, may take anywhere from a few seconds to a few minutes to be deleted. Args: name: string, Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` (required) x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }
generateKeyPairOrUpdateDeveloperAppStatus(name, action=None, body=None, x__xgafv=None)
Manages access to a developer app by enabling you to: * Approve or revoke a developer app * Generate a new consumer key and secret for a developer app To approve or revoke a developer app, set the `action` query parameter to `approve` or `revoke`, respectively, and the `Content-Type` header to `application/octet-stream`. If a developer app is revoked, none of its API keys are valid for API calls even though the keys are still approved. If successful, the API call returns the following HTTP status code: `204 No Content` To generate a new consumer key and secret for a developer app, pass the new key/secret details. Rather than replace an existing key, this API generates a new key. In this case, multiple key pairs may be associated with a single developer app. Each key pair has an independent status (`approve` or `revoke`) and expiration time. Any approved, non-expired key can be used in an API call. For example, if you're using API key rotation, you can generate new keys with expiration times that overlap keys that are going to expire. You might also generate a new consumer key/secret if the security of the original key/secret is compromised. The `keyExpiresIn` property defines the expiration time for the API key in milliseconds. If you don't set this property or set it to `-1`, the API key never expires. **Notes**: * When generating a new key/secret, this API replaces the existing attributes, notes, and callback URLs with those specified in the request. Include or exclude any existing information that you want to retain or delete, respectively. * To migrate existing consumer keys and secrets to hybrid from another system, see the CreateDeveloperAppKey API. Args: name: string, Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` (required) body: object, The request body. The object takes the form of: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. } action: string, Action. Valid values are `approve` or `revoke`. x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }
get(name, entity=None, query=None, x__xgafv=None)
Returns the details for a developer app. Args: name: string, Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` (required) entity: string, **Note**: Must be used in conjunction with the `query` parameter. Set to `apiresources` to return the number of API resources that have been approved for access by a developer app in the specified Apigee organization. query: string, **Note**: Must be used in conjunction with the `entity` parameter. Set to `count` to return the number of API resources that have been approved for access by a developer app in the specified Apigee organization. x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }
list(parent, count=None, expand=None, shallowExpand=None, startKey=None, x__xgafv=None)
Lists all apps created by a developer in an Apigee organization. Optionally, you can request an expanded view of the developer apps. A maximum of 100 developer apps are returned per API call. You can paginate the list of deveoper apps returned using the `startKey` and `count` query parameters. Args: parent: string, Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required) count: string, Number of developer apps to return in the API call. Use with the `startKey` parameter to provide more targeted filtering. The limit is 1000. expand: boolean, Optional. Specifies whether to expand the results. Set to `true` to expand the results. This query parameter is not valid if you use the `count` or `startKey` query parameters. shallowExpand: boolean, Optional. Specifies whether to expand the results in shallow mode. Set to `true` to expand the results in shallow mode. startKey: string, **Note**: Must be used in conjunction with the `count` parameter. Name of the developer app from which to start displaying the list of developer apps. For example, if you're returning 50 developer apps at a time (using the `count` query parameter), you can view developer apps 50-99 by entering the name of the 50th developer app. The developer app name is case sensitive. x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { "app": [ # List of developer apps and their credentials. { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], }
update(name, body=None, x__xgafv=None)
Updates the details for a developer app. In addition, you can add an API product to a developer app and automatically generate an API key for the app to use when calling APIs in the API product. If you want to use an existing API key for the API product, add the API product to the API key using the UpdateDeveloperAppKey API. Using this API, you cannot update the following: * App name as it is the primary key used to identify the app and cannot be changed. * Scopes associated with the app. Instead, use the ReplaceDeveloperAppKey API. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively. Args: name: string, Required. Name of the developer app. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}` (required) body: object, The request body. The object takes the form of: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. } x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format Returns: An object of the form: { "apiProducts": [ # List of API products associated with the developer app. "A String", ], "appFamily": "A String", # Developer app family. "appId": "A String", # ID of the developer app. "attributes": [ # List of attributes for the developer app. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to developer apps. "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch. "credentials": [ # Output only. Set of credentials for the developer app consisting of the consumer key/secret pairs associated with the API products. { "apiProducts": [ # List of API products this credential can be used for. { "apiproduct": "A String", # Name of the API product. "status": "A String", # Status of the API product. Valid values are `approved` or `revoked`. }, ], "attributes": [ # List of attributes associated with this credential. { # Key-value pair to store extra metadata. "name": "A String", # API key of the attribute. "value": "A String", # Value of the attribute. }, ], "consumerKey": "A String", # Consumer key. "consumerSecret": "A String", # Secret key. "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch. "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch. "scopes": [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }, ], "developerId": "A String", # ID of the developer. "keyExpiresIn": "A String", # Expiration time, in milliseconds, for the consumer key that is generated for the developer app. If not set or left to the default value of `-1`, the API key never expires. The expiration time can't be updated after it is set. "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch. "name": "A String", # Name of the developer app. "scopes": [ # Scopes to apply to the developer app. The specified scopes must already exist for the API product that you associate with the developer app. "A String", ], "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`. }