# Apigee API . organizations . developers

## Instance Methods

Returns the apps Resource.

Returns the attributes Resource.

Returns the balance Resource.

Returns the subscriptions Resource.

Close httplib2 connections.

Creates a developer. Once created, the developer can register an app and obtain an API key. At creation time, a developer is set as `active`. To change the developer status, use the SetDeveloperStatus API.

Deletes a developer. All apps and API keys associated with the developer are also removed. **Warning**: This API will permanently delete the developer and related artifacts. To avoid permanently deleting developers and their artifacts, set the developer status to `inactive` using the SetDeveloperStatus API. **Note**: The delete operation is asynchronous. The developer is deleted immediately, but its associated resources, such as apps and API keys, may take anywhere from a few seconds to a few minutes to be deleted.

Returns the developer details, including the developer's name, email address, apps, and other information. **Note**: The response includes only the first 100 developer apps.

Gets the account balance for the developer.

Gets the monetization configuration for the developer.

Lists all developers in an organization by email address. By default, the response does not include company developers. Set the `includeCompany` query parameter to `true` to include company developers. **Note**: A maximum of 1000 developers are returned in the response. You paginate the list of developers returned using the `startKey` and `count` query parameters.

Sets the status of a developer. A developer is `active` by default. If you set a developer's status to `inactive`, the API keys assigned to the developer apps are no longer valid even though the API keys are set to `approved`. Inactive developers can still sign in to the developer portal and create apps; however, any new API keys generated during app creation won't work. To set the status of a developer, set the `action` query parameter to `active` or `inactive`, and the `Content-Type` header to `application/octet-stream`. If successful, the API call returns the following HTTP status code: `204 No Content`

Updates a developer. This API replaces the existing developer details with those specified in the request. Include or exclude any existing details that you want to retain or delete, respectively. The custom attribute limit is 18. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (current default). Any custom attributes associated with these entities are cached for at least 180 seconds after the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds. **Note:** We recommend that you avoid making concurrent update requests for the same resource. Near-simultaneous writes to the same entity can result in conflicts and unexpected behavior. Ensure operations are sequential when modifying a single resource.

Updates the monetization configuration for the developer.

### Method Details

`close()`

    Close httplib2 connections.

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

    Creates a developer. Once created, the developer can register an app and obtain an API key. At creation time, a developer is set as `active`. To change the developer status, use the SetDeveloperStatus API.

    Args:
      parent: string, Required. Name of the Apigee organization in which the developer is created. Use the following structure in your request: `organizations/{org}`. (required)
      body: object, The request body.
        The object takes the form of:

    {
      "accessType": "A String", # Access type.
      "appFamily": "A String", # Developer app family.
      "apps": [ # List of apps associated with the developer.
        "A String",
      ],
      "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
        { # Key-value pair to store extra metadata.
          "name": "A String", # API key of the attribute.
          "value": "A String", # Value of the attribute.
        },
      ],
      "companies": [ # List of companies associated with the developer.
        "A String",
      ],
      "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
      "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
      "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
      "firstName": "A String", # Required. First name of the developer.
      "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
      "lastName": "A String", # Required. Last name of the developer.
      "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
      "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
      "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
    }

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

    Returns:
      An object of the form:

        {
      "accessType": "A String", # Access type.
      "appFamily": "A String", # Developer app family.
      "apps": [ # List of apps associated with the developer.
        "A String",
      ],
      "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
        { # Key-value pair to store extra metadata.
          "name": "A String", # API key of the attribute.
          "value": "A String", # Value of the attribute.
        },
      ],
      "companies": [ # List of companies associated with the developer.
        "A String",
      ],
      "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
      "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
      "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
      "firstName": "A String", # Required. First name of the developer.
      "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
      "lastName": "A String", # Required. Last name of the developer.
      "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
      "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
      "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
    }

