Use case | Functionality | Parameters required (consider variable names as examples) | API Method | API Service | Authentication | Example Perl code (common definitions defined at the bottom of the page) |
---|---|---|---|---|---|---|
Context: create | Create a new context | # brand name (Sub admin) oxaasadmname = "<brand>.<environment>.xion.oxcs.net" e.g: testbrand.staging.xion.oxcs.net # brand admin password $oxaasadmpw = <sub_admin_password_plain> # Context name $ctxname = "$oxaasadmname_<context_name>" e.g. testbrand.staging.xion.oxcs.net_context1.com # Context admin name admname = "<adminuser>_$ctxname"; e.g. adminuser_testbrand.staging.xion.oxcs.net_context1.com # Context admin password admpass = "<context_admin_password_plain>"; # Filestore quota in MB for the context $quota = <quota_MB> (-1 unlimited) e.g. 1024 Additional Context admin parameters required: display_name | create() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> <add Taxonomy definitions> my $context = SOAP::Data->type("Context")->value( \SOAP::Data->value( SOAP::Data->name( "name" => $ctxname ), SOAP::Data->name( "maxQuota" => $quota ), SOAP::Data->name( "userAttributes" => \SOAP::Data->value( SOAP::Data->name( "entries" => @uattrs ) ) ) ) ); my $result = $OXResellerContextService->create( $context, SOAP::Data->value("User")->value( \SOAP::Data->value( SOAP::Data->name( "name" => "<admname>" ), SOAP::Data->name( "password" => "<admpass>" ), SOAP::Data->name( "display_name" => "<adm_display_name>" ), SOAP::Data->name( "sur_name" => "<adm_sur_name>"), SOAP::Data->name( "given_name" => "<adm_given_name>" ), SOAP::Data->name( "primaryEmail" => "<adm_primaryEmail>" ), SOAP::Data->name( "email1" => "<adm_email>" ) ) ), $oxaascreds ); |
Context: modify | Modify context Taxonomy or quota | # brand name (Sub admin) oxaasadmname = "<brand>.<environment>.xion.oxcs.net" e.g: testbrand.staging.xion.oxcs.net # brand admin password $oxaasadmpw = <sub_admin_password_plain> # Context name $ctxname = "$oxaasadmname_<context_name>" e.g. testbrand.staging.xion.oxcs.net_context1.com | change() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> <add Taxonomy definitions> # get context id my $result = $OXResellerContextService->list( $ctxname, $oxaascreds ); if ( $result->fault() ) { print STDERR "Error geting context id with name $ctxname: ".$result->faultstring()."\n"; next; } my @results = $result->paramsall; my $cid = $results[0]->{'id'}; my $context = SOAP::Data->type("Context")->value( \SOAP::Data->value( SOAP::Data->name( "id" => $cid ), SOAP::Data->name( "userAttributes" => \SOAP::Data->value( SOAP::Data->name( "entries" => @uattrs ) ) ) ) ); my $result = $OXResellerContextService->change( $context, $oxaascreds ); |
Context: delete | Delete a context | # brand name (Sub admin) oxaasadmname = "<brand>.<environment>.xion.oxcs.net" e.g: testbrand.staging.xion.oxcs.net # brand admin password $oxaasadmpw = <sub_admin_password_plain> # Context name $ctxname = "$oxaasadmname_<context_name>" e.g. testbrand.staging.xion.oxcs.net_context1.com | delete() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> my $context = SOAP::Data->type("Context")->value( \SOAP::Data->value( SOAP::Data->name( "name" => $ctxname ), ) ); my $result = $OXResellerContextService->delete( $context, $oxaascreds ); |
Context: list | List context by filter | # Context filter $ctxname_filter = "<context_filter>"
e.g. testbrand.staging.xion.oxcs.net_context1 e.g. estbrand.staging.xion.oxcs.net_* e.g. estbrand.staging.xion.oxcs.net_ab* | getData() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> my $result = $OXResellerContextService->getData( $ctxname_filter, $oxaascreds ); |
Context: getQuotaUsage | get the overall mail quota usage of all users within the given context | # Context id $cid = "$context_id" e.g. 2342 | getQuotaUsage() | OXResellerService | Subadmin | <add Admin credential definition> <add service definitions> my $result = $OXResellerService->getQuotaUsage( $ctxid, $oxaascreds ); |
Context: exist | check if a context exist | # Context name $ctxname = "$oxaasadmname_<context_name>" | exists() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> my $context = SOAP::Data->type("Context")->value( \SOAP::Data->value( SOAP::Data->name( "name" => $ctxname ), ) ); # exist contextxs my $result = $OXResellerContextService->exists( $context, $oxaascreds ); |
Context: disable | disable a context | # Context name $ctxname = "$oxaasadmname_<context_name>" | disable() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> my $context = SOAP::Data->type("Context")->value( \SOAP::Data->value( SOAP::Data->name( "name" => $ctxname ), ) ); # exist contextxs my $result = $OXResellerContextService->disable( $context, $oxaascreds ); |
Context: enable | enable a context | # Context name $ctxname = "$oxaasadmname_<context_name>" | enable() | OXResellerContextService | Subadmin | <add Admin credential definition> <add service definitions> my $context = SOAP::Data->type("Context")->value( \SOAP::Data->value( SOAP::Data->name( "name" => $ctxname ), ) ); # exist contextxs my $result = $OXResellerContextService->enable( $context, $oxaascreds ); |
Common to all examples:
Admin credential definition:
my $oxaascreds = SOAP::Data->type("Credentials")->value( \SOAP::Data->value( SOAP::Data->name( "login" => "$oxaasadmname" ), SOAP::Data->name( "password" => "$oxaasadmpw" ) ) );
Service definitions:
my $OXResellerContextService = SOAP::Lite->ns("http://soap.reseller.admin.openexchange.com") ->proxy( "https://$oxaashost" . "/webservices/OXResellerContextService", ssl_opts => [ SSL_verify_mode => 1 ] ); my $OXResellerUserService = SOAP::Lite->ns("http://soap.reseller.admin.openexchange.com") ->proxy( "https://$oxaashost" . "/webservices/OXResellerUserService", ssl_opts => [ SSL_verify_mode => 1 ] ); my $OXaaSService = SOAP::Lite->ns("http://soap.oxaas.admin.openexchange.com/") ->proxy( "https://$oxaashost" . "/webservices/OXaaSService", ssl_opts => [ SSL_verify_mode => 1 ] );
Define context taxonomy:
my @uattrs; my $brandTaxonomy = SOAP::Data->name( "entries" => \SOAP::Data->value( SOAP::Data->name( "key" => "types" ), SOAP::Data->name( "value" => $oxaasadmname ) ) ); push @uattrs, \SOAP::Data->value( SOAP::Data->name( "key" => "taxonomy" ), SOAP::Data->name( "value" => \SOAP::Data->value($brandTaxonomy) ) );