{
    "description": "This type represents the access configuration information for downloading external VNF package artifacts. The NFVO can obtain the external VNF package artifact file through the information provided in this structure, together with information provided in the manifest / VNFD. The data structure shall comply with the provisions defined in Table 9.5.2.10-1. If the data structure is part of a response body, security-sensitive attributes shall be excluded as specified in Table 9.5.2.10-1.\n",
    "type": "object",
    "properties": {
      "artifact": {
        "description": "Access configuration information for an external artefact.\n",
        "type": "object",
        "required": [
          "artifactUri"
        ],
        "properties": {
          "artifactUri": {
            "description": "String formatted according to IETF RFC 3986.\n",
            "type": "string",
            "format": "uri"
          },
          "overrideUri": {
            "description": "String formatted according to IETF RFC 3986.\n",
            "type": "string",
            "format": "uri"
          },
          "authType": {
            "description": "Defines the type of authentication / authorization for downloading the VNF package. Permitted values: - BASIC: Only the \"username\" and \"password\" attributes shall be present. - OAUTH2_CLIENT_CREDENTIAL S: Only the \"paramsOauth2ClientCredentials\" attribute shall be present. This attribute shall not be present if no credentials are provided for the artifact.\n",
            "type": "string",
            "enum": [
              "BASIC",
              "OAUTH2_CLIENT_CREDENTIALS"
            ]
          },
          "username": {
            "description": "User name to be used for authentication.\n",
            "type": "string"
          },
          "password": {
            "description": "Password to be used for authentication. Shall not be present in response bodies.\n",
            "type": "string"
          },
          "paramsOauth2ClientCredentials": {
            "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS.\n",
            "type": "object",
            "required": [
              "clientId",
              "clientPassword",
              "tokenEndpoint"
            ],
            "properties": {
              "clientId": {
                "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.\n",
                "type": "string"
              },
              "clientPassword": {
                "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall not be present in response bodies.\n",
                "type": "string"
              },
              "tokenEndpoint": {
                "description": "String formatted according to IETF RFC 3986.\n",
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      }
    }
  }