{  "type": "array",  
	"items": {
    "description": "This type represents an individual NFV-MANO service interface produced by  an NFV-MANO functional entity. \n",
    "type": "object",
    "properties": {
      "id": {
        "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"
      },
      "name": {
        "description": "Human-readable name of the NFV-MANO functional entity interface.\nThis attribute can be modified with the PATCH method.\n",
        "type": "string"
      },
      "type": {
        "description": "Type of the NFV-MANO service interface produced by the NFV-MANO functional  entity. Valid values are defined in clause 5.6.4.3.\n",
        "type": "string"
      },
      "standardVersion": {
        "description": "A version.\n",
        "type": "string"
      },
      "providerSpecificApiVersion": {
        "description": "A version.\n",
        "type": "string"
      },
      "apiVersion": {
        "description": "A version.\n",
        "type": "string"
      },
      "apiEndpoint": {
        "description": "Exposed API endpoint of the interface.\n",
        "type": "object",
        "properties": {
          "apiRoot": {
            "description": "String formatted according to IETF RFC 3986.\n",
            "type": "string"
          },
          "apiName": {
            "description": "Indicates the interface name in an abbreviated form. Shall be present  for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each  interface is defined in the standard the interface is compliant to  (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n",
            "type": "string"
          },
          "apiMajorVersion": {
            "description": "Indicates the current major version of the API. Shall be present for  ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined  in the standard the interface is compliant to (see also clause 4.1 of  ETSI GS NFV-SOL 013). May be present otherwise.\n",
            "type": "string"
          },
          "apiUri": {
            "description": "String formatted according to IETF RFC 3986.\n",
            "type": "string"
          }
        },
        "required": [
          "apiUri"
        ]
      },
      "maxConcurrentIntOpNumber": {
        "description": "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter  is undefined. Overload is handled by the error handling schemes defined  by the applicable API specification.\n",
        "type": "integer"
      },
      "supportedOperations": {
        "description": "Information about supported operations of this interface.\n",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "operationName": {
              "description": "Name of the operation supported on the interface.\n",
              "type": "string"
            },
            "maxConcurrentOpNumber": {
              "description": "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter  is undefined. Overload is handled by the error handling schemes defined  by the applicable API specification.\n",
              "type": "integer"
            }
          },
          "required": [
            "operationName"
          ]
        },
        "minItems": 1
      },
      "interfaceState": {
        "description": "State of the NFV-MANO service interface.\n",
        "properties": {
          "operationalState": {
            "description": "The enumeration InterfaceOperationalStateEnumType defines values representing  the operational state of an NFV-MANO service interface type of managed entity.  The InterfaceOperationalStateEnumType shall comply with the provisions :\n   - STARTED\tThe managed entity is operational.\n   - STOPPED\tThe managed entity is not operational.\n   - STOPPING\tThe managed entity is in the transition to stop.\n   - STARTING\tThe managed entity is in the transition to start and become operational.\n",
            "type": "string",
            "enum": [
              "STARTED",
              "STOPPED",
              "STOPPING",
              "STARTING"
            ]
          },
          "administrativeState": {
            "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n  - LOCKED\tThe managed entity is administratively prohibited to be used.\n  - UNLOCKED\tThe managed entity is administratively allowed to be used.\n  - LOCKING\tThe managed entity is in the transition to be locked.\n",
            "type": "string",
            "enum": [
              "LOCKED",
              "UNLOCKED",
              "LOCKING"
            ]
          },
          "usageState": {
            "description": "The enumeration UsageStateEnumType defines values representing the usage  state of a managed entity.  The UsageStateEnumType shall comply with the provisions:\n  - IN_USE\tThe managed entity is currently being used.\n  - NOT_IN_USE\tThe managed entity is currently not being used.\n",
            "type": "string",
            "enum": [
              "IN_USE",
              "NOT_IN_USE"
            ]
          }
        },
        "required": [
          "operationalState",
          "administrativeState",
          "usageState"
        ]
      },
      "securityInfo": {
        "description": "This type represents security related information of an NFV-MANO  service interface produced by an NFV-MANO functional entity. \n",
        "type": "object",
        "properties": {
          "authType": {
            "description": "Type of API request authorization to be used by the API producer.\nThe support of authorization methods for the API producer is specified  in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values:\n  - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246.\n  - OAUTH2: Using access token, as defined by the OAuth 2.0 specification \n  in IETF RFC 6749. \n",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "TLS_TUNNEL",
                "OAUTH2"
              ]
            },
            "minItems": 1
          },
          "oauthServerInfo": {
            "description": "OAuth 2.0 authorization server information and configuration.\n",
            "type": "object",
            "properties": {
              "dynamicDiscovery": {
                "description": "Configuration data used when performing dynamic discovery of  the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization  server information and configuration shall be supported, and  dynamic configuration may be supported.\n",
                "type": "object",
                "properties": {
                  "webFingerHost": {
                    "description": "String formatted according to IETF RFC 3986.\n",
                    "type": "string"
                  }
                },
                "required": [
                  "webFingerHost"
                ]
              },
              "providedConfiguration": {
                "description": "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization  server information and configuration shall be supported, and  dynamic configuration may be supported.\n",
                "type": "object",
                "properties": {
                  "authServerId": {
                    "description": "String formatted according to IETF RFC 3986.\n",
                    "type": "string"
                  }
                },
                "required": [
                  "authServerId"
                ]
              },
              "tlsCipherSuites": {
                "description": "List of cipher suites that shall be declared as supported by the  API producer when performing the SSL or TLS negotiation with the  authorization server. Valid values of cipher suites are defined  in IETF RFC 8447.\n",
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              }
            },
            "required": [
              "providedConfiguration",
              "tlsCipherSuites"
            ]
          },
          "tlsTunnelInfo": {
            "description": "Information and configuration related to the use of TLS tunnel.  Shall be present if authType contains \"TLS_TUNNEL\".\n",
            "type": "object",
            "properties": {
              "tlsTunnelCipherSuites": {
                "description": "List of cipher suites that shall be declared as supported by the API producer when performing the SSL or TLS negotiation with the API client. Valid values of cipher suites are defined in IETF RFC 8447.",
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1
              }
            },
            "required": [
              "tlsTunnelCipherSuites"
            ]
          }
        },
        "required": [
          "authType",
          "oauthServerInfo"
        ]
      },
      "metadata": {
        "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
        "type": "object"
      }
    },
    "required": [
      "id",
      "name",
      "type",
      "standardVersion",
      "providerSpecificApiVersion",
      "apiVersion",
      "apiEndpoint",
      "supportedOperations",
      "interfaceState"
    ]
  }
	
}