{
    "$id": "http://redfish.dmtf.org/schemas/v1/Certificate.v1_0_0.json",
    "$ref": "#/definitions/Certificate",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2018 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "This property contains the available OEM specific actions for this resource.",
                    "longDescription": "This property shall contain any additional OEM actions for this resource."
                }
            },
            "type": "object"
        },
        "Certificate": {
            "additionalProperties": false,
            "description": "The Certificate resource describes a certificate used to prove the identify of a component, account, or service.",
            "longDescription": "This resource shall be used to represent a Certificate for a Redfish implementation.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_3.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "The Actions property shall contain the available actions for this resource."
                },
                "CertificateString": {
                    "description": "The string for the certificate.",
                    "longDescription": "The value of this property shall be the string of the certificate, and the format shall follow the requirements specified by the value of the CertificateType property.  If the certificate contains any private keys, they shall be removed from the string on GET requests.  If the private key for the certificate is not known by the service and is needed to use the certificate, the client shall provide the private key as part of the string in the POST request.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "CertificateType": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/CertificateType"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The format of the certificate.",
                    "longDescription": "This property shall contain the format type for the certificate.",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Issuer": {
                    "$ref": "#/definitions/Identifier",
                    "description": "The issuer of the certificate.",
                    "longDescription": "The value of this property shall be an object containing information about the issuer of the certificate."
                },
                "KeyUsage": {
                    "description": "The usage of the key contained in the certificate.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/Certificate.json#/definitions/KeyUsage"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain the usage of the key contained in the certificate.",
                    "readonly": true,
                    "type": "array"
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
                },
                "Subject": {
                    "$ref": "#/definitions/Identifier",
                    "description": "The subject of the certificate.",
                    "longDescription": "The value of this property shall be an object containing information about the subject of the certificate."
                },
                "ValidNotAfter": {
                    "description": "The date when the certificate is no longer valid.",
                    "format": "date-time",
                    "longDescription": "The value of this property shall indicate the date on which the certificate validity period ends.",
                    "readonly": true,
                    "type": "string"
                },
                "ValidNotBefore": {
                    "description": "The date when the certificate becomes valid.",
                    "format": "date-time",
                    "longDescription": "The value of this property shall indicate the date on which the certificate validity period begins.",
                    "readonly": true,
                    "type": "string"
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "requiredOnCreate": [
                "CertificateString",
                "CertificateType"
            ],
            "type": "object"
        },
        "Identifier": {
            "additionalProperties": false,
            "description": "The identifier information about a certificate.",
            "longDescription": "This type shall contain the properties used to identify the issuer or subject of a certificate.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "City": {
                    "description": "The city or locality of the organization of the entity.",
                    "longDescription": "This property shall contain the city or locality of the organization of the entity.",
                    "readonly": true,
                    "type": "string"
                },
                "CommonName": {
                    "description": "The fully qualified domain name of the entity.",
                    "longDescription": "This property shall contain the fully qualified domain name of the entity.",
                    "readonly": true,
                    "type": "string"
                },
                "Country": {
                    "description": "The country of the organization of the entity.",
                    "longDescription": "This property shall contain the two letter ISO code for the country of the organization of the entity.",
                    "readonly": true,
                    "type": "string"
                },
                "Email": {
                    "description": "The email address of the contact within the organization of the entity.",
                    "longDescription": "This property shall contain the email address of the contact within the organization of the entity.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Organization": {
                    "description": "The name of the organization of the entity.",
                    "longDescription": "This property shall contain the name of the organization of the entity.",
                    "readonly": true,
                    "type": "string"
                },
                "OrganizationalUnit": {
                    "description": "The name of the unit or division of the organization of the entity.",
                    "longDescription": "This property shall contain the name of the unit or division of the organization of the entity.",
                    "readonly": true,
                    "type": "string"
                },
                "State": {
                    "description": "The state, province, or region of the organization of the entity.",
                    "longDescription": "This property shall contain the state, province, or region of the organization of the entity.",
                    "readonly": true,
                    "type": "string"
                }
            },
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM specific actions for this resource.",
            "longDescription": "This type shall contain any additional OEM actions for this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2018.3",
    "title": "#Certificate.v1_0_0.Certificate"
}