{
  "description": "This type represents a log report, which provides information about a compiled log and how to obtain it. * NOTE:\tIt is not specified in the present document how the NFV-MANO functional entity's private\n        key is provided to the NFV-MANO functional entity.\n",
  "type": "object",
  "required": [
    "id",
    "objectInstanceId",
    "compilationTrigger",
    "readyTime",
    "fileFormat",
    "fileLocationInfo",
    "securityAndIntegrityInfo",
    "_links"
  ],
  "properties": {
    "id": {
      "description": "An identifier with the intention of being globally unique.\n",
      "type": "string"
    },
    "objectInstanceId": {
      "description": "This type represents the identifier to reference a managed object of a  particular type. \n",
      "type": "object",
      "properties": {
        "type": {
          "description": "Indicates the type of managed object. Permitted values:\n  - MANO_ENTITY\n  - MANO_SERVICE\n  - MANO_SERVICE_IF\n  - CONSUMED_MANO_IF\n  - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n",
          "type": "string",
          "enum": [
            "MANO_ENTITY",
            "MANO_SERVICE",
            "MANO_SERVICE_IF",
            "CONSUMED_MANO_IF",
            "MANO_ENTITY_COMPONENT"
          ]
        },
        "objectId": {
          "description": "An identifier with the intention of being globally unique.\n",
          "type": "string"
        },
        "subObjectId": {
          "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n",
          "type": "string"
        }
      },
      "required": ["type", "objectId"]
    },
    "compilationTrigger": {
      "description": "The trigger for the compilation of the log file.\nPermitted values: - ON_DEMAND: created based on explicit request by a client. - AUTOMATIC: created according to the logging job compilation configuration.",
      "type": "string",
      "enum": ["ON_DEMAND", "AUTOMATIC"]
    },
    "readyTime": {
      "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
      "type": "string",
      "format": "date-time"
    },
    "expiryTime": {
      "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
      "type": "string",
      "format": "date-time"
    },
    "fileSize": {
      "description": "The size of the compiled log file in bytes, if known.",
      "type": "integer",
      "format": "int32"
    },
    "fileFormat": {
      "description": "The encoding used by the file.",
      "type": "string"
    },
    "fileLocationInfo": {
      "description": "Location and address information of the compiled log file. The consumer can use this information to obtain the compiled log file.",
      "type": "object",
      "required": ["protocol", "fileEndpoint"],
      "properties": {
        "protocol": {
          "description": "Protocol over which the compiled log file can be retrieved.\nPermitted values: - HTTPS: transmission over HTTP Secure (HTTPS). - SFTP: transmission over SSH file transfer protocol (SFTP). - SCP: transmission over secure copy protocol (SCP). - FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228,\n      using explicit mode as specified in IETF RFC 4217. If FTPS is supported, \"private\" protection level shall be used.\n\nHTTPS shall be supported, and other protocols may be supported.",
          "type": "string",
          "enum": ["HTTPS", "SFTP", "SCP", "FTPS"]
        },
        "fileEndpoint": {
          "description": "The host name (or IP address), optionally a port number (if the host with the compile log file uses a non-standard port number as per the supported transmission protocol), a valid file directory path, and the file name of the compiled log file, or a valid URL.",
          "type": "string",
          "format": "URI"
        }
      }
    },
    "securityAndIntegrityInfo": {
      "description": "Security and integrity information for the compilation of the log files.",
      "type": "object",
      "required": [
        "algorithm",
        "hash",
        "logFileSignature",
        "signingCertificate"
      ],
      "properties": {
        "algorithm": {
          "description": "Algorithm used to generate the hash of the compiled log file. Only SHA-256 and SHA-512 shall be used",
          "type": "string"
        },
        "hash": {
          "description": "The hexadecimal value of the hash of the compiled log file. The hash shall be computed from the encrypted compiled log file, in case the encryption applies.",
          "type": "string"
        },
        "encryptionPublicKey": {
          "description": "Public key used for the encryption of the compiled log file. Shall be present if the compiled log file is encrypted.",
          "type": "string"
        },
        "cipherAlgorithm": {
          "description": "The cryptographic algorithm used for the encryption. Shall be present if the compiled log file is encrypted. Valid values are: \"AES-CBC-128\", \"AES-GCM-128\", \"AES-CBC-256\", and \"AES-GCM-256\", as specified in clause 6.5 of ETSI GS NFV-SEC 012.",
          "type": "string"
        },
        "logFileSignature": {
          "description": "Signature to the compiled log file generated with the NFV-MANO functional entityΓÇÖs private key, which is used to ensure the authenticity of the compiled log file. The signature shall be applied according to the \"encryptAndSignOrder\" of the \"LoggingJobConfig\". See note.",
          "type": "string"
        },
        "signingCertificate": {
          "description": "X.509 certificate with the NFV-MANO functional entityΓÇÖs public key used for verifying the log report and compiled log file signatures.",
          "type": "string"
        }
      }
    },
    "_links": {
      "description": "Links for this resource.",
      "type": "object",
      "required": ["self"],
      "properties": {
        "self": {
          "description": "This type represents a link to a resource using an absolute URI.\n",
          "type": "object",
          "required": ["href"],
          "properties": {
            "href": {
              "description": "String formatted according to IETF RFC 3986.\n",
              "type": "string"
            }
          }
        },
        "objects": {
          "description": "Links to resources representing the object instances that are logged. Shall be present if the logged object instance information is accessible as a resource.",
          "type": "array",
          "items": {
            "description": "This type represents a link to a resource using an absolute URI.\n",
            "type": "object",
            "required": ["href"],
            "properties": {
              "href": {
                "description": "String formatted according to IETF RFC 3986.\n",
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}
