1f2a8e57eSGunnar Mills{
2f2a8e57eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/IPAddresses.v1_1_5.json",
3f2a8e57eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
4f2a8e57eSGunnar Mills    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
5f2a8e57eSGunnar Mills    "definitions": {
6f2a8e57eSGunnar Mills        "AddressState": {
7f2a8e57eSGunnar Mills            "enum": [
8f2a8e57eSGunnar Mills                "Preferred",
9f2a8e57eSGunnar Mills                "Deprecated",
10f2a8e57eSGunnar Mills                "Tentative",
11f2a8e57eSGunnar Mills                "Failed"
12f2a8e57eSGunnar Mills            ],
13f2a8e57eSGunnar Mills            "enumDescriptions": {
14f2a8e57eSGunnar Mills                "Deprecated": "This address is currently within its valid lifetime but is now outside its RFC4862-defined preferred lifetime.",
15f2a8e57eSGunnar Mills                "Failed": "This address has failed Duplicate Address Detection (DAD) testing, as defined in RFC4862, section 5.4, and is not currently in use.",
16f2a8e57eSGunnar Mills                "Preferred": "This address is currently within both its RFC4862-defined valid and preferred lifetimes.",
17f2a8e57eSGunnar Mills                "Tentative": "This address is currently undergoing Duplicate Address Detection (DAD) testing, as defined in RFC4862, section 5.4."
18f2a8e57eSGunnar Mills            },
19f2a8e57eSGunnar Mills            "type": "string"
20f2a8e57eSGunnar Mills        },
21f2a8e57eSGunnar Mills        "IPv4Address": {
22f2a8e57eSGunnar Mills            "additionalProperties": false,
23f2a8e57eSGunnar Mills            "description": "This type describes an IPv4 address.",
24f2a8e57eSGunnar Mills            "longDescription": "This type shall describe an IPv4 address assigned to an interface.",
25f2a8e57eSGunnar Mills            "patternProperties": {
26f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
27f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
28f2a8e57eSGunnar Mills                    "type": [
29f2a8e57eSGunnar Mills                        "array",
30f2a8e57eSGunnar Mills                        "boolean",
31f2a8e57eSGunnar Mills                        "integer",
32f2a8e57eSGunnar Mills                        "number",
33f2a8e57eSGunnar Mills                        "null",
34f2a8e57eSGunnar Mills                        "object",
35f2a8e57eSGunnar Mills                        "string"
36f2a8e57eSGunnar Mills                    ]
37f2a8e57eSGunnar Mills                }
38f2a8e57eSGunnar Mills            },
39f2a8e57eSGunnar Mills            "properties": {
40f2a8e57eSGunnar Mills                "Address": {
41f2a8e57eSGunnar Mills                    "description": "The IPv4 address.",
42f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an IPv4 address assigned to this interface.  If DHCPv4 is enabled on the interface, this property becomes read-only.",
43f2a8e57eSGunnar Mills                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
44f2a8e57eSGunnar Mills                    "readonly": false,
45f2a8e57eSGunnar Mills                    "type": [
46f2a8e57eSGunnar Mills                        "string",
47f2a8e57eSGunnar Mills                        "null"
48f2a8e57eSGunnar Mills                    ]
49f2a8e57eSGunnar Mills                },
50f2a8e57eSGunnar Mills                "AddressOrigin": {
51f2a8e57eSGunnar Mills                    "anyOf": [
52f2a8e57eSGunnar Mills                        {
53f2a8e57eSGunnar Mills                            "$ref": "#/definitions/IPv4AddressOrigin"
54f2a8e57eSGunnar Mills                        },
55f2a8e57eSGunnar Mills                        {
56f2a8e57eSGunnar Mills                            "type": "null"
57f2a8e57eSGunnar Mills                        }
58f2a8e57eSGunnar Mills                    ],
59f2a8e57eSGunnar Mills                    "description": "This indicates how the address was determined.",
60f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the IP address origin for this network interface.",
61f2a8e57eSGunnar Mills                    "readonly": true
62f2a8e57eSGunnar Mills                },
63f2a8e57eSGunnar Mills                "Gateway": {
64f2a8e57eSGunnar Mills                    "description": "The IPv4 gateway for this address.",
65f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the IPv4 default gateway address for this interface.  If DHCPv4 is enabled on the interface and is configured to set the IPv4 default gateway address, this property becomes read-only.  If multiple IPv4 addresses are present on the same interface, only a single default gateway is allowed.  Any additional IPv4 addresses shall not have a default gateway specified.",
66f2a8e57eSGunnar Mills                    "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
67f2a8e57eSGunnar Mills                    "readonly": false,
68f2a8e57eSGunnar Mills                    "type": [
69f2a8e57eSGunnar Mills                        "string",
70f2a8e57eSGunnar Mills                        "null"
71f2a8e57eSGunnar Mills                    ]
72f2a8e57eSGunnar Mills                },
73f2a8e57eSGunnar Mills                "Oem": {
74f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
75f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
76f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
77f2a8e57eSGunnar Mills                },
78f2a8e57eSGunnar Mills                "SubnetMask": {
79f2a8e57eSGunnar Mills                    "anyOf": [
80f2a8e57eSGunnar Mills                        {
81f2a8e57eSGunnar Mills                            "$ref": "#/definitions/SubnetMask"
82f2a8e57eSGunnar Mills                        },
83f2a8e57eSGunnar Mills                        {
84f2a8e57eSGunnar Mills                            "type": "null"
85f2a8e57eSGunnar Mills                        }
86f2a8e57eSGunnar Mills                    ],
87f2a8e57eSGunnar Mills                    "description": "The IPv4 subnet mask.",
88f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the IPv4 subnet mask for this address.  If DHCPv4 is enabled on the interface, this property becomes read-only.",
89f2a8e57eSGunnar Mills                    "readonly": false
90f2a8e57eSGunnar Mills                }
91f2a8e57eSGunnar Mills            },
92f2a8e57eSGunnar Mills            "type": "object"
93f2a8e57eSGunnar Mills        },
94f2a8e57eSGunnar Mills        "IPv4AddressOrigin": {
95f2a8e57eSGunnar Mills            "enum": [
96f2a8e57eSGunnar Mills                "Static",
97f2a8e57eSGunnar Mills                "DHCP",
98f2a8e57eSGunnar Mills                "BOOTP",
99f2a8e57eSGunnar Mills                "IPv4LinkLocal"
100f2a8e57eSGunnar Mills            ],
101f2a8e57eSGunnar Mills            "enumDescriptions": {
102f2a8e57eSGunnar Mills                "BOOTP": "A BOOTP service-provided address.",
103f2a8e57eSGunnar Mills                "DHCP": "A DHCPv4 service-provided address.",
104f2a8e57eSGunnar Mills                "IPv4LinkLocal": "The address is valid for only this network segment, or link.",
105f2a8e57eSGunnar Mills                "Static": "A user-configured static address."
106f2a8e57eSGunnar Mills            },
107f2a8e57eSGunnar Mills            "type": "string"
108f2a8e57eSGunnar Mills        },
109f2a8e57eSGunnar Mills        "IPv6Address": {
110f2a8e57eSGunnar Mills            "additionalProperties": false,
111f2a8e57eSGunnar Mills            "description": "This type describes an IPv6 address.",
112f2a8e57eSGunnar Mills            "longDescription": "This type shall describe an IPv6 address assigned to an interface.",
113f2a8e57eSGunnar Mills            "patternProperties": {
114f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
115f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
116f2a8e57eSGunnar Mills                    "type": [
117f2a8e57eSGunnar Mills                        "array",
118f2a8e57eSGunnar Mills                        "boolean",
119f2a8e57eSGunnar Mills                        "integer",
120f2a8e57eSGunnar Mills                        "number",
121f2a8e57eSGunnar Mills                        "null",
122f2a8e57eSGunnar Mills                        "object",
123f2a8e57eSGunnar Mills                        "string"
124f2a8e57eSGunnar Mills                    ]
125f2a8e57eSGunnar Mills                }
126f2a8e57eSGunnar Mills            },
127f2a8e57eSGunnar Mills            "properties": {
128f2a8e57eSGunnar Mills                "Address": {
129f2a8e57eSGunnar Mills                    "description": "The IPv6 address.",
130f2a8e57eSGunnar Mills                    "longDescription": "This property lists an IPv6 address that is currently assigned on this interface.",
131f2a8e57eSGunnar Mills                    "readonly": false,
132f2a8e57eSGunnar Mills                    "type": [
133f2a8e57eSGunnar Mills                        "string",
134f2a8e57eSGunnar Mills                        "null"
135f2a8e57eSGunnar Mills                    ]
136f2a8e57eSGunnar Mills                },
137f2a8e57eSGunnar Mills                "AddressOrigin": {
138f2a8e57eSGunnar Mills                    "anyOf": [
139f2a8e57eSGunnar Mills                        {
140f2a8e57eSGunnar Mills                            "$ref": "#/definitions/IPv6AddressOrigin"
141f2a8e57eSGunnar Mills                        },
142f2a8e57eSGunnar Mills                        {
143f2a8e57eSGunnar Mills                            "type": "null"
144f2a8e57eSGunnar Mills                        }
145f2a8e57eSGunnar Mills                    ],
146f2a8e57eSGunnar Mills                    "description": "This indicates how the address was determined.",
147f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the IPv6 address origin for this interface.",
148f2a8e57eSGunnar Mills                    "readonly": true
149f2a8e57eSGunnar Mills                },
150f2a8e57eSGunnar Mills                "AddressState": {
151f2a8e57eSGunnar Mills                    "anyOf": [
152f2a8e57eSGunnar Mills                        {
153f2a8e57eSGunnar Mills                            "$ref": "#/definitions/AddressState"
154f2a8e57eSGunnar Mills                        },
155f2a8e57eSGunnar Mills                        {
156f2a8e57eSGunnar Mills                            "type": "null"
157f2a8e57eSGunnar Mills                        }
158f2a8e57eSGunnar Mills                    ],
159f2a8e57eSGunnar Mills                    "description": "The current RFC4862-defined state of this address.",
160f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the current RFC4862-defined state of this address.  Preferred and Deprecated states follow the definitions in RFC4862, section 5.5.4.  The Tentative state indicates that the address is undergoing Duplicate Address Detection (DAD), as defined in RFC4862, section 5.4.  The Failed state indicates a static address that did not pass DAD.  A static address in the Failed state is not in use on the network stack, and corrective action is required to remedy this condition.",
161f2a8e57eSGunnar Mills                    "readonly": true
162f2a8e57eSGunnar Mills                },
163f2a8e57eSGunnar Mills                "Oem": {
164f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
165f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
166f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
167f2a8e57eSGunnar Mills                },
168f2a8e57eSGunnar Mills                "PrefixLength": {
169f2a8e57eSGunnar Mills                    "anyOf": [
170f2a8e57eSGunnar Mills                        {
171f2a8e57eSGunnar Mills                            "$ref": "#/definitions/PrefixLength"
172f2a8e57eSGunnar Mills                        },
173f2a8e57eSGunnar Mills                        {
174f2a8e57eSGunnar Mills                            "type": "null"
175f2a8e57eSGunnar Mills                        }
176f2a8e57eSGunnar Mills                    ],
177f2a8e57eSGunnar Mills                    "description": "The IPv6 address prefix Length.",
178f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the IPv6 address prefix length for this interface.",
179f2a8e57eSGunnar Mills                    "readonly": true
180f2a8e57eSGunnar Mills                }
181f2a8e57eSGunnar Mills            },
182f2a8e57eSGunnar Mills            "type": "object"
183f2a8e57eSGunnar Mills        },
184f2a8e57eSGunnar Mills        "IPv6AddressOrigin": {
185f2a8e57eSGunnar Mills            "enum": [
186f2a8e57eSGunnar Mills                "Static",
187f2a8e57eSGunnar Mills                "DHCPv6",
188f2a8e57eSGunnar Mills                "LinkLocal",
189f2a8e57eSGunnar Mills                "SLAAC"
190f2a8e57eSGunnar Mills            ],
191f2a8e57eSGunnar Mills            "enumDescriptions": {
192f2a8e57eSGunnar Mills                "DHCPv6": "A DHCPv6 service-provided address.",
193f2a8e57eSGunnar Mills                "LinkLocal": "The address is valid for only this network segment, or link.",
194f2a8e57eSGunnar Mills                "SLAAC": "A stateless autoconfiguration (SLAAC) service-provided address.",
195f2a8e57eSGunnar Mills                "Static": "A static user-configured address."
196f2a8e57eSGunnar Mills            },
197f2a8e57eSGunnar Mills            "type": "string"
198f2a8e57eSGunnar Mills        },
199f2a8e57eSGunnar Mills        "IPv6GatewayStaticAddress": {
200f2a8e57eSGunnar Mills            "additionalProperties": false,
201f2a8e57eSGunnar Mills            "description": "This type represents a single IPv6 static address to be assigned on a network interface.",
202f2a8e57eSGunnar Mills            "longDescription": "This type shall represent a single IPv6 static address to be assigned on a network interface.",
203f2a8e57eSGunnar Mills            "patternProperties": {
204f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
205f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
206f2a8e57eSGunnar Mills                    "type": [
207f2a8e57eSGunnar Mills                        "array",
208f2a8e57eSGunnar Mills                        "boolean",
209f2a8e57eSGunnar Mills                        "integer",
210f2a8e57eSGunnar Mills                        "number",
211f2a8e57eSGunnar Mills                        "null",
212f2a8e57eSGunnar Mills                        "object",
213f2a8e57eSGunnar Mills                        "string"
214f2a8e57eSGunnar Mills                    ]
215f2a8e57eSGunnar Mills                }
216f2a8e57eSGunnar Mills            },
217f2a8e57eSGunnar Mills            "properties": {
218f2a8e57eSGunnar Mills                "Address": {
219f2a8e57eSGunnar Mills                    "description": "A valid IPv6 address.",
220f2a8e57eSGunnar Mills                    "longDescription": "This property provides access to a static IPv6 address that is currently assigned on a network interface.",
221f2a8e57eSGunnar Mills                    "readonly": false,
222f2a8e57eSGunnar Mills                    "type": [
223f2a8e57eSGunnar Mills                        "string",
224f2a8e57eSGunnar Mills                        "null"
225f2a8e57eSGunnar Mills                    ],
226f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
227f2a8e57eSGunnar Mills                },
228f2a8e57eSGunnar Mills                "Oem": {
229f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
230f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
231f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements.",
232f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
233f2a8e57eSGunnar Mills                },
234f2a8e57eSGunnar Mills                "PrefixLength": {
235f2a8e57eSGunnar Mills                    "anyOf": [
236f2a8e57eSGunnar Mills                        {
237f2a8e57eSGunnar Mills                            "$ref": "#/definitions/PrefixLength"
238f2a8e57eSGunnar Mills                        },
239f2a8e57eSGunnar Mills                        {
240f2a8e57eSGunnar Mills                            "type": "null"
241f2a8e57eSGunnar Mills                        }
242f2a8e57eSGunnar Mills                    ],
243f2a8e57eSGunnar Mills                    "description": "The IPv6 network prefix length, in bits, for this address.",
244f2a8e57eSGunnar Mills                    "longDescription": "Provides the IPv6 network prefix length, in bits, for this address.",
245f2a8e57eSGunnar Mills                    "readonly": false,
246f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
247f2a8e57eSGunnar Mills                }
248f2a8e57eSGunnar Mills            },
249f2a8e57eSGunnar Mills            "required": [
250f2a8e57eSGunnar Mills                "Address"
251f2a8e57eSGunnar Mills            ],
252f2a8e57eSGunnar Mills            "type": "object"
253f2a8e57eSGunnar Mills        },
254f2a8e57eSGunnar Mills        "IPv6StaticAddress": {
255f2a8e57eSGunnar Mills            "additionalProperties": false,
256f2a8e57eSGunnar Mills            "description": "This type represents a single IPv6 static address to be assigned on a network interface.",
257f2a8e57eSGunnar Mills            "longDescription": "This type shall represent a single IPv6 static address to be assigned on a network interface.",
258f2a8e57eSGunnar Mills            "patternProperties": {
259f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
260f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
261f2a8e57eSGunnar Mills                    "type": [
262f2a8e57eSGunnar Mills                        "array",
263f2a8e57eSGunnar Mills                        "boolean",
264f2a8e57eSGunnar Mills                        "integer",
265f2a8e57eSGunnar Mills                        "number",
266f2a8e57eSGunnar Mills                        "null",
267f2a8e57eSGunnar Mills                        "object",
268f2a8e57eSGunnar Mills                        "string"
269f2a8e57eSGunnar Mills                    ]
270f2a8e57eSGunnar Mills                }
271f2a8e57eSGunnar Mills            },
272f2a8e57eSGunnar Mills            "properties": {
273f2a8e57eSGunnar Mills                "Address": {
274f2a8e57eSGunnar Mills                    "description": "A valid IPv6 address.",
275f2a8e57eSGunnar Mills                    "longDescription": "This property provides access to a static IPv6 address that is currently assigned on a network interface.",
276f2a8e57eSGunnar Mills                    "readonly": false,
277f2a8e57eSGunnar Mills                    "type": [
278f2a8e57eSGunnar Mills                        "string",
279f2a8e57eSGunnar Mills                        "null"
280f2a8e57eSGunnar Mills                    ]
281f2a8e57eSGunnar Mills                },
282f2a8e57eSGunnar Mills                "Oem": {
283f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
284f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
285f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
286f2a8e57eSGunnar Mills                },
287f2a8e57eSGunnar Mills                "PrefixLength": {
288f2a8e57eSGunnar Mills                    "anyOf": [
289f2a8e57eSGunnar Mills                        {
290f2a8e57eSGunnar Mills                            "$ref": "#/definitions/PrefixLength"
291f2a8e57eSGunnar Mills                        },
292f2a8e57eSGunnar Mills                        {
293f2a8e57eSGunnar Mills                            "type": "null"
294f2a8e57eSGunnar Mills                        }
295f2a8e57eSGunnar Mills                    ],
296f2a8e57eSGunnar Mills                    "description": "The prefix length, in bits, of this IPv6 address.",
297f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the IPv6 network prefix length, in bits, for this address.",
298f2a8e57eSGunnar Mills                    "readonly": false
299f2a8e57eSGunnar Mills                }
300f2a8e57eSGunnar Mills            },
301f2a8e57eSGunnar Mills            "required": [
302f2a8e57eSGunnar Mills                "Address",
303f2a8e57eSGunnar Mills                "PrefixLength"
304f2a8e57eSGunnar Mills            ],
305f2a8e57eSGunnar Mills            "type": "object"
306f2a8e57eSGunnar Mills        },
307f2a8e57eSGunnar Mills        "PrefixLength": {
308f2a8e57eSGunnar Mills            "maximum": 128,
309f2a8e57eSGunnar Mills            "minimum": 0,
310f2a8e57eSGunnar Mills            "type": "integer"
311f2a8e57eSGunnar Mills        },
312f2a8e57eSGunnar Mills        "SubnetMask": {
313f2a8e57eSGunnar Mills            "pattern": "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$",
314f2a8e57eSGunnar Mills            "type": "string"
315f2a8e57eSGunnar Mills        }
316f2a8e57eSGunnar Mills    },
317f2a8e57eSGunnar Mills    "language": "en",
318f2a8e57eSGunnar Mills    "owningEntity": "DMTF",
319f2a8e57eSGunnar Mills    "release": "2018.2",
320f2a8e57eSGunnar Mills    "title": "#IPAddresses.v1_1_5"
321f2a8e57eSGunnar Mills}