`delete(name, x__xgafv=None)`

    Deletes a developer. All apps and API keys associated with the developer are also removed. **Warning**: This API will permanently delete the developer and related artifacts. To avoid permanently deleting developers and their artifacts, set the developer status to `inactive` using the SetDeveloperStatus API. **Note**: The delete operation is asynchronous. The developer is deleted immediately, but its associated resources, such as apps and API keys, may take anywhere from a few seconds to a few minutes to be deleted.

    Args:
      name: string, Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "accessType": "A String", # Access type.
      "appFamily": "A String", # Developer app family.
      "apps": [ # List of apps associated with the developer.
        "A String",
      ],
      "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
        { # Key-value pair to store extra metadata.
          "name": "A String", # API key of the attribute.
          "value": "A String", # Value of the attribute.
        },
      ],
      "companies": [ # List of companies associated with the developer.
        "A String",
      ],
      "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
      "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
      "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
      "firstName": "A String", # Required. First name of the developer.
      "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
      "lastName": "A String", # Required. Last name of the developer.
      "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
      "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
      "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
    }

`get(name, action=None, x__xgafv=None)`

    Returns the developer details, including the developer's name, email address, apps, and other information. **Note**: The response includes only the first 100 developer apps.

    Args:
      name: string, Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required)
      action: string, Status of the developer. Valid values are `active` or `inactive`.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "accessType": "A String", # Access type.
      "appFamily": "A String", # Developer app family.
      "apps": [ # List of apps associated with the developer.
        "A String",
      ],
      "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
        { # Key-value pair to store extra metadata.
          "name": "A String", # API key of the attribute.
          "value": "A String", # Value of the attribute.
        },
      ],
      "companies": [ # List of companies associated with the developer.
        "A String",
      ],
      "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
      "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
      "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
      "firstName": "A String", # Required. First name of the developer.
      "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
      "lastName": "A String", # Required. Last name of the developer.
      "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
      "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
      "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
    }

`getBalance(name, x__xgafv=None)`

    Gets the account balance for the developer.

    Args:
      name: string, Required. Account balance for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/balance` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Account balance for the developer.
      "wallets": [ # Output only. List of all wallets. Each individual wallet stores the account balance for a particular currency.
        { # Wallet used to manage an account balance for a particular currency.
          "balance": { # Represents an amount of money with its currency type. # Current remaining balance of the developer for a particular currency.
            "currencyCode": "A String", # The three-letter currency code defined in ISO 4217.
            "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
            "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
          },
          "lastCreditTime": "A String", # Output only. Time at which the developer last added credit to the account in milliseconds since epoch.
        },
      ],
    }

`getMonetizationConfig(name, x__xgafv=None)`

    Gets the monetization configuration for the developer.

    Args:
      name: string, Required. Monetization configuration for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/monetizationConfig` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Monetization configuration for the developer.
      "billingType": "A String", # Billing type.
    }

`list(parent, app=None, count=None, expand=None, ids=None, includeCompany=None, startKey=None, x__xgafv=None)`

    Lists all developers in an organization by email address. By default, the response does not include company developers. Set the `includeCompany` query parameter to `true` to include company developers. **Note**: A maximum of 1000 developers are returned in the response. You paginate the list of developers returned using the `startKey` and `count` query parameters.

    Args:
      parent: string, Required. Name of the Apigee organization. Use the following structure in your request: `organizations/{org}`. (required)
      app: string, Optional. List only Developers that are associated with the app. Note that start_key, count are not applicable for this filter criteria.
      count: string, Optional. Number of developers to return in the API call. Use with the `startKey` parameter to provide more targeted filtering. The limit is 1000.
      expand: boolean, 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.
      ids: string, Optional. List of IDs to include, separated by commas.
      includeCompany: boolean, Flag that specifies whether to include company details in the response.
      startKey: string, **Note**: Must be used in conjunction with the `count` parameter. Email address of the developer from which to start displaying the list of developers. For example, if the an unfiltered list returns: ``` westley@example.com fezzik@example.com buttercup@example.com ``` and your `startKey` is `fezzik@example.com`, the list returned will be ``` fezzik@example.com buttercup@example.com ```
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "developer": [ # List of developers.
        {
          "accessType": "A String", # Access type.
          "appFamily": "A String", # Developer app family.
          "apps": [ # List of apps associated with the developer.
            "A String",
          ],
          "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
            { # Key-value pair to store extra metadata.
              "name": "A String", # API key of the attribute.
              "value": "A String", # Value of the attribute.
            },
          ],
          "companies": [ # List of companies associated with the developer.
            "A String",
          ],
          "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
          "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
          "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
          "firstName": "A String", # Required. First name of the developer.
          "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
          "lastName": "A String", # Required. Last name of the developer.
          "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
          "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
          "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
        },
      ],
    }

