# Apigee API . organizations . developers . apps

## Instance Methods

Returns the attributes Resource.

Returns the keys Resource.

Creates an app associated with a developer. This API associates the

Deletes a developer app.

Manages access to a developer app by enabling you to:

Returns the details for a developer app.

Lists all apps created by a developer in an Apigee organization.

Updates the details for a developer app. In addition, you can

### Method Details

`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.
        "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
        "appId": "A String", # ID of the developer app.
        "credentials": [ # Output only. Set of credentials for the developer app consisting of the
            # consumer key/secret pairs associated with the API products.
          {
            "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
            "attributes": [ # List of attributes associated with this credential.
              { # Key-value pair to store extra metadata.
                "value": "A String", # Value of the attribute.
                "name": "A String", # API key of the attribute.
              },
            ],
            "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
            "status": "A String", # Status of the credential.
            "consumerKey": "A String", # Consumer key.
            "consumerSecret": "A String", # Secret key.
            "apiProducts": [ # List of API products this credential can be used for.
              {
                "status": "A String", # Status of the API product.
                "apiproduct": "A String", # Name of the API product.
              },
            ],
            "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",
            ],
          },
        ],
        "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
        "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.
        "name": "A String", # Name of the developer app.
        "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
            # authorization codes back to developer apps.
        "developerId": "A String", # ID of the developer.
        "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",
        ],
        "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
        "attributes": [ # List of attributes for the developer app.
          { # Key-value pair to store extra metadata.
            "value": "A String", # Value of the attribute.
            "name": "A String", # API key of the attribute.
          },
        ],
      }

      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.
          "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
          "appId": "A String", # ID of the developer app.
          "credentials": [ # Output only. Set of credentials for the developer app consisting of the
              # consumer key/secret pairs associated with the API products.
            {
              "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
              "attributes": [ # List of attributes associated with this credential.
                { # Key-value pair to store extra metadata.
                  "value": "A String", # Value of the attribute.
                  "name": "A String", # API key of the attribute.
                },
              ],
              "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
              "status": "A String", # Status of the credential.
              "consumerKey": "A String", # Consumer key.
              "consumerSecret": "A String", # Secret key.
              "apiProducts": [ # List of API products this credential can be used for.
                {
                  "status": "A String", # Status of the API product.
                  "apiproduct": "A String", # Name of the API product.
                },
              ],
              "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",
              ],
            },
          ],
          "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
          "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.
          "name": "A String", # Name of the developer app.
          "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
              # authorization codes back to developer apps.
          "developerId": "A String", # ID of the developer.
          "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",
          ],
          "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
          "attributes": [ # List of attributes for the developer app.
            { # Key-value pair to store extra metadata.
              "value": "A String", # Value of the attribute.
              "name": "A String", # API key of the attribute.
            },
          ],
        }

`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.
          "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
          "appId": "A String", # ID of the developer app.
          "credentials": [ # Output only. Set of credentials for the developer app consisting of the
              # consumer key/secret pairs associated with the API products.
            {
              "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
              "attributes": [ # List of attributes associated with this credential.
                { # Key-value pair to store extra metadata.
                  "value": "A String", # Value of the attribute.
                  "name": "A String", # API key of the attribute.
                },
              ],
              "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
              "status": "A String", # Status of the credential.
              "consumerKey": "A String", # Consumer key.
              "consumerSecret": "A String", # Secret key.
              "apiProducts": [ # List of API products this credential can be used for.
                {
                  "status": "A String", # Status of the API product.
                  "apiproduct": "A String", # Name of the API product.
                },
              ],
              "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",
              ],
            },
          ],
          "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
          "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.
          "name": "A String", # Name of the developer app.
          "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
              # authorization codes back to developer apps.
          "developerId": "A String", # ID of the developer.
          "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",
          ],
          "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
          "attributes": [ # List of attributes for the developer app.
            { # Key-value pair to store extra metadata.
              "value": "A String", # Value of the attribute.
              "name": "A String", # API key of the attribute.
            },
          ],
        }

