Skip to content
This repository was archived by the owner on Nov 24, 2025. It is now read-only.
This repository was archived by the owner on Nov 24, 2025. It is now read-only.

Implement Topologies CRUD endpoints #4565

@zrhoffman

Description

@zrhoffman

I'm submitting a ...

  • new feature / enhancement request

Description

  • In order to create topologies, we we need to implement the POST /topologies endpoint.
  • In order to retrieve topologies, we we need to implement the GET /topologies endpoint.
  • In order to update an existing topology, we need to implement the Implement `PUT
  • In order to delete a topology, we need to implement the DELETE /topologies?name={{name}} endpoint.

Traffic Control components affected ...

  • Documentation
  • Traffic Control Client
  • Traffic Ops

Acceptance Criteria

  • The Topology struct exists for the top-level Topology object, which includes the nodes array

  • The TopologyNode struct exists for objects in a Topology's nodes array

  • POSTing to /topologies with the request body given in the Flexible Topologies blueprint returns the response body given in the Flexible Topologies blueprint.

  • The endpoint stores a topology in the TO database.

  • The endpoint is validated according to the constrains listed under "API constraints" in the Flexible Topologies blueprint


  • A GET request to to /topologies gives you a response similar to GET /topologies example in the Flexible Topologies blueprint.
  • You can filter results using the name query parameter
  • You can filter results using the last_updated query parameter

  • A PUT request to /topologies?name={{name}} with the request body given in the Flexible Topologies blueprint example returns a response whose body matches the response JSON given in the blueprint.
  • If valid, the changes to the topology are persisted to the database
  • The changes are validated according to the constrains listed under "API constraints" in the Flexible Topologies blueprint


  • This routes are documented in the Traffic Ops API documentation:
    • The documentation includes an example request and response for each endpoint
    • The documentation includes descriptions of all request and response fields for each endpoint
  • The routes is added to all Traffic Ops clients:
    • Traffic Ops Python client
    • Traffic Ops Java client
    • Traffic Ops Go client library
  • API tests
  • Unit tests
  • The routes adhere to the API Guidelines blueprint.

See the Flexible Topologies PR for specifics: #4537

Metadata

Metadata

Assignees

No one assigned

    Labels

    TC Client (python)related to the Python implementation of a TC clientTO Client (Go)related to the Go implementation of a TC clientTraffic Opsrelated to Traffic Opsdocumentationrelated to documentationnew featureA new feature, capability or behavior

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions