{
  "id": "invoicing.billing",
  "kind": "app",
  "name": "billing",
  "label": null,
  "owner": "invoicing-team",
  "operator": "infra",
  "site": "aws-paris",
  "system": "invoicing",
  "incomplete": false,
  "missing": [],
  "declared": "apps.ca:6:7",
  "virtual": false,
  "description": "Monthly customer invoicing, PDF generation",
  "parent": "invoicing",
  "path": [
    "invoicing"
  ],
  "module": null,
  "attributes": {
    "description": "Monthly customer invoicing, PDF generation",
    "on": [
      "web01",
      "web02"
    ],
    "version": "2.4.1",
    "language": "java",
    "license": "Apache-2.0"
  },
  "references": {
    "on": [
      "aws-paris.prod.dmz.web01",
      "aws-paris.prod.dmz.web02"
    ]
  },
  "children": [
    "invoicing.billing.spring-boot"
  ],
  "hosts": [],
  "members": [],
  "runs_here": [],
  "failures": [
    "invoicing.crm",
    "invoicing.crmdb",
    "invoicing.analytics",
    "accounting.legacy-erp",
    "aws-paris",
    "aws-paris.prod",
    "aws-paris.prod.vgw",
    "aws-paris.prod.nat-gw",
    "aws-paris.prod.dmz",
    "aws-paris.prod.dmz.web01",
    "aws-paris.prod.db",
    "aws-paris.prod.db.db01",
    "paris-dc1",
    "paris-dc1.r12",
    "paris-dc1.fw01",
    "paris-dc1.fw01.vpn",
    "paris-dc1.lan",
    "paris-dc1.lan.erp",
    "paris-dc1.lan.erp.erp01",
    "paris-aws-1",
    "stripe"
  ],
  "failure_pairs": [],
  "questions": [],
  "outgoing": [
    {
      "with": "invoicing.crm",
      "port": "https/443",
      "layers": [
        "flow"
      ],
      "carries": [
        "customer"
      ],
      "through": [],
      "through_steps": [],
      "through_deduced": false,
      "attributes": {
        "description": "Fetches customer details before invoicing",
        "exchange": "pull",
        "carries": [
          "customer"
        ]
      },
      "declared": "apps.ca:12:5"
    },
    {
      "with": "stripe",
      "port": "https/443",
      "layers": [
        "flow"
      ],
      "carries": [
        "invoice"
      ],
      "through": [
        "aws-paris.prod.nat-gw"
      ],
      "through_steps": [
        [
          "aws-paris.prod.nat-gw"
        ]
      ],
      "through_deduced": true,
      "attributes": {
        "exchange": "push",
        "carries": [
          "invoice"
        ]
      },
      "declared": "apps.ca:17:5"
    },
    {
      "with": "invoicing.analytics",
      "port": "tcp/5432",
      "layers": [
        "flow"
      ],
      "carries": [
        "invoice"
      ],
      "through": [],
      "through_steps": [],
      "through_deduced": false,
      "attributes": {
        "exchange": "push",
        "carries": [
          "invoice"
        ]
      },
      "declared": "apps.ca:18:5"
    },
    {
      "with": "accounting.legacy-erp",
      "port": "tcp/1521",
      "layers": [
        "flow"
      ],
      "carries": [
        "invoice"
      ],
      "through": [
        "paris-aws-1",
        "paris-dc1.fw01"
      ],
      "through_steps": [
        [
          "paris-aws-1"
        ],
        [
          "paris-dc1.fw01"
        ]
      ],
      "through_deduced": false,
      "attributes": {
        "description": "Accounting export to the datacenter ERP",
        "exchange": "push",
        "carries": [
          "invoice"
        ],
        "through": [
          "paris-aws-1",
          "fw01"
        ]
      },
      "declared": "apps.ca:19:5"
    }
  ],
  "incoming": []
}