`generateKeyPairOrUpdateDeveloperAppStatus(name, body=None, action=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
    `approved` or `revoked`, 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 (`approved` or `revoked`) 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.
        "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
        "appId": "A String", # ID of the developer app.
        "credentials": [ # Output only. Set of credentials for the developer app consisting of the
            # consumer key/secret pairs associated with the API products.
          {
            "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
            "attributes": [ # List of attributes associated with this credential.
              { # Key-value pair to store extra metadata.
                "value": "A String", # Value of the attribute.
                "name": "A String", # API key of the attribute.
              },
            ],
            "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
            "status": "A String", # Status of the credential.
            "consumerKey": "A String", # Consumer key.
            "consumerSecret": "A String", # Secret key.
            "apiProducts": [ # List of API products this credential can be used for.
              {
                "status": "A String", # Status of the API product.
                "apiproduct": "A String", # Name of the API product.
              },
            ],
            "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",
            ],
          },
        ],
        "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
        "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.
        "name": "A String", # Name of the developer app.
        "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
            # authorization codes back to developer apps.
        "developerId": "A String", # ID of the developer.
        "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",
        ],
        "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
        "attributes": [ # List of attributes for the developer app.
          { # Key-value pair to store extra metadata.
            "value": "A String", # Value of the attribute.
            "name": "A String", # API key of the attribute.
          },
        ],
      }

      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.
          "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
          "appId": "A String", # ID of the developer app.
          "credentials": [ # Output only. Set of credentials for the developer app consisting of the
              # consumer key/secret pairs associated with the API products.
            {
              "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
              "attributes": [ # List of attributes associated with this credential.
                { # Key-value pair to store extra metadata.
                  "value": "A String", # Value of the attribute.
                  "name": "A String", # API key of the attribute.
                },
              ],
              "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
              "status": "A String", # Status of the credential.
              "consumerKey": "A String", # Consumer key.
              "consumerSecret": "A String", # Secret key.
              "apiProducts": [ # List of API products this credential can be used for.
                {
                  "status": "A String", # Status of the API product.
                  "apiproduct": "A String", # Name of the API product.
                },
              ],
              "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",
              ],
            },
          ],
          "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
          "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.
          "name": "A String", # Name of the developer app.
          "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
              # authorization codes back to developer apps.
          "developerId": "A String", # ID of the developer.
          "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",
          ],
          "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
          "attributes": [ # List of attributes for the developer app.
            { # Key-value pair to store extra metadata.
              "value": "A String", # Value of the attribute.
              "name": "A String", # API key of the attribute.
            },
          ],
        }

`get(name, query=None, entity=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)
      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.
      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.
      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.
          "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
          "appId": "A String", # ID of the developer app.
          "credentials": [ # Output only. Set of credentials for the developer app consisting of the
              # consumer key/secret pairs associated with the API products.
            {
              "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
              "attributes": [ # List of attributes associated with this credential.
                { # Key-value pair to store extra metadata.
                  "value": "A String", # Value of the attribute.
                  "name": "A String", # API key of the attribute.
                },
              ],
              "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
              "status": "A String", # Status of the credential.
              "consumerKey": "A String", # Consumer key.
              "consumerSecret": "A String", # Secret key.
              "apiProducts": [ # List of API products this credential can be used for.
                {
                  "status": "A String", # Status of the API product.
                  "apiproduct": "A String", # Name of the API product.
                },
              ],
              "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",
              ],
            },
          ],
          "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
          "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.
          "name": "A String", # Name of the developer app.
          "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
              # authorization codes back to developer apps.
          "developerId": "A String", # ID of the developer.
          "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",
          ],
          "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
          "attributes": [ # List of attributes for the developer app.
            { # Key-value pair to store extra metadata.
              "value": "A String", # Value of the attribute.
              "name": "A String", # API key of the attribute.
            },
          ],
        }

