# Apigee API . organizations . developers

## Instance Methods

Returns the apps Resource.

Returns the attributes 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 app 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.

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. Valid values are `active` or `inactive`. 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. 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.

### 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:

    {
        "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
        "companies": [ # List of companies associated with the developer.
          "A String",
        ],
        "appFamily": "A String", # Developer app family.
        "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
        "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.
          },
        ],
        "lastName": "A String", # Required. Last name of the developer.
        "accessType": "A String", # Access type.
        "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
        "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
        "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
        "firstName": "A String", # Required. First name of the developer.
        "apps": [ # List of apps associated with the developer.
          "A String",
        ],
        "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`.
      }

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

    Returns:
      An object of the form:

        {
          "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
          "companies": [ # List of companies associated with the developer.
            "A String",
          ],
          "appFamily": "A String", # Developer app family.
          "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
          "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.
            },
          ],
          "lastName": "A String", # Required. Last name of the developer.
          "accessType": "A String", # Access type.
          "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
          "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
          "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
          "firstName": "A String", # Required. First name of the developer.
          "apps": [ # List of apps associated with the developer.
            "A String",
          ],
          "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`.
        }

`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 app 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:

        {
          "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
          "companies": [ # List of companies associated with the developer.
            "A String",
          ],
          "appFamily": "A String", # Developer app family.
          "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
          "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.
            },
          ],
          "lastName": "A String", # Required. Last name of the developer.
          "accessType": "A String", # Access type.
          "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
          "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
          "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
          "firstName": "A String", # Required. First name of the developer.
          "apps": [ # List of apps associated with the developer.
            "A String",
          ],
          "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`.
        }

`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:

        {
          "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
          "companies": [ # List of companies associated with the developer.
            "A String",
          ],
          "appFamily": "A String", # Developer app family.
          "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
          "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.
            },
          ],
          "lastName": "A String", # Required. Last name of the developer.
          "accessType": "A String", # Access type.
          "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
          "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
          "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
          "firstName": "A String", # Required. First name of the developer.
          "apps": [ # List of apps associated with the developer.
            "A String",
          ],
          "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`.
        }

`list(parent, count=None, ids=None, startKey=None, expand=None, includeCompany=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)
      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.
      ids: string, Optional. List of IDs to include, separated by commas.
      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 ```
      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.
      includeCompany: boolean, Flag that specifies whether to include company details in the response.
      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.
          {
              "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
              "companies": [ # List of companies associated with the developer.
                "A String",
              ],
              "appFamily": "A String", # Developer app family.
              "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
              "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.
                },
              ],
              "lastName": "A String", # Required. Last name of the developer.
              "accessType": "A String", # Access type.
              "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
              "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
              "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
              "firstName": "A String", # Required. First name of the developer.
              "apps": [ # List of apps associated with the developer.
                "A String",
              ],
              "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`.
            },
        ],
      }

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

    Sets the status of a developer. Valid values are `active` or `inactive`. 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. If successful, the API call returns the following HTTP status code: `204 No Content`

    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` 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); } The JSON representation for `Empty` is empty JSON object `{}`.
      }

`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.

    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:

    {
        "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
        "companies": [ # List of companies associated with the developer.
          "A String",
        ],
        "appFamily": "A String", # Developer app family.
        "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
        "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.
          },
        ],
        "lastName": "A String", # Required. Last name of the developer.
        "accessType": "A String", # Access type.
        "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
        "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
        "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
        "firstName": "A String", # Required. First name of the developer.
        "apps": [ # List of apps associated with the developer.
          "A String",
        ],
        "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`.
      }

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

    Returns:
      An object of the form:

        {
          "createdAt": "A String", # Output only. Time at which the developer was created in milliseconds since epoch.
          "companies": [ # List of companies associated with the developer.
            "A String",
          ],
          "appFamily": "A String", # Developer app family.
          "developerId": "A String", # ID of the developer. **Note**: IDs are generated internally by Apigee and are not guaranteed to stay the same over time.
          "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.
            },
          ],
          "lastName": "A String", # Required. Last name of the developer.
          "accessType": "A String", # Access type.
          "email": "A String", # Required. Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid.
          "userName": "A String", # Required. User name of the developer. Not used by Apigee hybrid.
          "lastModifiedAt": "A String", # Output only. Time at which the developer was last modified in milliseconds since epoch.
          "firstName": "A String", # Required. First name of the developer.
          "apps": [ # List of apps associated with the developer.
            "A String",
          ],
          "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`.
        }