`setDeveloperStatus(name, action=None, x__xgafv=None)`

    Sets the status of a developer. A developer is `active` by default. If you set a developer's status to `inactive`, the API keys assigned to the developer apps are no longer valid even though the API keys are set to `approved`. Inactive developers can still sign in to the developer portal and create apps; however, any new API keys generated during app creation won't work. To set the status of a developer, set the `action` query parameter to `active` or `inactive`, and the `Content-Type` header to `application/octet-stream`. If successful, the API call returns the following HTTP status code: `204 No Content`

    Args:
      name: string, Required. Name of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_id}` (required)
      action: string, Status of the developer. Valid values are `active` and `inactive`.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
    }

`update(name, body=None, x__xgafv=None)`

    Updates a developer. This API replaces the existing developer details with those specified in the request. Include or exclude any existing details that you want to retain or delete, respectively. The custom attribute limit is 18. **Note**: OAuth access tokens and Key Management Service (KMS) entities (apps, developers, and API products) are cached for 180 seconds (current default). Any custom attributes associated with these entities are cached for at least 180 seconds after the entity is accessed at runtime. Therefore, an `ExpiresIn` element on the OAuthV2 policy won't be able to expire an access token in less than 180 seconds. **Note:** We recommend that you avoid making concurrent update requests for the same resource. Near-simultaneous writes to the same entity can result in conflicts and unexpected behavior. Ensure operations are sequential when modifying a single resource.

    Args:
      name: string, Required. Email address 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:

    {
      "accessType": "A String", # Access type.
      "appFamily": "A String", # Developer app family.
      "apps": [ # List of apps associated with the developer.
        "A String",
      ],
      "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
        { # Key-value pair to store extra metadata.
          "name": "A String", # API key of the attribute.
          "value": "A String", # Value of the attribute.
        },
      ],
      "companies": [ # List of companies associated with the developer.
        "A String",
      ],
      "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
      "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
      "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
      "firstName": "A String", # Required. First name of the developer.
      "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
      "lastName": "A String", # Required. Last name of the developer.
      "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
      "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
      "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
    }

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

    Returns:
      An object of the form:

        {
      "accessType": "A String", # Access type.
      "appFamily": "A String", # Developer app family.
      "apps": [ # List of apps associated with the developer.
        "A String",
      ],
      "attributes": [ # Optional. Developer attributes (name/value pairs). The custom attribute limit is 18.
        { # Key-value pair to store extra metadata.
          "name": "A String", # API key of the attribute.
          "value": "A String", # Value of the attribute.
        },
      ],
      "companies": [ # List of companies associated with the developer.
        "A String",
      ],
      "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
      "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
      "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only.
      "firstName": "A String", # Required. First name of the developer.
      "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
      "lastName": "A String", # Required. Last name of the developer.
      "organizationName": "A String", # Output only. Name of the Apigee organization in which the developer resides.
      "status": "A String", # Output only. Status of the developer. Valid values are `active` and `inactive`.
      "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
    }

`updateMonetizationConfig(name, body=None, x__xgafv=None)`

    Updates the monetization configuration for the developer.

    Args:
      name: string, Required. Monetization configuration for the developer. Use the following structure in your request: `organizations/{org}/developers/{developer}/monetizationConfig` (required)
      body: object, The request body.
        The object takes the form of:

    { # Monetization configuration for the developer.
      "billingType": "A String", # Billing type.
    }

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

    Returns:
      An object of the form:

        { # Monetization configuration for the developer.
      "billingType": "A String", # Billing type.
    }