NAME Apigee::Edge - Apigee.com 'Edge' management API. SYNOPSIS use Apigee::Edge; my $apigee = Apigee::Edge->new( org => 'apigee_org', usr => 'your_email', pwd => 'your_password' ); DESCRIPTION Apigee::Edge is an object-oriented interface to facilitate management of Developers and Apps using the Apigee.com 'Edge' management API. see The API is incompleted. welcome to fork the repos on github and send us pull-requests. METHODS new * org required. organization name. * usr required. login email * pwd required. login password * endpoint optional. default to https://api.enterprise.apigee.com/v1 Apps get_app my $app = $apigee->get_app($app_id); get_apps my $app_ids = $apigee->get_apps(); my $apps = $apigee->get_apps(expand => 'true', includeCred => 'true'); get_apps_by_family my $app_ids = $apigee->get_apps_by_family($family); get_apps_by_keystatus my $app_ids = $apigee->get_apps_by_keystatus($keystatus); get_apps_by_type my $app_ids = $apigee->get_apps_by_type($type); Developers get_developers my $developers = $apigee->get_developers(); get_app_developers my $developers = $apigee->get_app_developers($app_name); get_developer my $developer = $apigee->get_developer('fayland@binary.com') or die $apigee->errstr; create_developer my $developer = $apigee->create_developer( "email" => 'fayland@binary.com', "firstName" => "Fayland", "lastName" => "Lam", "userName" => "fayland.binary", "attributes" => [ { "name" => "Attr1", "value" => "V1" }, { "name" => "A2", "value" => "V2.v2" } ] ); update_developer my $developer = $apigee->update_developer( $developer_email, { "firstName" => "Fayland", "lastName" => "Lam", } ); delete_developer my $developer = $apigee->delete_developer('fayland@binary.com') or die $apigee->errstr; set_developer_status my $status = $apigee->set_developer_status($email, $status); Apps: Developer change_app_status my $app = $apigee->change_app_status($developer_email, $app_name); create_developer_app my $app = $apigee->create_developer_app( $developer_email, { "name" => "Test App", "apiProducts" => [ "{apiproduct1}", "{apiproduct2}", ...], "keyExpiresIn" => "{milliseconds}", "attributes" => [ { "name" => "DisplayName", "value" => "{display_name_value}" }, { "name" => "Notes", "value" => "{notes_for_developer_app}" }, { "name" => "{custom_attribute_name}", "value" => "{custom_attribute_value}" } ], "callbackUrl" => "{url}", } ); delete_developer_app my $app = $apigee->delete_developer_app($developer_email, $app_name); get_developer_app my $app = $apigee->get_developer_app($developer_email, $app_name); get_developer_apps my $apps = $apigee->get_developer_apps($developer_email); update_developer_app my $app = $apigee->update_developer_app($developer_email, $app_name, { # update part }); regenerate_developer_app_key my $app = $apigee->regenerate_developer_app_key($developer_email, $app_name, { # update part }); get_count_of_developer_app_resource my $count = $apigee->get_count_of_developer_app_resource($developer_email, $app_name, $entity_name); API Products get_api_products my $products = $apigee->get_api_products(); my $products = $apigee->get_api_products(expand => 'true'); search_api_products my $products = $apigee->search_api_products('attributename' => 'access', 'attributevalue' => 'public'); my $products = $apigee->search_api_products('attributename' => 'access', 'attributevalue' => 'private', expand => 'true'); get_api_product my $product = $apigee->get_api_product($product_name); get_api_product_details my $apps = $apigee->get_api_product_details( $product_name, query => 'list', entity => 'apps' # or query => 'count', entity => 'keys, apps, developers, or companies' ); delete_api_product my $product = $apigee->delete_api_product($product_name); create_api_product my $product = $apigee->create_api_product( "approvalType" => "manual", "attributes" => [ { "name" => "access", "value" => "private" }, { "name" => "ATTR2", "value" => "V2" } ], "description" => "DESC", "displayName" => "TEST PRODUCT NAME", "name" => "test-product-name", "apiResources" => [ "/resource1", "/resource2"], "environments" => [ "test", "prod"], # "proxies" => ["{proxy1}", "{proxy2}", ...], # "quota" => "{quota}", # "quotaInterval" => "{quota_interval}", # "quotaTimeUnit" => "{quota_unit}", "scopes" => ["user", "repos"] ); update_api_product my $product = $apigee->update_api_product( "test-product-name", { "approvalType" => "auto", "displayName" => "ANOTHER TEST PRODUCT NAME", } ); request The underlaying method to call Apigee when you see something is missing. $self->request('GET', "/organizations/$org_name/apps/$app_id"); $self->request('DELETE', "/organizations/$org_name/developers/" . uri_escape($email)); $self->request('POST', "/organizations/$org_name/developers", %args); $self->request('PUT', "/organizations/$org_name/developers/" . uri_escape($email), %args); GITHUB AUTHOR Binary.com COPYRIGHT Copyright 2014- Binary.com LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO