components: schemas: NfviCapacityInfo: type: object description: | This type defines the format of the NFVI capacity information. The type shall comply with the provisions defined in Table 10.5.2.4-1. required: - id - vimId - capacityInfoPerZone properties: id: description: | Identifier of this NFVI capacity information. Its value shall be the same as vimId. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier vimId: description: | Identifies the VIM to which the NFVI capacity information is associated. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier capacityInfoPerZone: description: | Capacity information on a per resource zone basis under control by the associated VIM. type: array items: $ref: '#/components/schemas/NfviCapacityInfoPerZone' totalCapacityInfo: description: | Total capacity information associated to the VIM. $ref: '#/components/schemas/NfviCapacityMeasurement' timeInterval: description: | Time interval of the NFVI capacity information. $ref: '#/components/schemas/TimeInterval' CapacityThreshold: type: object description: | This type represents a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. required: - id - objectInstanceId - criteria - callbackUri - _links properties: id: description: | Identifier of this capacity threshold resource. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier objectInstanceId: description: | Identifier of the VIM instance associated with the capacity threshold. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier subObjectInstanceIds: description: | Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. If this attribute is absent, measurements are taken for all sub-object instances of the measured object instance. type: array items: $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim criteria: description: | Criteria that define this capacity threshold. $ref: '#/components/schemas/CapacityThresholdCriteria' callbackUri: description: | The URI of the endpoint to send the notification to. $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri _links: type: object description: | Links for this resource. required: - self properties: self: description: | URI of this resource. $ref: ../../definitions/SOL005_def.yaml#/definitions/Link object: description: | Link to a resource representing the VIM’s NFVI capacity information. Shall be present if the VIM’s NFVI capacity information is accessible as a resource. $ref: ../../definitions/SOL005_def.yaml#/definitions/Link CreateCapacityThresholdRequest: type: object description: | This type represents a request to create a capacity threshold. It shall comply with the provisions defined in table 10.5.2.3-1. required: - objectInstanceId - criteria properties: objectInstanceId: description: | Identifier of the VIM instance associated with this capacity threshold. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier subObjectInstanceIds: description: | Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. If this attribute is absent, measurements will be taken for all sub-object instances of the measured object instance. type: array items: $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim criteria: description: | Criteria that define this capacity threshold. $ref: '#/components/schemas/CapacityThresholdCriteria' callbackUri: description: | The URI of the endpoint to send the notification to. $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri authentication: description: | Authentication parameters to configure the use of Authorization when sending notifications corresponding to this capacity threshold, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. This attribute shall only be present if the API consumer requires authorization of notifications. $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication NfviCapacityInfoSubscription: type: object description: | This type represents a subscription. It shall comply with the provisions defined in Table 10.5.2.9-1. required: - id - callbackUri - _links properties: id: description: | Identifier that identifies the subscription. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier 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: '#/components/schemas/NfviCapacityInfoNotificationsFilter' callbackUri: description: | The URI of the endpoint to send the notification to. $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri _links: type: object description: | Links to resources related to this resource. required: - self properties: self: description: | URI of this resource. $ref: ../../definitions/SOL005_def.yaml#/definitions/Link NfviCapacityInfoSubscriptionRequest: type: object description: | This type represents a subscription request. It shall comply with the provisions defined in Table 10.5.2.2-1. 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: '#/components/schemas/NfviCapacityInfoNotificationsFilter' callbackUri: description: | The URI of the endpoint to send the notification to. $ref: ../../definitions/SOL005_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/SOL005_def.yaml#/definitions/SubscriptionAuthentication NfviCapacityInfoNotificationsFilter: type: object description: | This type represents a filter that can be used to subscribe for notifications related to NFVI capacity information events. It shall comply with the provisions defined in Table 10.5.3.2-1. properties: notificationTypes: description: | Match particular notification types. Permitted values: - CapacityShortageNotification type: array items: type: string enum: - CapacityShortageNotification CapacityThresholdCriteria: type: object description: | This type represents criteria that define a capacity threshold. It shall comply with the provisions defined in table 10.5.3.3-1. required: - capacityMetric - thresholdType properties: capacityMetric: description: | Defines the capacity metric for which the threshold applies. type: object required: - resourceType - capacityMeasurementName - capacityType properties: resourceType: description: | Type of resource. $ref: '#/components/schemas/NfviCapacityResourceTypeEnumeration' capacityMeasurementName: description: | Name of the capacity measurement. Different resource types can have different associated capacity measurements, typically associated to different sub-types of the resource type. type: string capacityType: description: | The type of capacity for the threshold. Permitted values: - TOTAL: for total capacity. - ALLOCATED: for allocated/used capacity. - RESERVED: for reserved capacity. - AVAILABLE: for available capacity. type: string enum: - TOTAL - ALLOCATED - RESERVED - AVAILABLE thresholdType: description: | Type of capacity threshold. This attribute determines which other attributes are present in the data structure. Permitted values: - SIMPLE: Single-valued static threshold. In the present document, simple thresholds are defined. The definition of additional threshold types is left for future specification. type: string enum: - SIMPLE simpleThresholdDetails: description: | Details of a simple threshold. Shall be present if thresholdType="SIMPLE". type: array items: type: object required: - thresholdValue - hysteresis properties: thresholdValue: description: | The threshold value. Shall be represented as a floating point number. type: number hysteresis: description: | The hysteresis of the threshold. Shall be represented as a non-negative floating point number. A notification with crossing direction "UP" will be generated if the measured value reaches or exceeds "thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be generated if the measured value reaches or undercuts "thresholdValue" - "hysteresis". The hysteresis is defined to prevent storms of threshold crossing notifications. When processing a request to create a threshold, implementations should enforce a suitable minimum value for this attribute (e.g. override the value or reject the request). type: number NfviCapacityInfoPerZone: type: object description: | This type defines the format of the NFVI capacity information on a per resource zone basis. The type shall comply with the provisions defined in table 10.5.2.5-1. required: - capacityMeasurements properties: resourceZoneId: description: | Identifies the resource zone of the applicable NFVI capacity information. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier capacityMeasurements: description: | Capacity measurement on a per resource type basis. type: array items: $ref: '#/components/schemas/NfviCapacityMeasurement' TimeInterval: type: object description: | This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1. required: - aTime properties: aTime: description: | First date and time of the interval. When only the startTime is present, there is no time interval being defined, and therefore the provided timing information refers to a specific point in time. $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime bTime: description: | Second date and time of the interval. Shall be present when a time interval is provided, and absent otherwise. When provided, the bTime shall be greater than aTime. When only the startTime is present, there is no time interval being defined, and therefore the provided timing information refers to a specific point in time. $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime NfviCapacityMeasurement: type: object description: | This type defines the format of the NFVI capacity information on a per resource type basis. The type shall comply with the provisions defined in table 10.5.2.6-1. required: - resourceType - capacityMeasurementName - totalCapacity - allocatedCapacity - availableCapacity properties: resourceType: description: | Type of resource. $ref: '#/components/schemas/NfviCapacityResourceTypeEnumeration' capacityMeasurementName: description: | Name of the capacity measurement. Different resource types can have different associated capacity measurements, typically associated to different sub-types of the resource type. The present document and referred documents do not specify the capacity measurements, thus the capacity measurement names are not specified in the present document version. type: string totalCapacity: description: | The total capacity. type: object allocatedCapacity: description: | The allocated/used capacity. type: object reservedCapacity: description: | The reserved capacity. Shall be present if the capacity measurement relates to a resource type and (and sub-type) that is reservable. type: object availableCapacity: description: | The available capacity. type: object NfviCapacityResourceTypeEnumeration: type: string description: | The enumeration NfviCapacityResourceTypeEnumeration shall comply with the provisions in table 10.5.4.3-1. * VR_COMPUTE: For virtualised compute resource. * VR_NETWORK: For virtualised network resource. * VR_STORAGE: For virtualised storage resource. * HOST_COMPUTE: For host compute resource. enum: - VR_COMPUTE - VR_NETWORK - VR_STORAGE - HOST_COMPUTE CapacityThresholdModifications: description: | This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. type: object properties: callbackUri: description: | New value of the "callbackUri" attribute. The value "null" is not permitted. At least one of the attributes defined in this type shall be present in request bodies. $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri authentication: description: | New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396). This attribute shall not be present in response bodies. At least one of the attributes defined in this type shall be present in request bodies. $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication