{
  "title": "01-first-quote",
  "steps": [
    {
      "key": "create-definition-division",
      "method": "POST",
      "path": "/api/divisions",
      "credential": "author",
      "request": {
        "meta": {
          "request_id": "req-definition-division-{{namespace}}",
          "idempotency_key": "idem-definition-division-{{namespace}}"
        },
        "data": {
          "type": "division",
          "attributes": {
            "division_code": "{{division_code}}",
            "state": "active"
          }
        }
      },
      "expect": {
        "status": 201
      },
      "extract": {
        "division_id": "data.id"
      }
    },
    {
      "key": "validate-definition-pass-1",
      "method": "POST",
      "path": "/api/divisions/{{division_id}}/shipping-method-definition/validate",
      "credential": "author",
      "expect": {
        "status": 200
      },
      "file": "definition-1.json",
      "request": {
        "meta": {
          "request_id": "req-validate-definition-pass-1-{{namespace}}",
          "idempotency_key": "idem-validate-definition-pass-1-{{namespace}}"
        }
      }
    },
    {
      "key": "plan-definition-pass-1",
      "method": "POST",
      "path": "/api/divisions/{{division_id}}/shipping-method-definition/plan",
      "credential": "author",
      "expect": {
        "status": 200,
        "values": {
          "data.attributes.succeeded": true
        }
      },
      "file": "definition-1.json",
      "request": {
        "meta": {
          "request_id": "req-plan-definition-pass-1-{{namespace}}",
          "idempotency_key": "idem-plan-definition-pass-1-{{namespace}}"
        }
      }
    },
    {
      "key": "apply-definition-pass-1",
      "method": "POST",
      "path": "/api/divisions/{{division_id}}/shipping-method-definition/apply",
      "credential": "author",
      "expect": {
        "status": 200,
        "values": {
          "data.attributes.succeeded": true
        }
      },
      "file": "definition-1.json",
      "request": {
        "meta": {
          "request_id": "req-apply-definition-pass-1-{{namespace}}",
          "idempotency_key": "idem-apply-definition-pass-1-{{namespace}}"
        }
      }
    },
    {
      "key": "export-definition-pass-1",
      "method": "GET",
      "path": "/api/divisions/{{division_id}}/shipping-method-definition/export",
      "credential": "read",
      "request": null,
      "expect": {
        "status": 200
      }
    },
    {
      "key": "issue-runtime_1",
      "method": "POST",
      "path": "/api/access-tokens",
      "credential": "author",
      "request": {
        "data": {
          "type": "access-token",
          "attributes": {
            "token_type": "sk",
            "name": "Disposable walkthrough token",
            "abilities": [
              "*"
            ],
            "division_id": "{{division_id}}",
            "rate_limit_per_minute": 600
          }
        }
      },
      "extract": {
        "runtime_1": "data.attributes.plain_text_token"
      },
      "expect": {
        "status": 201
      }
    },
    {
      "key": "evaluate-first-live",
      "method": "POST",
      "path": "/api/rating/evaluate",
      "credential": "runtime_1",
      "expect": {
        "status": 200,
        "values": {
          "data.attributes.shipping_options.0.total_price.amount": "12.50",
          "data.attributes.shipping_options.0.total_price.currency_code": "EUR",
          "data.attributes.shipping_options.length": 1,
          "data.attributes.shipping_options.0.price_components.0.code": "fi-domestic-1kg-definition-first-live-price-exactness",
          "data.attributes.shipping_options.0.price_components.0.calculation_basis.artifact_row_code": "fi-domestic-1kg-definition-first-live-price-exactness",
          "data.attributes.shipping_options.0.price_components.0.calculation_basis.offer_codes": []
        }
      },
      "file": "evaluate-first-live.json"
    },
    {
      "key": "replay-same-operation",
      "method": "POST",
      "path": "/api/rating/evaluate",
      "credential": "runtime_1",
      "expect": {
        "status": 200,
        "values": {
          "data.attributes.shipping_options.0.total_price.amount": "12.50",
          "data.attributes.shipping_options.0.total_price.currency_code": "EUR",
          "data.attributes.shipping_options.length": 1,
          "meta.idempotency.replayed": true,
          "data.attributes.shipping_options.0.price_components.0.code": "fi-domestic-1kg-definition-first-live-price-exactness",
          "data.attributes.shipping_options.0.price_components.0.calculation_basis.artifact_row_code": "fi-domestic-1kg-definition-first-live-price-exactness",
          "data.attributes.shipping_options.0.price_components.0.calculation_basis.offer_codes": []
        }
      },
      "file": "replay-same-operation.json"
    },
    {
      "key": "reject-changed-operation",
      "method": "POST",
      "path": "/api/rating/evaluate",
      "credential": "runtime_1",
      "expect": {
        "status": 409,
        "values": {
          "errors.0.code": "REQUEST_ID_CONFLICT"
        }
      },
      "file": "reject-changed-operation.json"
    },
    {
      "key": "reject-unbound-token",
      "method": "POST",
      "path": "/api/rating/evaluate",
      "credential": "author",
      "expect": {
        "status": 403,
        "values": {
          "errors.0.code": "ACTOR_UNAUTHORIZED"
        }
      },
      "file": "reject-unbound-token.json"
    }
  ],
  "initial_state": {
    "division_code": "definition-docs-{{namespace}}"
  }
}
