Skip to content

Dependant Teams

In some of the complex service scenarios, there may be situations where a Service requires contributions from multiple teams to execute Change Instance effectively. To address this, the concept of Dependent Teams within a Service definition is implemented. The Service Owner could optionally add one or more teams as dependent teams to each Service. Then, if a Consumer submits and new Change Instances are generated for that Service, these dependent teams would also receive new Dependent Change Instances. The Dependent Change Instances share the same attributes as the main Service Owner's, like the same change_type, state, consumer_team, and also service_owner_team. However, the only different attribute is owner.(See Dependent Objects Accessibility section)

Configuration

Service Owners can define the dependent teams using:

PUT or PATCH /v1/serviceowner/services/<service_id>/ HTTP/1.1
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>
{
    "dependant_teams": [<service_owner_team_id>, <service_owner_team_id>, ...]
}

Dependent Objects Accessibility

Each Change Instance has the following attributes regarding the ownership:

  • consumer_team is Consumer team of the Changes Instance, and it is derived from its Service Item's Application Owner
  • service_owner_team is the main Service Owner of the Change Instance which is its Service Item's Service Owner
  • owner is the Owner of the Change Instance.

For the main Change Instance, the value of owner is the same as service_owner_team. However, for the Dependent Change Instance, owner is different than service_owner_team. This is the main logic to differentiate the main and Dependent Change Instances.

Dependant Endpoints

Dependant Services

To get the list of Services where my team is listed in their dependent_teams:

GET /v1/serviceowner/services/dependant/ HTTP/1.1
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>

Dependant Service Items

To get the list of Service Items from the Services where my team is listed in their dependent_teams:

GET /v1/serviceowner/service_items/dependant/ HTTP/1.1
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>

To get all the Owner's Service Items and Dependent Service Items in one place:

GET /v1/serviceowner/service_items/?dependant=true HTTP/1.1
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>

Dependant Change Instances

To get the list of Change Instances from the Services where my team is listed in their dependent_teams:

GET /v1/serviceowner/change_instances/dependant/ HTTP/1.1
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>

To get all the Owner's Change Instances and Dependent Change Instances in one place:

GET /v1/serviceowner/change_instances/?dependant=true HTTP/1.1
Content-Type: application/json
Authorization: Token <YOUR_TOKEN>

Note: All the endpoints mentioned above share the same filter params as their main endpoint.