Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
NFV - Network Functions Virtualisation
SOL012
Commits
5dc02b96
Commit
5dc02b96
authored
Dec 06, 2022
by
Giacomo Bernini
Browse files
Merge branch '3.7.1-dev' into 'master'
Merge of 3.7.1 dev Closes
#2
and
#3
See merge request
!2
parents
68625d1f
ecd5ffb4
Pipeline
#14168
passed with stage
in 0 seconds
Changes
10
Pipelines
2
Expand all
Hide whitespace changes
Inline
Side-by-side
src/SOL012/APIVersion/APIVersion.yaml
View file @
5dc02b96
...
...
@@ -23,8 +23,8 @@ info:
name
:
NFV-SOL WG
externalDocs
:
description
:
ETSI GS NFV-SOL 012 v3.
4
.1
url
:
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/012/03.0
4
.01_60/gs_
nfv-sol
012v030
4
01p.pdf
description
:
ETSI GS NFV-SOL 012 v3.
7
.1
url
:
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/012/03.0
7
.01_60/gs_
NFV-SOL
012v030
7
01p.pdf
paths
:
/nfvpolicy/api_versions
:
...
...
src/SOL012/PolicyManagement/PolicyManagement.yaml
View file @
5dc02b96
This diff is collapsed.
Click to expand it.
src/SOL012/PolicyManagement/definitions/PolicyManagement_def.yaml
0 → 100644
View file @
5dc02b96
definitions
:
schemas
:
CreatePolicyRequest
:
description
:
>
This type represents request parameters for creating a policy. It shall comply with the provisions defined
in table 5.6.2.2-1.
type
:
object
properties
:
designer
:
description
:
>
Human readable name of the designer of the policy.
type
:
string
name
:
description
:
>
Human readable name of the policy.
type
:
string
pfId
:
description
:
>
Identifier of the Policy Function (PF) which enforces the policy. Shall be present when the
PF is not the API producer and shall be absent otherwise.
Shall be absent when the API producer is NFVO-N.
More information concerning the PF can be found in ETSI GR NFV-IFA 023 [i.2].
For example, the PF can be a VNFM or VIM when the API producer is an NFVO.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
associations
:
description
:
>
Initial value of the “associations” attribute in the “Policy” data structure which represents the policy.
Shall be absent when the association feature is not applicable for the PF.
The associations refer to identifiers of entities that the PF manages. E.g., if the PF is a VNFM,
the policy can associate to VNF instances; if the PF is NFVO, the policy can associate to an NS instances.
How the PF determines the scope of applicability of the policy when this attribute is absent is
outside the scope of the present document.
type
:
array
items
:
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
required
:
-
designer
-
name
Policy
:
description
:
>-
This type represents an individual policy. It shall comply with the provisions defined in table 5.6.2.3-1.
type
:
object
properties
:
id
:
description
:
>
Identifier of the policy.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
designer
:
description
:
>
Human readable name of the designer of the policy.
type
:
string
name
:
description
:
>
Human readable name of the policy.
type
:
string
pfId
:
description
:
>
Identifier of the Policy Function (PF) which enforces the policy. Shall be present when the PF is not
the API producer and shall be absent otherwise.
Shall be absent when the API producer is NFVO-N.
More information concerning the PF can be found in ETSI GR NFV-IFA 023 [i.2].
For example, the PF can be a VNFM or VIM when the API producer is an NFVO.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
versions
:
description
:
>
Versions of the policy. Shall be present if at least one version of the policy has been transferred.
type
:
array
items
:
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Version"
selectedVersion
:
description
:
>
Selected version of the policy. Shall be present if one or more versions of the policy have been transferred.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Version"
activationStatus
:
description
:
>
Status of the policy on whether it is activated or deactivated.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/ActivationStatus"
transferStatus
:
description
:
>
Status of the policy on whether the content of the policy has been transferred.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/TransferStatus"
associations
:
description
:
>
Identifiers of the entities that the PF manages and to which the policy associates to.
Shall be absent when the association feature is not applicable for the PF.
The associations refer to identifiers of entities that the PF manages.
E.g., if the PF is a VNFM, the policy can associate to VNF instances; if the PF is NFVO, the policy can
associate to an NS instances.
How the PF determines the scope of applicability of the policy when this attribute is absent is
outside the scope of the present document.
type
:
array
items
:
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
_links
:
description
:
>
Links for this resource
type
:
object
properties
:
self
:
description
:
>
URI of this resource
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Link"
selected
:
description
:
>
URI of the selected version of this policy, if exists.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Link"
versions
:
description
:
>
URIs of all the transferred versions of this policy, if exists.
type
:
array
items
:
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Link"
required
:
-
self
required
:
-
id
-
designer
-
name
-
activationStatus
-
transferStatus
-
_links
PolicySubscriptionRequest
:
description
:
>
This type represents a subscription request related to notifications about policy changes
and policy conflicts. It shall comply with the provisions defined in table 5.6.2.5-1.
type
:
object
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/schemas/PolicyNotificationsFilter"
callbackUri
:
description
:
>
The URI of the endpoint to send the notification to.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/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/SOL012_def.yaml#/definitions/schemas/SubscriptionAuthentication"
required
:
-
callbackUri
PolicySubscription
:
description
:
>
This type represents a subscription related to notifications about policy changes and policy conflicts.
It shall comply with the provisions defined in table 5.6.2.6-1.
type
:
object
properties
:
id
:
description
:
>
Identifier of this subscription resource.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/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
:
"
#/definitions/schemas/PolicyNotificationsFilter"
callbackUri
:
description
:
>
The URI of the endpoint to send the notification to.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Uri"
_links
:
description
:
>
Links for this resource.
type
:
object
properties
:
self
:
description
:
>
URI of this resource.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Link"
required
:
-
self
required
:
-
id
-
callbackUri
-
_links
PolicyNotificationsFilter
:
description
:
>
This type represents a subscription filter related to notifications about policy changes and policy conflicts.
It shall comply with the provisions defined in table 5.6.3.2-1.
At a particular nesting level in the filter structure, the following applies: All attributes shall match in
order for the filter to match (logical "and" between different filter attributes). If an attribute is an array,
the attribute shall match if at least one of the values in the array matches (logical "or" between the values
of one filter attribute).
type
:
object
properties
:
notificationTypes
:
description
:
>
Match particular notification types.
Permitted values:
- PolicyChangeNotification
- PolicyConflictNotification
The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification
types to facilitate automated code generation systems.
type
:
array
items
:
type
:
string
enum
:
-
PolicyChangeNotification
-
PolicyConflictNotification
policyIds
:
description
:
>
Match particular policy identifiers.
For "PolicyConflictNotification", the notification is sent if any of the policies specified in the subscription
is impacted by the conflict, as defined in clause 5.6.2.8.
type
:
array
items
:
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
changeTypes
:
description
:
>
Match particular policy management operation types that cause the change of the policy.
type
:
array
items
:
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/PolicyOperationType"
\ No newline at end of file
src/SOL012/PolicyManagementNotification/PolicyManagementNotification.yaml
View file @
5dc02b96
...
...
@@ -15,8 +15,8 @@ info:
name
:
ETSI Forge copyright notice
url
:
https://forge.etsi.org/etsi-forge-copyright-notice.txt
externalDocs
:
description
:
ETSI GS NFV-SOL 012 v3.
4
.1
url
:
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/012/03.0
4
.01_60/gs_
nfv-sol
012v030
4
01p.pdf
description
:
ETSI GS NFV-SOL 012 v3.
7
.1
url
:
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/012/03.0
7
.01_60/gs_
NFV-SOL
012v030
7
01p.pdf
security
:
-
OauthSecurity
:
...
...
@@ -52,19 +52,19 @@ paths:
"
204"
:
$ref
:
'
#/components/responses/PolicyChangeNotification.Post.204'
"
400"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/400
$ref
:
../
response
s/SOL012_resp.yaml#/responses/400
"
401"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/401
$ref
:
../
response
s/SOL012_resp.yaml#/responses/401
"
403"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/403
$ref
:
../
response
s/SOL012_resp.yaml#/responses/403
"
405"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/405
$ref
:
../
response
s/SOL012_resp.yaml#/responses/405
"
406"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/406
$ref
:
../
response
s/SOL012_resp.yaml#/responses/406
"
500"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/500
$ref
:
../
response
s/SOL012_resp.yaml#/responses/500
"
503"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/503
$ref
:
../
response
s/SOL012_resp.yaml#/responses/503
get
:
description
:
>-
...
...
@@ -76,19 +76,19 @@ paths:
"
204"
:
$ref
:
'
#/components/responses/PolicyChangeNotification.Get.204'
"
400"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/400
$ref
:
../
response
s/SOL012_resp.yaml#/responses/400
"
401"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/401
$ref
:
../
response
s/SOL012_resp.yaml#/responses/401
"
403"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/403
$ref
:
../
response
s/SOL012_resp.yaml#/responses/403
"
405"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/405
$ref
:
../
response
s/SOL012_resp.yaml#/responses/405
"
406"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/406
$ref
:
../
response
s/SOL012_resp.yaml#/responses/406
"
500"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/500
$ref
:
../
response
s/SOL012_resp.yaml#/responses/500
"
503"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/503
$ref
:
../
response
s/SOL012_resp.yaml#/responses/503
/URI_is_provided_by_the_API_consumer_when_creating_the_subscription_PolicyConflictNotification
:
description
:
>-
...
...
@@ -116,19 +116,19 @@ paths:
"
204"
:
$ref
:
'
#/components/responses/PolicyConflictNotification.Post.204'
"
400"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/400
$ref
:
../
response
s/SOL012_resp.yaml#/responses/400
"
401"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/401
$ref
:
../
response
s/SOL012_resp.yaml#/responses/401
"
403"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/403
$ref
:
../
response
s/SOL012_resp.yaml#/responses/403
"
405"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/405
$ref
:
../
response
s/SOL012_resp.yaml#/responses/405
"
406"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/406
$ref
:
../
response
s/SOL012_resp.yaml#/responses/406
"
500"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/500
$ref
:
../
response
s/SOL012_resp.yaml#/responses/500
"
503"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/503
$ref
:
../
response
s/SOL012_resp.yaml#/responses/503
get
:
description
:
>-
...
...
@@ -140,181 +140,21 @@ paths:
"
204"
:
$ref
:
'
#/components/responses/PolicyConflictNotification.Get.204'
"
400"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/400
$ref
:
../
response
s/SOL012_resp.yaml#/responses/400
"
401"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/401
$ref
:
../
response
s/SOL012_resp.yaml#/responses/401
"
403"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/403
$ref
:
../
response
s/SOL012_resp.yaml#/responses/403
"
405"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/405
$ref
:
../
response
s/SOL012_resp.yaml#/responses/405
"
406"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/406
$ref
:
../
response
s/SOL012_resp.yaml#/responses/406
"
500"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/500
$ref
:
../
response
s/SOL012_resp.yaml#/responses/500
"
503"
:
$ref
:
../
component
s/SOL012_resp.yaml#/
components/
responses/503
$ref
:
../
response
s/SOL012_resp.yaml#/responses/503
components
:
schemas
:
PolicyChangeNotification
:
description
:
>
This type represents a notification about policy change. It shall comply with the provisions
defined in table 5.6.2.7-1.
This notification shall be triggered by the API producer when a policy has been changed as
the result of an operation of creating, transferring, deleting or modifying a policy.
type
:
object
properties
:
id
:
description
:
>
Identifier of this notification. If a notification is sent multiple times due to multiple
subscriptions, the "id" attribute of all these notifications shall have the same value.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Identifier"
notificationType
:
description
:
>
Discriminator for the different notification types. Shall be set to "PolicyChangeNotification"
for this notification type.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/String"
subscriptionId
:
description
:
>
Identifier of the subscription that this notification relates to.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Identifier"
timeStamp
:
description
:
>
Date and time of the generation of the notification.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/DateTime"
policyId
:
description
:
>
Identifier of the policy.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Identifier"
affectedVersion
:
description
:
>
Affected version of the policy.
The value is the version identifier in the URI when a particular version of the policy
is transferred or deleted, or the selected version of the policy when the policy is
activated/deactivated/modified.
Shall be present when a particular version of the policy is impacted by the policy
management operation.
Shall be absent otherwise.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Version"
previousSelectedVersion
:
description
:
>
The previous selected version of the policy.
Shall be present when another version of the policy has been selected.
Shall be absent otherwise.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Version"
policyModifications
:
description
:
>
Information about the modifications of the policy. Shall be present when the changeType
equals to "MODIFY_POLICY". Shall be absent otherwise.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/PolicyModifications"
changeType
:
description
:
>
Policy management operation that cause the change of the policy.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/PolicyOperationType"
_links
:
description
:
>
Links to resources related to this notification.
type
:
object
properties
:
subscription
:
description
:
>
Link to the related subscription.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/NotificationLink"
objectInstance
:
description
:
>
Link to the resource representing the policies to which the notified change applies.
Shall be present if the policy is accessible as a resource.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/NotificationLink"
required
:
-
subscription
required
:
-
id
-
notificationType
-
subscriptionId
-
timeStamp
-
policyId
-
changeType
-
_links
PolicyConflictNotification
:
description
:
>
This type represents a notification about policy conflict. It shall comply with the provisions
defined in table 5.6.2.8-1.
This notification shall be triggered by the API producer when a policy conflict is detected,
and any of the policies specified in an associated notification subscription is impacted
by the conflict.
type
:
object
properties
:
id
:
description
:
>
Identifier of this notification. If a notification is sent multiple times due to multiple
subscriptions, the "id" attribute of all these notifications shall have the same value.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Identifier"
notificationType
:
description
:
>
Discriminator for the different notification types. Shall be set to "PolicyConflictNotification"
for this notification type.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/String"
subscriptionId
:
description
:
>
Identifier of the subscription that this notification relates to.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Identifier"
timeStamp
:
description
:
>
Date and time of the generation of the notification.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/DateTime"
policyIds
:
description
:
>
Identifiers of the conflicting policies.
The policy identifier and the corresponding selected version are mapped by the order
in the array.
type
:
array
items
:
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Identifier"
minItems
:
2
selectedVersions
:
description
:
>
Selected versions of the conflicting policies.
The policy identifier and the corresponding selected version are mapped by the order
in the array.
type
:
array
items
:
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/Version"
minItems
:
2
conflictDescription
:
description
:
>
Description of the detected policy conflicts, e.g. conflicting events, conditions
or actions among the policies
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/String"
_links
:
description
:
>
Links to resources related to this notification.
type
:
object
properties
:
subscription
:
description
:
>
Link to the related subscription.
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/NotificationLink"
objectInstances
:
description
:
>
Link to the resources representing the policies to which the notified conflict applies.
type
:
array
items
:
$ref
:
"
../components/SOL012_schemas.yaml#/components/schemas/NotificationLink"
minItems
:
2
required
:
-
subscription
-
objectInstances
required
:
-
id
-
notificationType
-
subscriptionId
-
timeStamp
-
policyIds
-
selectedVersions
-
conflictDescription
-
_links
responses
:
PolicyChangeNotification.Post.204
:
description
:
>
...
...
@@ -397,7 +237,7 @@ components:
content
:
application/json
:
schema
:
$ref
:
"
#/component
s/schemas/PolicyChangeNotification"
$ref
:
"
definitions/PolicyManagementNotification_def.yaml#/definition
s/schemas/PolicyChangeNotification"
required
:
true
PolicyConflictNotification
:
...
...
@@ -406,5 +246,5 @@ components:
content
:
application/json
:
schema
:
$ref
:
"
#/component
s/schemas/PolicyConflictNotification"
$ref
:
"
definitions/PolicyManagementNotification_def.yaml#/definition
s/schemas/PolicyConflictNotification"
required
:
true
src/SOL012/PolicyManagementNotification/definitions/PolicyManagementNotification_def.yaml
0 → 100644
View file @
5dc02b96
definitions
:
schemas
:
PolicyChangeNotification
:
description
:
>
This type represents a notification about policy change. It shall comply with the provisions
defined in table 5.6.2.7-1.
This notification shall be triggered by the API producer when a policy has been changed as
the result of an operation of creating, transferring, deleting or modifying a policy.
type
:
object
properties
:
id
:
description
:
>
Identifier of this notification. If a notification is sent multiple times due to multiple
subscriptions, the "id" attribute of all these notifications shall have the same value.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
notificationType
:
description
:
>
Discriminator for the different notification types. Shall be set to "PolicyChangeNotification"
for this notification type.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/String"
subscriptionId
:
description
:
>
Identifier of the subscription that this notification relates to.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
timeStamp
:
description
:
>
Date and time of the generation of the notification.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/DateTime"
policyId
:
description
:
>
Identifier of the policy.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Identifier"
affectedVersion
:
description
:
>
Affected version of the policy.
The value is the version identifier in the URI when a particular version of the policy
is transferred or deleted, or the selected version of the policy when the policy is
activated/deactivated/modified.
Shall be present when a particular version of the policy is impacted by the policy
management operation.
Shall be absent otherwise.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Version"
previousSelectedVersion
:
description
:
>
The previous selected version of the policy.
Shall be present when another version of the policy has been selected.
Shall be absent otherwise.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/Version"
policyModifications
:
description
:
>
Information about the modifications of the policy. Shall be present when the changeType
equals to "MODIFY_POLICY". Shall be absent otherwise.
$ref
:
"
../../definitions/SOL012_def.yaml#/definitions/schemas/PolicyModifications"
changeType
:
description
:
>