--- #create test domain - name: create test domain type: item method: POST path: /api/domains/ header: Content-Type: application/json content: domain: test${unique_id}.example.org reseller_id: 1 conditions: is: code: 201 retain: domain_path: header.location domain_id: header.location #create a BillingProfile - name: create a BillingProfile type: item method: POST path: /api/billingprofiles/ header: Content-Type: application/json Prefer: return=representation content: name: test profile ${unique_id} handle: test_profile_handle${unique_id} reseller_id: 1 conditions: is: code: 201 retain: billing_profile_id: header.location #create SubscriberProfileSet 1 - name: create SubscriberProfileSet 1 type: item method: POST path: /api/subscriberprofilesets/ header: Content-Type: application/json content: name: subscriber_profile_1_set_${unique_id} description: subscriber_profile_1_set_description_${unique_id} reseller_id: 1 conditions: is: code: 201 retain: subscriber_profile_set_1_path: header.location subscriber_profile_set_1_id: header.location #get SubscriberProfileSet 1 - name: get SubscriberProfileSet 1 type: item method: GET path: '/${subscriber_profile_set_1_path}' retain: subscriber_profile_set_1: body conditions: is: code: 200 #create SubscriberProfileSet 2 - name: create SubscriberProfileSet 2 type: item method: POST path: /api/subscriberprofilesets/ header: Content-Type: application/json content: name: subscriber_profile_2_set_${unique_id} description: subscriber_profile_2_set_description_${unique_id} reseller_id: 1 conditions: is: code: 201 retain: subscriber_profile_set_2_path: header.location subscriber_profile_set_2_id: header.location #get SubscriberProfileSet 2 - name: get SubscriberProfileSet 2 type: item method: GET path: '/${subscriber_profile_set_2_path}' retain: subscriber_profile_set_2: body conditions: is: code: 200 #create SubscriberProfileSet 3 - name: create SubscriberProfileSet 3 type: item method: POST path: /api/subscriberprofilesets/ header: Content-Type: application/json content: name: subscriber_profile_3_set_${unique_id} description: subscriber_profile_3_set_description_${unique_id} reseller_id: 1 conditions: is: code: 201 retain: subscriber_profile_set_3_path: header.location subscriber_profile_set_3_id: header.location #get SubscriberProfileSet - name: get SubscriberProfileSet type: item method: GET path: '/${subscriber_profile_set_3_path}' retain: subscriber_profile_set_3: body conditions: is: code: 200 #get SubscriberPreferenceDefs - name: get SubscriberPreferenceDefs type: item method: GET path: '/api/subscriberpreferencedefs/' retain: subscriber_preference_defs: body perl_code: !!perl/code | { my ($retained) = @_; foreach my $attr (keys %{$retained->{subscriber_preference_defs}}) { push(@{$retained->{subscriber_profile_attributes}},$attr); } } conditions: is: code: 200 #create SubscriberProfile 1 - name: create SubscriberProfile 1 type: item method: POST path: /api/subscriberprofiles/ header: Content-Type: application/json content: name: subscriber_profile_1_${unique_id} description: subscriber_profile_1_description_${unique_id} profile_set_id: ${subscriber_profile_set_1_id} attributes: ${subscriber_profile_attributes} conditions: is: code: 201 retain: subscriber_profile_1_path: header.location #get SubscriberProfileSet 1 - name: get SubscriberProfile 1 type: item method: GET path: '/${subscriber_profile_1_path}' retain: subscriber_profile_1: body conditions: is: code: 200 #create SubscriberProfile 2 - name: create SubscriberProfile 2 type: item method: POST path: /api/subscriberprofiles/ header: Content-Type: application/json content: name: subscriber_profile_2_${unique_id} description: subscriber_profile_2_description_${unique_id} profile_set_id: ${subscriber_profile_set_2_id} attributes: ${subscriber_profile_attributes} conditions: is: code: 201 retain: subscriber_profile_2_path: header.location #get SubscriberProfileSet 2 - name: get SubscriberProfile 2 type: item method: GET path: '/${subscriber_profile_2_path}' retain: subscriber_profile_2: body conditions: is: code: 200 #create SubscriberProfile 3 - name: create SubscriberProfile 3 type: item method: POST path: /api/subscriberprofiles/ header: Content-Type: application/json content: name: subscriber_profile_3_${unique_id} description: subscriber_profile_3_description_${unique_id} profile_set_id: ${subscriber_profile_set_3_id} attributes: ${subscriber_profile_attributes} conditions: is: code: 201 retain: subscriber_profile_3_path: header.location #get SubscriberProfileSet 3 - name: get SubscriberProfile 3 type: item method: GET path: '/${subscriber_profile_3_path}' retain: subscriber_profile_3: body conditions: is: code: 200 #create a Customer Contact - name: create a Customer Contact type: item method: POST path: /api/customercontacts/ header: Content-Type: application/json content: firstname: cust_contact_first lastname: cust_contact_last email: cust_contact@custcontact.invalid reseller_id: 1 conditions: is: code: 201 retain: customer_contact_path: header.location customer_contact_id: header.location #get CustomerContact - name: check CustomerContact type: item method: GET path: '/${customer_contact_path}' retain: customer_contact: body perl_code: !!perl/code | { my ($retained) = @_; $retained->{customer_type} = 'sipaccount'; } conditions: is: code: 200 #create Customer - name: include create Customer type: include file: CreateCustomer.yaml perl_code: !!perl/code | { my ($retained) = @_; $retained->{subscriber_map} = (); $retained->{customer_map} = (); $retained->{customer_content} = { status => 'active', contact_id => $retained->{customer_contact_id}, billing_profile_id => $retained->{billing_profile_id}, type => 'sipaccount', max_subscribers => undef, external_id => undef }; } #create Subscriber - name: include create Subscriber type: include file: CreateSubscriber.yaml perl_code: !!perl/code | { my ($retained) = @_; $retained->{customer_map}->{$retained->{customer}->{id}} = $retained->{customer}; my $cc = 800; my $ac = '1'.(scalar keys %{$retained->{subscriber_map}}); my $sn = $retained->{unique_id}; $retained->{subscriber_content} = { primary_number => { cc => $cc, ac => $ac, sn => $sn }, domain_id => $retained->{domain_id}, username => 'subscriber_' . (scalar keys %{$retained->{subscriber_map}}) . '_'.$retained->{unique_id}, password => 'subscriber_password', customer_id => $retained->{customer}->{id}, }; } #set Call Forwards - name: include set Call Forwards type: include file: SetCallForwards.yaml perl_code: !!perl/code | { my ($retained) = @_; $retained->{callforwards_content} = { cfu => { destinations => [ { destination => "5678" }, { destination => "autoattendant", }, ] } }; } #set Call Forwards - name: include set Call Forwards type: include file: SetCallForwards.yaml perl_code: !!perl/code | { my ($retained) = @_; $retained->{callforwards_content} = { cfu => { destinations => [ { destination => "5678" } ] } }; } #Check Event History - name: include Check Event History type: include file: CheckEventHistory.yaml perl_code: !!perl/code | { my ($retained) = @_; $retained->{eventhistory_path} = "api/events/?page=1&rows=10&order_by_direction=asc&order_by=id&subscriber_id=$retained->{subscriber_id}&type=*ivr"; $retained->{expected_events} = [ { subscriber_id => $retained->{subscriber}->{id}, type => "start_ivr" }, { subscriber_id => $retained->{subscriber}->{id}, type => "end_ivr" }, ]; }