Commit 81dda531 authored by Muhammad Hamza's avatar Muhammad Hamza
Browse files

add subscriptions related Data Types in CertificateManagement def yaml

parent f14f4a0a
Loading
Loading
Loading
Loading
+266 −7
Original line number Diff line number Diff line
@@ -369,28 +369,287 @@ definitions:

  CertificateSubscriptionRequest:
    description: >
      TBD
      This type represents request parameters for the "subscribe" operation as defined in ETSI GS NFV-IFA 033.
    type: object
    required:
      - callbackUri
    properties:
      filter:
        description: >
          Filter settings for this subscription, to define the subset of all notifications this
          subscription relates to. A particular notification is sent to the subscriber if the filter
          matches, or if there is no filter.
        $ref: "#/definitions/CertificateChangeNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../definitions/SOL023_def.yaml#/definitions/Uri" 
      authentication:
        description: >
          Authentication parameters to configure the use of Authorization when sending notifications
          corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013.

          This attribute shall only be present if the subscriber requires authorization of notifications.
        $ref: "../../definitions/SOL023_def.yaml#/definitions/SubscriptionAuthentication"
      verbosity:
        description: >
          This attribute signals the requested verbosity of certificate notifications. If it is not
          present, it shall default to the value "FULL". 
        $ref: "#/definitions/CertificateNotificationVerbosityType"


  CertificateSubscription:
    description: >
      TBD
      This type represents a subscription related to notification about Certificate.
    type: object
    required:
      - id
      - callbackUri
      - _links
    properties:
      id:
        description: >
          Identifier of this subscription resource.
        type: integer
      filter:
        description: >
          Filter settings for this subscription, to define the subset of all notifications this
          subscription relates to. A particular notification is sent to the subscriber if the filter
          matches, or if there is no filter.
        $ref: "#/definitions/CertificateChangeNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../definitions/SOL023_def.yaml#/definitions/Uri" 
      verbosity:
        description: >
          This attribute signals the requested verbosity of certificate notifications. If it is not
          present, it shall default to the value "FULL". 
        $ref: "#/definitions/CertificateNotificationVerbosityType"
      _links:
        description: >
          Links to resources related to this resource.
        type: object
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource.
            $ref: "../../definitions/SOL023_def.yaml#/definitions/Link"

  CertificateLifecycleStateChangeNotification:
    description: >
      TBD
      This type represents a subscription related to notification about Certificate.
    type: object
    required:
      - id
      - notificationType
      - subscriptionId
      - timeStamp
      - cetificateState
      - certificateId
      - _links
    properties:
      id:
        description: >
          Identifier of this subscription resource.
        type: integer
      notificationTypes:
        description: >
          Discriminator for the different notification types.
          Shall be set to "CertificateLifecycleStateChangeNotification" for this notification type.
        type: string
      subscriptionId:
        description: >
          Identifier of the subscription that this notification relates to. Shall be set to the value of
          the "id" attribute of the "CertificateSubscription" representing the associated
          "Individual subscription" resource.
        type: integer
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "../../definitions/SOL023_def.yaml#/definitions/DateTime"
      cetificateState:
        description: >
          The state of the Certificate.
        $ref: "#/definitions/CertificateStateType"
      certificateId:
        description: >
          The identifier of the Certificate affected.
        type: integer
      verbosity:
        description:
          This attribute signals the verbosity of the notification. If it is not present, it shall
          default to the value "FULL".

          If the value is "SHORT", full change details can be obtained by performing a GET request
          on the "Individual Certificate" resource.
        $ref: "#/definitions/CertificateNotificationVerbosityType"
      affectedSubject:
        description:
          Information about subject instances that were affected.
        $ref: "#/definitions/AffectedSubject"
      affectedCertificate:
        description:
          Information about certificate instances that were affected.
        type: array
        items:
          $ref: "#/definitions/AffectedCertificate"
      error:
        description:
          Details of the latest error, if one has occurred during executing the certificate management
          (see clause 6.3 of ETSI GS NFV-SOL 013). 
        $ref: "../../definitions/SOL023_def.yaml#/definitions/ProblemDetails"
      _links:
        description: >
          Links to resources related to this notification. The link URIs in this structure shall be set
          to point to the resources identified by the corresponding identifier attributes in this notification.
        type: object
        required:
          - subject:
          - certificate
        properties:
          subject:
            description: >
              Link to the resource representing the subject instance to which the notified change applies.
            $ref: "../../definitions/SOL023_def.yaml#/definitions/NotificationLink"
          certificate:
            description: >
              Links to the resource representing the certificate instance to which the notified change applies.
            type: array
            items:
              $ref: "../../definitions/SOL023_def.yaml#/definitions/NotificationLink"

  CertificateChangeNotificationsFilter:
    description: >
      TBD
      This type represents a CertificateChangeNotificationsFilter.
    type: object
    properties:
      vnfInstanceSubscriptionFilter:
        description: >
          Filter criteria to select VNF instances about which to notify.
        $ref: "#/definitions/VnfInstanceSubscriptionFilter"
      cetificateState:
        description: >
          Match particular Certificate state values as reported in notifications of type
          CertificateLifecycleStateChangeNotification.

          May be present if the "notificationTypes" attribute contains the value
          "CertificateLifecycleStateChangeNotification" and shall be absent otherwise.
        type: array
        items:
          $ref: "#/definitions/PKIStatusInfoType"
      certificationType:
        description: >
          Match particular certificate types.
          
          Permitted values:
            •	MANO certificate
            •	VNFCI certificate
            •	VNF OAM certificate
        type: array
        enum:
          - MANO_certificate
          - VNFCI_certificate
          - VNF_OAM_certificate

  AffectedSubject:
    description: >
      TBD
      This type represents a AffectedSubject.
    type: object
    required:
      - id
      - changeType
      - pkiBody
    properties:
      id:
        description: >
          Identifier of the subject instance.
        type: integer
      changeType:
        description: >
          Signals the type of change.

          Permitted values:
            •	ADDED
            •	REMOVED
            •	MODIFIED
        type: string
        enum:
          - ADDED
          - REMOVED
          - MODIFIED
      pkiBody:
        description: >
          Message-specific information.

          The structure and attributes are aligned/defined in IETF RFC 4210 and IETF RFC 9480.
        type: object
        required:
          - ip
        properties:
          ip:
            description: >
              Information for Initialization response.
            $ref: "#/definitions/CertRepMessages"

  AffectedCertificate:
    description: >
      TBD
      This type represents a AffectedCertificate.
    type: object
    required:
      - id
      - changeType
      - pkiBody
    properties:
      id:
        description: >
          Identifier of the certificate instance.
        type: integer
      changeType:
        description: >
          Signals the type of change.

          Permitted values:
            •	ADDED
            •	REMOVED
            •	MODIFIED
        type: string
        enum:
          - ADDED
          - REMOVED
          - MODIFIED
      pkiBody:
        description: >
          Message-specific information.

          The structure and attributes are aligned/defined in IETF RFC 4210 and IETF RFC 9480.
        type: object
        required:
          - ip
        properties:
          cp:
            description: >
              Information for CSR response.
            $ref: "#/definitions/CertRepMessages"

  CertificateNotificationVerbosityType:
    description: >
      The enumeration CertificateNotificationVerbosityType provides values to control the verbosity
      of certificate notifications.   
    type: string
    enum:
      - FULL
      - SHORT
  
  #############################################################
  ######################## TODOs ##############################
  
  VnfInstanceSubscriptionFilter:
    description: >
      TBD
  
  CertificateStateType:
    description: >
      TBD
 No newline at end of file