`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.
              "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
              "appId": "A String", # ID of the developer app.
              "credentials": [ # Output only. Set of credentials for the developer app consisting of the
                  # consumer key/secret pairs associated with the API products.
                {
                  "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
                  "attributes": [ # List of attributes associated with this credential.
                    { # Key-value pair to store extra metadata.
                      "value": "A String", # Value of the attribute.
                      "name": "A String", # API key of the attribute.
                    },
                  ],
                  "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
                  "status": "A String", # Status of the credential.
                  "consumerKey": "A String", # Consumer key.
                  "consumerSecret": "A String", # Secret key.
                  "apiProducts": [ # List of API products this credential can be used for.
                    {
                      "status": "A String", # Status of the API product.
                      "apiproduct": "A String", # Name of the API product.
                    },
                  ],
                  "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",
                  ],
                },
              ],
              "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
              "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.
              "name": "A String", # Name of the developer app.
              "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
                  # authorization codes back to developer apps.
              "developerId": "A String", # ID of the developer.
              "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",
              ],
              "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
              "attributes": [ # List of attributes for the developer app.
                { # Key-value pair to store extra metadata.
                  "value": "A String", # Value of the attribute.
                  "name": "A String", # API key of the attribute.
                },
              ],
            },
        ],
      }

`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.
        "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
        "appId": "A String", # ID of the developer app.
        "credentials": [ # Output only. Set of credentials for the developer app consisting of the
            # consumer key/secret pairs associated with the API products.
          {
            "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
            "attributes": [ # List of attributes associated with this credential.
              { # Key-value pair to store extra metadata.
                "value": "A String", # Value of the attribute.
                "name": "A String", # API key of the attribute.
              },
            ],
            "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
            "status": "A String", # Status of the credential.
            "consumerKey": "A String", # Consumer key.
            "consumerSecret": "A String", # Secret key.
            "apiProducts": [ # List of API products this credential can be used for.
              {
                "status": "A String", # Status of the API product.
                "apiproduct": "A String", # Name of the API product.
              },
            ],
            "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",
            ],
          },
        ],
        "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
        "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.
        "name": "A String", # Name of the developer app.
        "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
            # authorization codes back to developer apps.
        "developerId": "A String", # ID of the developer.
        "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",
        ],
        "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
        "attributes": [ # List of attributes for the developer app.
          { # Key-value pair to store extra metadata.
            "value": "A String", # Value of the attribute.
            "name": "A String", # API key of the attribute.
          },
        ],
      }

      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.
          "status": "A String", # Status of the credential. Valid values include `approved` or `revoked`.
          "appId": "A String", # ID of the developer app.
          "credentials": [ # Output only. Set of credentials for the developer app consisting of the
              # consumer key/secret pairs associated with the API products.
            {
              "expiresAt": "A String", # Time the credential will expire in milliseconds since epoch.
              "attributes": [ # List of attributes associated with this credential.
                { # Key-value pair to store extra metadata.
                  "value": "A String", # Value of the attribute.
                  "name": "A String", # API key of the attribute.
                },
              ],
              "issuedAt": "A String", # Time the credential was issued in milliseconds since epoch.
              "status": "A String", # Status of the credential.
              "consumerKey": "A String", # Consumer key.
              "consumerSecret": "A String", # Secret key.
              "apiProducts": [ # List of API products this credential can be used for.
                {
                  "status": "A String", # Status of the API product.
                  "apiproduct": "A String", # Name of the API product.
                },
              ],
              "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",
              ],
            },
          ],
          "lastModifiedAt": "A String", # Output only. Time the developer app was modified in milliseconds since epoch.
          "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.
          "name": "A String", # Name of the developer app.
          "callbackUrl": "A String", # Callback URL used by OAuth 2.0 authorization servers to communicate
              # authorization codes back to developer apps.
          "developerId": "A String", # ID of the developer.
          "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",
          ],
          "createdAt": "A String", # Output only. Time the developer app was created in milliseconds since epoch.
          "attributes": [ # List of attributes for the developer app.
            { # Key-value pair to store extra metadata.
              "value": "A String", # Value of the attribute.
              "name": "A String", # API key of the attribute.
            },
          ],
        }