Skip to content

Diagram: Reading Operations

Sequence Diagram of Reading an Operation

sequenceDiagram
  actor User
  participant SR as ServiceReader
  participant RN as ResourceNode
  User->>SR: read_operation(operation)
  Note over User,SR: User wants to read an AWS operation

  SR->>RN: get_operations_relations()
  Note over SR,RN: Tries to automatically generate relations from boto3

  RN-->>SR: ((List of relations for the operation))
  loop Calling Related Operations
    SR->>SR: read_operation(related_operation)
    Note over SR,RN: Read alls related operations and saves each response
  end


  SR->>RN: generate_api_parameters_from_operation_data()
  RN->>+RN: generate_jmespath_selector_from_relations()
  Note left of RN: Tries to generate a JMESPath query <br/>for generating api parameter dicts

  RN->>+RN: complement_api_parameters_list()
  Note left of RN: Adjusts additional parameters<br/>(e.g. MaxKeys)

  Note over SR,RN: Tries to generate api parameters from related operations data

  RN-->>SR: ((Generated API Parameters for the operation))




  loop Calling the original Operation with it's generated params
    SR->>SR: call_operation(api_param)
    Note over SR,RN: Calls the original operation with generated api parameters <br/> and saves each response
  end


  SR->>SR: search_operation_data(operation)
  Note over User,SR: List of all the saved responses<br/>of the operation

  SR-->>User: ((All responses for the operation))