From 7dfab7f6797f10b77ca82f60cc621c9e75b39bac Mon Sep 17 00:00:00 2001
From: Robert Lynch <6098543+robertlynch3@users.noreply.github.com>
Date: Tue, 15 Aug 2023 09:34:45 -0400
Subject: [PATCH] Added additional Juniper Chassis and Modules (#1504)

* Added PTX10001-MR, QFX10000 chassis

* Added Juniper Chassis and Modules

* Added additional Juniper Modules

* Fixed CI/CD Errors

* Added weight and airflow

* Changed PTX10001 power to modular, added weight.

* Resolved Module Naming issue

---------

Co-authored-by: Robert Lynch <robert.lynch@ibm.com>
Co-authored-by: Daniel W. Anner <daniel.anner@danstechsupport.com>
---
 device-types/Juniper/PTX10001-MR.yml          | 169 ++++++++++++++++++
 device-types/Juniper/QFX10008.yml             |  52 ++++++
 device-types/Juniper/QFX10016.yml             |  78 ++++++++
 device-types/Juniper/SRX5800.yaml             |  65 +++++++
 module-types/Juniper/PTX10001-3000w-AC.yaml   |   8 +
 module-types/Juniper/QFX10000-30C.yml         | 125 +++++++++++++
 module-types/Juniper/QFX10000-36Q-12Q28.yml   | 149 +++++++++++++++
 module-types/Juniper/QFX10000-PWR-AC.yml      |  11 ++
 module-types/Juniper/RE-QFX10000.yml          |  16 ++
 module-types/Juniper/SRX-MIC-10XG-SFPP.yml    |  46 +++++
 .../Juniper/SRX5k IOC3 24XGE+6XLG.yml         | 125 +++++++++++++
 module-types/Juniper/SRX5k-RE-1800X4.yml      |  14 ++
 12 files changed, 858 insertions(+)
 create mode 100644 device-types/Juniper/PTX10001-MR.yml
 create mode 100644 device-types/Juniper/QFX10008.yml
 create mode 100644 device-types/Juniper/QFX10016.yml
 create mode 100644 device-types/Juniper/SRX5800.yaml
 create mode 100644 module-types/Juniper/PTX10001-3000w-AC.yaml
 create mode 100644 module-types/Juniper/QFX10000-30C.yml
 create mode 100644 module-types/Juniper/QFX10000-36Q-12Q28.yml
 create mode 100644 module-types/Juniper/QFX10000-PWR-AC.yml
 create mode 100644 module-types/Juniper/RE-QFX10000.yml
 create mode 100644 module-types/Juniper/SRX-MIC-10XG-SFPP.yml
 create mode 100644 module-types/Juniper/SRX5k IOC3 24XGE+6XLG.yml
 create mode 100644 module-types/Juniper/SRX5k-RE-1800X4.yml

diff --git a/device-types/Juniper/PTX10001-MR.yml b/device-types/Juniper/PTX10001-MR.yml
new file mode 100644
index 00000000..6249bbba
--- /dev/null
+++ b/device-types/Juniper/PTX10001-MR.yml
@@ -0,0 +1,169 @@
+---
+manufacturer: Juniper
+model: PTX10001-MR
+slug: juniper-ptx10001-mr
+u_height: 1.0
+is_full_depth: true
+airflow: rear-to-front
+weight: 18
+weight_unit: kg
+comments: '[Juniper PTX10001 Data Sheet](https://www.juniper.net/us/en/products/routers/ptx-series/ptx10001-36mr-packet-transport-router.html)'
+console-ports:
+  - name: Console
+    type: rj-45
+module-bays:
+  - name: PEM0
+    label: PSM 0
+    position: PSU0
+  - name: PEM1
+    label: PSM 1
+    position: PSU1
+interfaces:
+  - name: et-0/0/0
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/1
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/2
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/3
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/4
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/5
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/6
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/7
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/8
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/9
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/10
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/0/11
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/0
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/1
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/2
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/3
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/4
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/5
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/6
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/7
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/8
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/9
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/10
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/1/11
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/0
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/1
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/2
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/3
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/4
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/5
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/6
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/7
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/8
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/9
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/10
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: et-0/2/11
+    type: 400gbase-x-qsfpdd
+    enabled: true
+    mgmt_only: false
+  - name: MGMT
+    type: 1000base-t
+    enabled: true
+    mgmt_only: true
diff --git a/device-types/Juniper/QFX10008.yml b/device-types/Juniper/QFX10008.yml
new file mode 100644
index 00000000..3b8e9207
--- /dev/null
+++ b/device-types/Juniper/QFX10008.yml
@@ -0,0 +1,52 @@
+---
+manufacturer: Juniper
+model: QFX10008
+slug: juniper-qfx10008
+part_number: front-to-rear
+u_height: 13.0
+is_full_depth: true
+airflow: front-to-rear
+weight: 127
+weight_unit: kg
+comments: '[Juniper QFX10008 Data Sheet](https://www.juniper.net/us/en/products/switches/qfx-series/qfx10000-qfx10008-qfx10016-spine-and-core-switches.html/)'
+module-bays:
+  - name: CB0
+    label: Routing Engine 0
+    position: re0
+  - name: CB1
+    label: Routing Engine 1
+    position: re1
+  - name: PEM0
+    label: PSU 0
+    position: PSU0
+  - name: PEM1
+    label: PSU 1
+    position: PSU1
+  - name: PEM2
+    label: PSU 2
+    position: PSU2
+  - name: PEM3
+    label: PSU 3
+    position: PSU3
+  - name: PEM4
+    label: PSU 4
+    position: PSU4
+  - name: PEM5
+    label: PSU 5
+    position: PSU5
+  - name: FPC 0
+    position: '0'
+  - name: FPC 1
+    position: '1'
+  - name: FPC 2
+    position: '2'
+  - name: FPC 3
+    position: '3'
+  - name: FPC 4
+    position: '4'
+  - name: FPC 5
+    position: '5'
+  - name: FPC 6
+    position: '6'
+  - name: FPC 7
+    position: '7'
diff --git a/device-types/Juniper/QFX10016.yml b/device-types/Juniper/QFX10016.yml
new file mode 100644
index 00000000..58120380
--- /dev/null
+++ b/device-types/Juniper/QFX10016.yml
@@ -0,0 +1,78 @@
+---
+manufacturer: Juniper
+model: QFX10016
+slug: juniper-qfx10016
+u_height: 21.0
+is_full_depth: true
+airflow: front-to-rear
+weight: 223
+weight_unit: kg
+comments: '[Juniper QFX10016 Data Sheet](https://www.juniper.net/us/en/products/switches/qfx-series/qfx10000-qfx10008-qfx10016-spine-and-core-switches.html/)'
+module-bays:
+  - name: CB0
+    label: Routing Engine 0
+    position: re0
+  - name: CB1
+    label: Routing Engine 1
+    position: re1
+  - name: PEM0
+    label: PSU 0
+    position: PSU0
+  - name: PEM1
+    label: PSU 1
+    position: PSU1
+  - name: PEM2
+    label: PSU 2
+    position: PSU2
+  - name: PEM3
+    label: PSU 3
+    position: PSU3
+  - name: PEM4
+    label: PSU 4
+    position: PSU4
+  - name: PEM5
+    label: PSU 5
+  - name: PEM6
+    label: PSU 6
+    position: PSU6
+  - name: PEM7
+    label: PSU 7
+    position: PSU7
+  - name: PEM8
+    label: PSU 8
+    position: PSU8
+  - name: PEM9
+    label: PSU 9
+    position: PSU9
+  - name: FPC 0
+    position: '0'
+  - name: FPC 1
+    position: '1'
+  - name: FPC 2
+    position: '2'
+  - name: FPC 3
+    position: '3'
+  - name: FPC 4
+    position: '4'
+  - name: FPC 5
+    position: '5'
+  - name: FPC 6
+    position: '6'
+  - name: FPC 7
+    position: '7'
+  - name: FPC 8
+    position: '8'
+  - name: FPC 9
+    position: '9'
+  - name: FPC 10
+    position: '10'
+  - name: FPC 11
+    position: '11'
+  - name: FPC 12
+    position: '12'
+  - name: FPC 13
+    position: '13'
+  - name: FPC 14
+    position: '14'
+  - name: FPC 15
+    position: '15'
diff --git a/device-types/Juniper/SRX5800.yaml b/device-types/Juniper/SRX5800.yaml
new file mode 100644
index 00000000..d5f92c46
--- /dev/null
+++ b/device-types/Juniper/SRX5800.yaml
@@ -0,0 +1,65 @@
+---
+manufacturer: Juniper
+model: SRX5800
+slug: juniper-srx5800
+u_height: 16.0
+is_full_depth: true
+airflow: front-to-rear
+weight: 151
+weight_unit: kg
+comments: '[Juniper SRX5800 Data Sheet](https://www.juniper.net/us/en/products/security/srx-series/srx5800-large-enterprise-data-center-firewall.html)'
+module-bays:
+  - name: PEM0
+    label: PSU 0
+    position: PSU0
+  - name: PEM1
+    label: PSU 1
+    position: PSU1
+  - name: PEM2
+    label: PSU 2
+    position: PSU2
+  - name: PEM3
+    label: PSU 3
+    position: PSU3
+  - name: PEM7
+    label: PSU 7
+    position: PSU7
+  - name: PEM8
+    label: PSU 8
+    position: PSU8
+  - name: PEM9
+    label: PSU 9
+    position: PSU9
+  - name: FPC 0
+    position: '0'
+  - name: FPC 1
+    position: '1'
+  - name: FPC 2
+    position: '2'
+  - name: FPC 3
+    position: '3'
+  - name: FPC 4
+    position: '4'
+  - name: FPC 5
+    position: '5'
+  - name: CB0
+    label: Routing Engine 0
+    position: re0
+  - name: CB1
+    label: Routing Engine 1
+    position: re1
+  - name: CB2
+    label: Routing Engine 2
+    position: re2
+  - name: FPC 6
+    position: '6'
+  - name: FPC 7
+    position: '7'
+  - name: FPC 8
+    position: '8'
+  - name: FPC 9
+    position: '9'
+  - name: FPC 10
+    position: '10'
+  - name: FPC 11
+    position: '11'
diff --git a/module-types/Juniper/PTX10001-3000w-AC.yaml b/module-types/Juniper/PTX10001-3000w-AC.yaml
new file mode 100644
index 00000000..c8a71ac3
--- /dev/null
+++ b/module-types/Juniper/PTX10001-3000w-AC.yaml
@@ -0,0 +1,8 @@
+---
+manufacturer: Juniper
+model: PTX10001-3000W-AC
+part_number: 740-073765
+power-ports:
+  - name: '{module}'
+    type: saf-d-grid
+    maximum_draw: 3000
diff --git a/module-types/Juniper/QFX10000-30C.yml b/module-types/Juniper/QFX10000-30C.yml
new file mode 100644
index 00000000..c0b65738
--- /dev/null
+++ b/module-types/Juniper/QFX10000-30C.yml
@@ -0,0 +1,125 @@
+---
+manufacturer: Juniper
+model: QFX10000-30C
+part_number: QFX10000-30C
+interfaces:
+  - name: et-{module}/0/0
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/1
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/2
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/3
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/4
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/5
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/6
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/7
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/8
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/9
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/10
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/11
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/12
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/13
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/14
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/15
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/16
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/17
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/18
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/19
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/20
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/21
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/22
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/23
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/24
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/25
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/26
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/27
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/28
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/29
+    type: 100gbase-x-qsfp28
+    enabled: true
+    mgmt_only: false
diff --git a/module-types/Juniper/QFX10000-36Q-12Q28.yml b/module-types/Juniper/QFX10000-36Q-12Q28.yml
new file mode 100644
index 00000000..f569b693
--- /dev/null
+++ b/module-types/Juniper/QFX10000-36Q-12Q28.yml
@@ -0,0 +1,149 @@
+---
+manufacturer: Juniper
+model: QFX10000-36Q-12Q28
+part_number: QFX10000-36Q-12Q28
+interfaces:
+  - name: et-{module}/0/0
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/1
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/2
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/3
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/4
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/5
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/6
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/7
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/8
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/9
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/10
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/11
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/12
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/13
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/14
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/15
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/16
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/17
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/18
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/19
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/20
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/21
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/22
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/23
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/24
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/25
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/26
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/27
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/28
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/29
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/30
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/31
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/32
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/33
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/34
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/0/35
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
diff --git a/module-types/Juniper/QFX10000-PWR-AC.yml b/module-types/Juniper/QFX10000-PWR-AC.yml
new file mode 100644
index 00000000..e03ac66e
--- /dev/null
+++ b/module-types/Juniper/QFX10000-PWR-AC.yml
@@ -0,0 +1,11 @@
+---
+manufacturer: Juniper
+model: QFX10000-PWR-AC
+part_number: QFX10000-PWR-AC
+power-ports:
+  - name: '{module}-INP1'
+    type: iec-60320-c20
+    maximum_draw: 2700
+  - name: '{module}-INP2'
+    type: iec-60320-c20
+    maximum_draw: 2700
diff --git a/module-types/Juniper/RE-QFX10000.yml b/module-types/Juniper/RE-QFX10000.yml
new file mode 100644
index 00000000..0518e63d
--- /dev/null
+++ b/module-types/Juniper/RE-QFX10000.yml
@@ -0,0 +1,16 @@
+---
+manufacturer: Juniper
+model: RE-QFX10000
+part_number: 750-068820
+console-ports:
+  - name: '{module}'
+    type: rj-45
+interfaces:
+  - name: '{module}-em0'
+    type: 1000base-t
+    enabled: true
+    mgmt_only: true
+  - name: '{module}-em1'
+    type: 1000base-x-sfp
+    enabled: true
+    mgmt_only: true
diff --git a/module-types/Juniper/SRX-MIC-10XG-SFPP.yml b/module-types/Juniper/SRX-MIC-10XG-SFPP.yml
new file mode 100644
index 00000000..aba22862
--- /dev/null
+++ b/module-types/Juniper/SRX-MIC-10XG-SFPP.yml
@@ -0,0 +1,46 @@
+---
+manufacturer: Juniper
+model: SRX-MIC-10XG-SFPP
+part_number: SRX-MIC-10XG-SFPP
+comments: This is a half height card that goes in a two slot SRX5k IOC II card.
+interfaces:
+  - name: xe-{module}/0
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/1
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/2
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/3
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/4
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/5
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/6
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/7
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/8
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
+  - name: xe-{module}/9
+    type: 10gbase-x-sfpp
+    enabled: true
+    mgmt_only: false
diff --git a/module-types/Juniper/SRX5k IOC3 24XGE+6XLG.yml b/module-types/Juniper/SRX5k IOC3 24XGE+6XLG.yml
new file mode 100644
index 00000000..701c6bb2
--- /dev/null
+++ b/module-types/Juniper/SRX5k IOC3 24XGE+6XLG.yml	
@@ -0,0 +1,125 @@
+---
+manufacturer: Juniper
+model: SRX5k IOC3 24XGE+6XLG
+part_number: SRX5k IOC3 24XGE+6XLG
+interfaces:
+  - name: xe-{module}/0/0
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/1
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/2
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/3
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/4
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/5
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/6
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/7
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/8
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/9
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/10
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/0/11
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/0
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/1
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/2
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/3
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/4
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/5
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/6
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/7
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/8
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/9
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/10
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: xe-{module}/1/11
+    type: 10gbase-x-sfpp
+    enabled: false
+    mgmt_only: false
+  - name: et-{module}/2/0
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/2/1
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/2/2
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/3/0
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/3/1
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
+  - name: et-{module}/3/2
+    type: 40gbase-x-qsfpp
+    enabled: true
+    mgmt_only: false
diff --git a/module-types/Juniper/SRX5k-RE-1800X4.yml b/module-types/Juniper/SRX5k-RE-1800X4.yml
new file mode 100644
index 00000000..455d2753
--- /dev/null
+++ b/module-types/Juniper/SRX5k-RE-1800X4.yml
@@ -0,0 +1,14 @@
+---
+manufacturer: Juniper
+model: SRX5k-RE-1800X4
+part_number: SRX5k-RE-1800X4
+console-ports:
+  - name: '{module}-AUX'
+    type: rj-45
+  - name: '{module}-CONSOLE'
+    type: rj-45
+interfaces:
+  - name: '{module}-fxp0'
+    type: 1000base-t
+    enabled: true
+    mgmt_only: true
-- 
GitLab